amem

io.github.sslugicPublished by GitHub account sslugicv0.7.5Updated Oct 31, 2026

Local, private memory for coding agents: facts, skills and tasks that persist across sessions.

Overview

AI-generated overview

Local, private memory for coding agents: stores facts, skills and tasks on your machine so assistants recall them across sessions.

What you can do
  • Retrieve a ranked context packet of stored facts for a query, plus a recipe explaining when to read or write memory
  • Save durable facts, retire outdated claims, and inspect stored claims, components and flows for a repo or workspace
  • List, view and save reusable multi-step skills as an index and full procedure bodies
  • Manage a deferred task board: list, add, update and complete tasks
  • Check monitored repos and workspaces, status, and usage or token-savings statistics, and report which anchors were actually opened
When to use it
Useful when a coding assistant keeps re-reading files and re-learning the same constraints, decisions or gotchas between sessions, and you want that knowledge kept locally rather than pasted into prompts. Also fits teams that want follow-up work and repeatable procedures to survive chat sessions.
Requirements
Runs as a local process via the npm package @iamem/amem (Node.js/npx); setup registers the MCP server and hooks in a supported client such as Claude Code, Cursor, Codex or Copilot. Memory is stored in a SQLite file under ~/.amem. No API keys or environment variables are declared.
Before you install
The server writes persistent local memory, skills and tasks, and hooks feed context to the agent automatically at session start and with each prompt. Optional anonymous telemetry (version, OS, which parts ran) is sent only if you opt in and can be turned off. Credentials and tokens are blocked from being saved, and memory stays local unless you purge it on uninstall.

Installation

In SourceWeft

  1. Open amem in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

amem

[npm version] [npm downloads] [CI] [License: MIT] [Node 20+] [MCP server] [Local only]

[amem MCP server] [amem on Glama]

Personal agent memory that stays on your machine. Works with Claude Code, Cursor, Claude Desktop, Copilot, Codex, Gemini CLI, Windsurf, Continue, Aider and Zed, on macOS, Linux and Windows.

bash
npx @iamem/amem setup --platform claude   # or cursor, codex, copilot …

[amem dashboard: Home, Memory and Tasks]

Website · Features · Why amem · How it works Coding agents forget between sessions. They re-read the same files, re-learn the same constraints and spend tokens rediscovering decisions you already made.

amem gives them a private memory that lives on your machine. The next session starts with what the last one learned.

What you get

  • Memory: short facts (constraints, gotchas, decisions, owners) tied to the files they describe. Facts are flagged stale when those files change.
  • Context on autopilot: hooks hand your agent a small, ranked packet at session start and with each prompt. No pasting a project brief.
  • Skills: repeatable procedures (release steps, deploy order, test setup), loaded only when they apply.
  • Tasks: a Backlog → Next → Doing → Done board your agents update, so follow-ups survive the chat.
  • A dashboard: amem ui shows what your agents remember, what needs review and open tasks. Retire or delete a fact in one click.
  • Private by design: one SQLite file in ~/.amem, a localhost-only UI, optional encryption and local backups.

Works with Claude Code, Cursor, Claude Desktop, Copilot, Codex, Gemini CLI, Windsurf, Continue, Aider, Zed and any other MCP client.

Quick start

bash
cd ~/code/your-projectnpx @iamem/amem setup --platform claude   # or: cursor, codex, copilot, windsurf … (amem platforms)amem ui                                   # open the dashboard at http://127.0.0.1:7843

Setup installs the amem CLI, adds the hooks, registers the amem MCP server (restart your client once) and seeds the repo with build, test and CI facts from its manifests, so the first question already has an answer. From then on your agent checks memory before exploring and saves what it learns. You can also do it by hand:

bash
amem remember "Stripe webhooks must be verified with the raw body" --kind gotcha --anchor src/webhooks/stripe.tsamem context "stripe webhook signature"
markdown
### claim.remember_2f41c0c9e1ffKind: `gotcha`Why: `keyword+12`, `fts+4.2`, `embed+5.4`, `kind:gotcha`, `fresh`
Stripe webhooks must be verified with the raw body.Anchors: `src/webhooks/stripe.ts`

Any MCP client can use the same memory: amem mcp --print-config prints a ready-to-paste config.

Something off? amem doctor --fix rewires the current repo's client. To remove amem, run amem uninstall to see what it added, then amem uninstall --yes. Your memory stays unless you add --purge.

How well it finds things

npm run bench loads 36 memories from a sample web shop and asks 32 questions phrased the way people ask, often without the memory's words. It also sends 8 vague prompts ("ok sounds good, go ahead") that name no topic. CI fails if these numbers drop.

PathRight memory firstRight memory in top 3Vague prompts given memory
Prompt hook (automatic)88%97%0%
amem_context (agent asks)81%94%n/a

The data is in bench/retrieval.json. Add your own cases and run npm run bench -- --misses to see what it gets wrong.

