The useful idea is a compiled work log
ai-memory treats coding-agent memory as infrastructure, not another chat feature. Hooks collect bounded observations from prompts, tool use, compaction, and session boundaries. The server then turns that stream into a project wiki and gives the next agent a compact handoff. Because the durable pages are Markdown in a Git repository, a human can read them, search them with ordinary tools, back them up, and inspect their history. SQLite supplies indexing and FTS5, while embeddings are optional.
That design fits a developer who starts a task in Claude Code, continues it in Codex, and wants both agents to know the architecture, rejected approaches, and unfinished questions. The optional managed launcher goes further by maintaining a portable visible-event ledger while resuming each tool's native session. Direct agent launches can still use the lighter hook path. This separation is thoughtful: continuity can be adopted gradually instead of forcing every invocation through a wrapper.
The distinction between historical memory and live code is also explicit. The documentation tells agents to use memory for decisions, rationale, procedures, and failures, then verify code claims against the current checkout. That is the correct boundary. A polished summary can still be old or wrong, and no retrieval score should outrank a build or the source tree.
Local installation is the easy version
The simplest deployment is credible. A Docker container binds to loopback, stores its data in a volume, and can work without an LLM or embedding provider. Two installer commands add the MCP connection and lifecycle hooks for a supported client. The server offers a read-only web interface, and the CLI covers status, search, backups, page recovery, project maintenance, and provider health. Native release archives cover Linux, macOS, and experimental Windows, with Arch packages and source installation as other paths.
Still, this is not a tiny plugin. The Docker wrapper mounts host paths so it can modify client configuration and stage hook scripts. Each supported agent exposes different events and different ways to accept handoffs. Codex lacks an automatic true session-end hook, for example, so the user must run finalize-session when a final handoff matters. Several MCP-only clients cannot provide lifecycle capture at all. Read the support matrix for the exact client you use rather than assuming every logo means equal behavior.
Remote deployment adds the usual service responsibilities. The server does not terminate TLS, so the documented Caddy or Cloudflare Tunnel patterns belong in front of it. Non-loopback use needs bearer authentication and host allowlisting. Teams also need backups that cover the wiki, indexes, configuration, and retained event data. An upgrade on an agent machine refreshes its wrapper and hooks but does not upgrade a separate homelab server. That split is sensible, yet easy to miss.
Automatic capture creates a security job
The convenience comes from recording what agents are doing. User prompts can retain up to 16 KiB, tool excerpts have smaller bounds, and the project supports path-based capture exclusions. Sanitization and limits reduce exposure, but they do not make the stored material harmless. Development prompts and tool calls routinely contain customer names, unreleased features, file paths, and operational clues. Anyone adopting ai-memory should decide what must never be captured, who may query the wiki, how long data stays, and how recovery copies are protected.
Shared-server support is better described as attribution than isolation. Named users get individual tokens and their identity appears in audit records and page metadata. The README is direct that data remains single-tenant and there is no per-page RBAC. Optional per-user memory slots only isolate injected context; exact wiki reads and searches remain project-wide. A consultancy with clients who must not see one another's history needs separate servers or another hard boundary.
Deletion deserves equal scrutiny. Issue #387 demonstrates that deleting a page in v1.25.0 did not remove the session, observations, handoff, backup copy, Git history, or spool entry. A draft pull request now tackles strong per-session deletion across these layers, but it is explicitly held for production-scale testing. Until that work is released and verified, do not market this system as able to forget one conversation completely. Project-level purge is not an adequate substitute when the promise concerns one person or session.
Routing is powerful, but mistakes persist
Project identity can be derived from the current directory, pinned with a marker, or resolved from the repository root. This supports monorepos, worktrees, multiple workspaces, and remote clients. It also creates a failure mode that matters precisely because capture is automatic. Issue #394 reports mid-session commands run from agent scratch directories being assigned to phantom projects such as scratchpad; the reporter found 463 observations from 11 sessions across six real projects in one such bucket. Moving into another Git repository can split one session's raw observations across projects.
The project is responding quickly. New work proposes session-aware routing, exact observation review, and transactional session moves. Those changes show active maintenance, but they also confirm that operators should audit their project list and routing strategy now. Add repository markers where names are ambiguous, consider the repo-root strategy, and verify handoffs before relying on the wiki as a faithful record.
Health and the decision
The repository was pushed on August 16, 2026, and v1.27.0 was published the same day. Its open GitHub count was seven issues and pull requests combined, with several created or updated that day. That is strong evidence of current development. The MIT license is permissive, Rust is the primary language, and the documentation is unusually candid about client gaps, security, recovery, and operating modes.
ai-memory is worth trying when context loss between coding agents wastes real time. Start on one machine, keep the server on loopback, omit paid model providers initially, and inspect what the hooks capture. Its automatic wiki and cross-agent handoffs solve a sharper problem than general-purpose AI memory products. The trade is that you now own a sensitive historical system whose routing, retention, and access model deserve the same care as source control. For an individual developer, that bargain can be excellent. For a regulated or mutually distrusting team, the current deletion and isolation limits are reasons to wait or deploy separate instances.