Skip to content

Install

mnema is one command-line binary, mnema, and a plugin for each agent host that hands the record to the host’s sessions. Install the binary first, then the plugin for your host.

Terminal window
npm i -g @mnema/code

That puts the mnema binary on your PATH. It needs Node ^24.15.0 || >=26.0.0; the package is ESM-only. mnema --version says whether the shell finds it. If your global binaries live under pnpm, pnpm add -g @mnema/code does the same.

If npm i -g @mnema/code fails with a permissions error (Node installed by the system, so npm’s global prefix is /usr and writing there needs sudo), install under your own home instead, and put its bin on the PATH:

Terminal window
npm i -g --prefix ~/.local @mnema/code
export PATH="$HOME/.local/bin:$PATH" # add this line to your shell's startup file

To update, run the same install again. To run the main branch instead of the published version, see Building it from source.

Terminal window
mnema --version
mnema doctor

doctor says, one line to a finding and with what to do about it, whether the first mnema on your PATH is the one you meant and whether the node it uses takes it. It writes nothing. Everything it checks.

Terminal window
npm i -g @mnema/code@0.1.4

To update, run the unpinned install again.

Each release of the five packages since 0.1.1 is published from this repository’s release workflow, with npm provenance (0.1.0 was published by hand and carries none). npm audit signatures reads the packages installed in a project, not a global install (it fails with EAUDITGLOBAL), so check the version you installed in an empty folder:

Terminal window
mkdir mnema-check && cd mnema-check && npm init -y > /dev/null
npm i --ignore-scripts @mnema/code@0.1.4
npm audit signatures

It prints how many packages have verified registry signatures and how many have verified attestations; npm audit signatures --json --include-attestations names each, and every @mnema/* package carries an SLSA provenance attestation. The registry serves one tarball per version, so this checks the same package a global install of that version fetches.

One line for each host. The rung is how far the host takes the record, one rung at a time: (a) the MCP server and rules in a file, (b) the opening of a session, (c) a refusal before a write, (d) a pause for a person (how each cell is known).

Host Rung Install
Claude Code (d) claude plugin marketplace add felipesauer/mnema, then claude plugin install mnema@mnema
VS Code (d) The Claude Code plugin, then mnema doctor --fix vscode
Cursor CLI (c) The Claude Code plugin, installed on the same machine
Codex (c) codex plugin marketplace add felipesauer/mnema, then codex plugin add mnema@mnema
Copilot CLI (d) copilot plugin marketplace add felipesauer/mnema, then copilot plugin install mnema@mnema
OpenCode (c) One file copied into .opencode/plugins/, and the server declared in opencode.json
Gemini CLI (c) gemini extensions install /path/to/mnema/plugin/gemini
Qwen Code (c) qwen extensions install /path/to/mnema/plugin
Cursor (a) documented, not measured The server: the command mnema with the argument mcp
Antigravity CLI (a) documented, not measured The server: the command mnema with the argument mcp
Factory Droid (a) documented, not measured The server: the command mnema with the argument mcp
Goose (a) documented, not measured The server: the command mnema with the argument mcp

What each host does with the plugin, and what was and was not run, is in Hosts. What is run on Windows and macOS is in Windows and macOS.

mnema 0.1.4 · commit cebc4e8da68c