Privacy (non-negotiable)

  • Memory never leaves your machine: no sync, no cloud embeddings, no "share with org" mode.
  • The UI and HTTP MCP endpoint bind to 127.0.0.1 only, and ~/.amem is created with mode 0700.
  • Credentials and tokens are blocked from being saved. Personal notes stay out of work projects unless you ask about them.
  • Optional AES-256-GCM lock (amem lock) and encrypted local backups (amem backup schedule).
  • No network calls by default. If you opt in (amem setup asks once, or amem telemetry on), amem sends an anonymous ping at install and first run, then at most one a day with the version, OS and which parts ran (MCP, hooks, UI, CLI). No memory, repos, paths or names. amem telemetry off stops it; managed (IT policy) installs never send it.

Learn more

License

MIT, see LICENSE.

Source: README.md at commit 72c30df

Tools

16

amem_context

Retrieve compact local amem memory for a query. Use before exploring files or calling a remote LLM with a large prompt. Pass workspace for named app memory, not only git repos.

ParametersqueryrequiredplatformsessionIdworkspace

amem_recipe

Return the generic amem remember contract: when to call amem_context vs amem_remember. Use if you are unsure whether to read or write memory. Same recipe for every MCP host. Takes no arguments.

Takes no parameters.

amem_remember

Store a durable local fact in amem (stays on this machine). Use kind `private` (or anchor `private`) for personal, non-work facts so they never appear in work repositories' context. When the fact replaces an older one (a newer status, a fixed bug, a changed decision), pass the old claim ids in `supersedes` so the outdated memory stops being served. The response lists `possiblySupersedes`: older look-alikes to retire with amem_supersede if they are now wrong.

Parameterskindtextrequiredanchorsworkspacesupersedes

amem_supersede

Retire outdated claims so they stop appearing in context: marks them superseded (kept for history, not served). Pass `by` with the claim id that replaces them, if any.

Parametersbyidsrequiredworkspace

amem_repos

List what amem is monitoring. Each item has kind git or workspace. Workspaces also have a stable slug (MCP id); the display name can differ. Use when asked which projects, workspaces, or repos amem knows about. All arguments are optional.

Parameterskind

amem_stats

Usage and savings stats (local lookup time, estimated tokens/ms saved, hit rate) for one workspace/repo or everything. Use when asked how much amem helped, how often it hit, or usage over time. All arguments are optional.

Parametersdaysscopeworkspace

amem_graph

Dump stored facts for a workspace or git repo: claims, components, flows, and recent activity. Use when asked what amem remembers about a project. Prefer amem_context for a ranked packet for the current question. All arguments are optional.

Parametersdaysworkspace

amem_status

Binding, policy, and counts for one workspace/repo, plus the full monitored inventory. Omit workspace for a machine-wide overview. All arguments are optional.

Parametersworkspace

amem_skill_list

List stored skills (procedures the agent learned) as an index of names and descriptions only. Cheap — call this first, then amem_skill_view to load the one you need. Skills are longer procedures; use amem_context for small durable facts. All arguments are optional.

Parametersquery

amem_skill_view

Load the full body of one skill by name, or a supporting file inside it. Call this only after amem_skill_list (or the 'Relevant skills' section of an amem context packet) shows a skill worth following.

ParametersfilenamerequiredsessionId

amem_skill_save

Save a non-trivial multi-step procedure you just worked out as a reusable skill. Use after solving something worth repeating — a workflow, a dead end you found the way past, or a correction the user gave you. Provide a full SKILL.md in `content`, or a description plus body.

ParametersnamerequiredcontentsessionIddescription

amem_task_list

List deferred agent tasks (Kanban) for a workspace/repo. Use for work to do later — not durable facts (use amem_remember for those). Default excludes done tasks. All arguments are optional.

Parametersstatusworkspaceinclude_done

amem_task_add

Create a deferred agent task on the project Kanban (default backlog). Use for work that should not get lost in chat. Durable facts still go through amem_remember.

Parametersbodytitlerequiredstatusanchorsworkspace

amem_task_update

Change an existing Kanban task: move it between columns (set status to doing when you start it, blocked when it waits on someone), rename it, or replace its notes or file anchors. Only the fields you pass change. Use amem_task_complete to finish a task and amem_task_add for new work. Returns the updated task as JSON; an unknown id returns an error.

Parametersidrequiredbodytitlestatusanchorsworkspace

amem_task_complete

Mark a Kanban task done as soon as its work is finished and verified, so the next session does not pick it up again. Records the completion time and keeps the task in history (amem_task_list with include_done shows it). Same as amem_task_update with status done. Returns the completed task as JSON; an unknown id returns an error.

Parametersidrequiredworkspace

amem_usage_report

Report what you actually did with the last amem context packet, so its savings estimate becomes a measurement instead of a guess. Call this once after you have finished acting on a packet. Do NOT estimate tokens — just list which of the anchors amem gave you you ended up opening anyway (anchors_opened), and whether the packet answered the question without further exploration (answered). amem computes the saving from the real size of the files you did not have to open. Reporting that you opened everything is a useful and expected answer.

Parametersansweredrequiredevent_idworkspaceanchors_openedrequired

Version history

6
  1. v0.7.5LatestOct 31, 2026
  2. v0.7.4Oct 31, 2026
  3. v0.7.3Oct 31, 2026
  4. v0.7.0Oct 30, 2026
  5. v0.4.4Oct 30, 2026
  6. v0.4.3Oct 29, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts