mrkeyoor.com_
Mon 05 Oct 16:25 UTC
LLM Toolsevaluationupdated 05 Oct 2026

OptMem review

OptMem is a single-file Python memory log for coding agents. The agent appends short notes, reads a bounded set at startup, and helps compress older notes into a binary tree of summaries. It keeps the raw log on your machine and relies on instructions in AGENTS.md or CLAUDE.md rather than an SDK integration.

Verdict

Our OptMem run installed 38 packages for the explainer in 4 seconds but found no build or test target, so it did not verify the Python memory tool that users actually depend on. The append-only design is appealing for a careful solo user who wants inspectable files and accepts manual prompt discipline. Do not adopt it for shared or sensitive work until project scoping, deletion semantics, and the missing license are resolved for your use.

We ran it

Lab card: what happened when we ran OptMemScreenshot of OptMem (github.com/VictorTaelin/OptMem)
Install✓ · 4s38 packages · 26 MB
Buildn/ano build script
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo13 files~1,359 lines of source · 12 MB · 0 CI workflows

Answers from our run

Does OptMem build from source?

Dependencies installed in 4 seconds (38 packages), and the project has no separate build step. We cloned commit 1fb164c into a clean Debian container with 3 CPUs and no project-specific setup.

Does OptMem have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does OptMem have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use OptMem?

Organizations that need an explicit software license: the repository has no license file, GitHub reports none, and issue 8 asks for one.

What are the alternatives to OptMem?

Mem0, Letta, Supermemory. Our OptMem run installed 38 packages for the explainer in 4 seconds but found no build or test target, so it did not verify the Python memory tool that users actually depend on.

Setup3/5One script and one prompt, but our 4-second run tested only anim
Docs4/5Commands and file layout are concise; deletion limits need emphasis
Community3/51,902 stars; issues and PRs stayed active into October 2026
Maturity2/5No license or release, and our lab did not exercise memo

Who it’s for

Solo developers who want agent memory stored in plain local files.
Codex or Claude Code users willing to make wake, note, and compression commands part of every session.
People who value an append-only raw history over automatic deletion or opaque retrieval.
Tinkerers prepared to inspect and adjust the generated 426-token instruction block.

Who it’s NOT for

Organizations that need an explicit software license: the repository has no license file, GitHub reports none, and issue 8 asks for one.
Anyone likely to store secrets or regulated personal data: LOG.txt is append-only, and the documented forget command drops a summary rather than the underlying raw memory.
Developers juggling several repositories who expect project isolation: issues 9 and 19 ask for project-local memory alongside global memory.
Teams that require a verified package pipeline: our run covered the animation subproject, which had no build or test target, not the Python memory tool itself.
Users who cannot depend on agent discipline: the design works only when the agent obeys the wake, note, and nap instructions at the right time.

Setup reality

Our sandbox installed the npm project in ./anim at commit 1fb164c in 4 seconds, adding 38 packages and using 26 MB. That auxiliary project renders the explainer. It had no build or test script, so both steps were skipped rather than passed. Npm audit reported 0 known vulnerabilities.

The actual memory tool is a separate one-file Python 3 script. The README tells users to pipe install.sh from GitHub into a shell, paste the printed 426-token block into AGENTS.md or CLAUDE.md, and add ~/.optmem to PATH. It needs no hosted service or API credential.

The repository had 13 files, about 1,359 source lines, a 12 MB checkout, no Dockerfile, 0 CI workflows, and no tests directory. Our lab did not execute memo, its installer, or its storage commands, so the run says nothing about memory correctness or concurrent writes.

The raw log survives every summary

OptMem stores each memory as one line in LOG.txt, then treats a tree of summaries as disposable cache. Older ranges can be compressed into paired nodes, and an agent can open a node into its two halves when it needs more detail. This is a plain design you can inspect with ordinary file tools. It also makes the raw log, rather than a vector database, the durable source of truth.

Each note is limited to 280 bytes. The generated 426-token prompt tells the agent to run memo wake at startup, add notes while working, and answer one pending compression when memo nap requests it. Nothing runs in the background. If the agent skips a command, records too much, or writes a poor summary, OptMem has no separate process that corrects the behavior.

Forget removes a summary, not the underlying note

The word forget deserves careful reading. The command drops a bad tree summary so a later nap can rebuild it. The README says the raw log is append-only and never edited. A mistaken fact, password, private detail, or data subject request therefore cannot be handled by invoking memo forget. Removing raw material would require work outside the documented command model.

Storage can move through $MEMORY_DIR, including into a synced folder or Git repository. That is useful for backup and portability, and dangerous if the 280-byte notes contain confidential information. The startup prompt broadly asks the agent to remember facts about the user and work. Before using it, narrow those instructions, exclude credentials and personal data, and decide who can read every copy of the log.

What happened when we ran it

Our sandbox installed commit 1fb164c's npm project under anim/ in 4 seconds. It added 38 packages and used 26 MB on disk. Npm audit reported 0 known vulnerabilities across critical, high, moderate, and low severities. The container had Node 22, 3 CPUs, 8 GB of RAM, no secrets, and no elevated privileges.

That run covered the explainer renderer, not memo. The animation project had no build script and no test script, so both stages were skipped. The 12 MB repository had 13 files and about 1,359 lines of source, with 0 CI workflows, no Dockerfile, and no tests directory. We did not run the shell installer or make claims about wake speed, storage limits, summary quality, or concurrent writes.

The installer is shorter than the operating habit

The README's setup command downloads install.sh and pipes it into a shell. That script places the Python tool under ~/.optmem, initializes the memory folder, and prints the instruction block to paste into an agent file. A cautious user should read the 624-byte installer at the pinned commit before executing it, then keep the same commit recorded beside the copied prompt.

Daily use is more demanding than installation. Every session must wake before other tool calls. Each lasting fact becomes a one-line note, and due merges interrupt later notes until the agent answers them. Recall searches the complete log with a regular expression, while zoom navigates summary ranges. The method suits an attentive personal workflow. It is a poor match for agents whose system instructions you cannot control.

One global memory mixes unrelated projects

By default, OptMem has one memory directory. Issue 9 describes memories from separate projects appearing together and asks for local scopes plus shared facts. Issue 19 raises the same need through a fork that splits local and global memory. Neither request is part of the documented mainline behavior. You can manage several installations yourself, but the project does not present that as a first-class workflow.

Issue 14 points to a second behavioral problem: the generated prompt can encourage agents to preserve temporary statuses instead of durable decisions. Its author reported continuity benefits alongside an accumulation of short-lived work records. The exact result belongs to that user's workload, not ours. The design lesson still holds. A 280-byte cap limits note size, but it does not decide whether a note will matter next month.

The code is small, while adoption questions remain open

The default branch was last pushed July 31, 2026. GitHub listed 1,902 stars and 12 open issues and pull requests on October 5, split evenly into 6 issues and 6 pull requests. New project-scoping discussion appeared that day, so interest continued after the last merged code. There is no GitHub release, which leaves commit hashes as the practical version boundary.

The missing license is the immediate blocker for reuse beyond private evaluation. GitHub reports no detected license, the root has no license file, and issue 8 has asked for one since August. OptMem's source is readable, but the repository does not state reuse terms. For a solo experiment, pin the commit and keep the log free of secrets. For organizational use, choose a licensed alternative until that gap closes.

Alternatives

ProjectWhat it isPick it when
Mem0 gh↗An Apache-licensed memory layer with SDKs and service-oriented integrations.pick this instead when application APIs and explicit licensing matter more than a one-file log.
LettaA stateful-agent platform where memory is part of the agent runtime.pick this instead when you want a full agent system rather than instructions for an existing coding agent.
Supermemory gh↗A self-hostable context and memory engine with an API and application layer.pick this instead when retrieval services and shared application memory justify more infrastructure.

What people are saying

  1. [github-trending] VictorTaelin/OptMem

Sources

  1. OptMem README
  2. OptMem commit 1fb164c
  3. Issue 8: license request
  4. Issue 9: project-scoped memories
  5. Issue 14: transient status logs

More llm tools reviews

SemIf-OpenJev · awesome-typesafe-jev · fast-jev-compaction · experiential · llm-master · obsidian-mind · the whole board →