{"adoption": {"forks": 96, "observed_at": "2026-08-28T04:04:49.234464+00:00", "stars": 1471}, "canonical_url": "https://ross.abutalabs.com/products/optmem", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Permanent memory for AI agents. A 426-token prompt, a script, plug and play.", "domain": ["developer-tools"], "enriched": true, "function": ["agent-framework", "cli", "developer-tools", "prompt-engineering"], "health_score": 77, "homepage": null, "language": "Python", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["VictorTaelin/OptMem"], "name": "VictorTaelin/OptMem", "platform": ["cli", "python", "cross-platform"], "pushed_at": "2026-07-31T02:19:57+00:00", "repo": "VictorTaelin/OptMem", "stars": 1471, "tags": ["ai-agent-memory", "persistent-memory", "llm-agents", "memory-management", "plug-and-play", "no-dependencies", "ai-agents", "command-line", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["give my AI agent persistent memory across sessions", "remember decisions and facts between Claude Code sessions", "store what my coding agent learns so it survives compaction", "search all past agent memories with regex", "keep agent memory in a git-synced folder", "let an agent recall user preferences and past tasks"], "what_it_is": "OptMem is a dependency-free Python CLI that gives AI coding agents permanent, file-based memory via a small prompt block pasted into AGENTS.md/CLAUDE.md. It stores one-line memories in an append-only log with a rebuildable summary tree, exposed through commands like wake, note, recall, and nap.", "when_to_avoid": ["you need semantic similarity search rather than exact regex recall", "you need multi-user or server-side shared memory", "you want automatic background memory consolidation", "you require a maintained, licensed dependency for production use"], "when_to_choose": ["you use an agent that reads AGENTS.md or CLAUDE.md and want zero-dependency persistent memory", "you want memory that survives model, vendor, or session changes", "you prefer simple file-based storage over a vector database", "you want full control and portability of the memory files"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/optmem", "repo": "VictorTaelin/OptMem", "role": "main", "score": 55}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:49.234464+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:34:45.166787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "79c455dc697eb87fd72b9f676c6134c0f05fec9cc021946b0f6a743f7c06d4c0", "fetched_at": "2026-08-28T04:04:49.234464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/VictorTaelin/OptMem"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:49.234464+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:34:45.166787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "79c455dc697eb87fd72b9f676c6134c0f05fec9cc021946b0f6a743f7c06d4c0", "fetched_at": "2026-08-28T04:04:49.234464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/VictorTaelin/OptMem"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:34:45.166787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "79c455dc697eb87fd72b9f676c6134c0f05fec9cc021946b0f6a743f7c06d4c0", "fetched_at": "2026-08-28T04:04:49.234464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/VictorTaelin/OptMem"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:49.234464+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:49.234464+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:49.234464+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:34:45.166787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "79c455dc697eb87fd72b9f676c6134c0f05fec9cc021946b0f6a743f7c06d4c0", "fetched_at": "2026-08-28T04:04:49.234464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/VictorTaelin/OptMem"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:49.234464+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:49.234464+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:34:45.166787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "79c455dc697eb87fd72b9f676c6134c0f05fec9cc021946b0f6a743f7c06d4c0", "fetched_at": "2026-08-28T04:04:49.234464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/VictorTaelin/OptMem"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:49.234464+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:49.234464+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:49.234464+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:34:45.166787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "79c455dc697eb87fd72b9f676c6134c0f05fec9cc021946b0f6a743f7c06d4c0", "fetched_at": "2026-08-28T04:04:49.234464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/VictorTaelin/OptMem"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:49.234464+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:49.234464+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:34:45.166787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "79c455dc697eb87fd72b9f676c6134c0f05fec9cc021946b0f6a743f7c06d4c0", "fetched_at": "2026-08-28T04:04:49.234464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/VictorTaelin/OptMem"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:34:45.166787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "79c455dc697eb87fd72b9f676c6134c0f05fec9cc021946b0f6a743f7c06d4c0", "fetched_at": "2026-08-28T04:04:49.234464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/VictorTaelin/OptMem"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:34:45.166787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "79c455dc697eb87fd72b9f676c6134c0f05fec9cc021946b0f6a743f7c06d4c0", "fetched_at": "2026-08-28T04:04:49.234464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/VictorTaelin/OptMem"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:34:45.166787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "79c455dc697eb87fd72b9f676c6134c0f05fec9cc021946b0f6a743f7c06d4c0", "fetched_at": "2026-08-28T04:04:49.234464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/VictorTaelin/OptMem"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 2, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "young", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 39, "days_push": 34, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 55, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}