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.

