jevmemjevmem

How do I install jevmem?

Install jevmem in four steps: add the plugin in the Claude app (Plugins → Discover → jevmem → Add), install the CLI with npm install -g jevmem, save your TypeSafe API key with jevmem key, and run jevmem enable in your project's folder.

Last updated: · jevmem 0.6.4 · Install · Source on GitHub

Once it runs, deciding what to save takes 0.28 s and costs $0.00016 per message, at TypeSafe's listed price for Jev (measured on 66 held-out turns with jevmem 0.6.0, one run on 2026-09-30, results). The rest of this page is the repository's install and upgrade notes.

You need a TypeSafe AI key for Jev. jevmem writes each line itself; an OpenAI or Anthropic writer is optional and off unless you set writer in jevmem.config.json (configuration).

Option 1: Claude Code plugin (recommended)

From the Claude plugin directory #

This needs Claude Code 2.1.273 or later: earlier versions don't sync the plugins you add in the Claude app (Claude Code docs).

  1. In the Claude app: Plugins → Discover → jevmem → Add. The app warns you before it adds the plugin; the warning is about the plugin's local MCP server, jevmem mcp, a command the plugin runs on your computer (the CLI from step 2).

  2. Install the CLI the plugin runs:

    npm install -g jevmem
    
  3. Add your TypeSafe key (from console.typesafe.ai/keys): run this, then paste the key when it asks. It doesn't show the key as you paste, and saves it in ~/.jevmem/env, readable only by you.

    jevmem key
    
  4. In a terminal, in your project's folder, run jevmem enable. The plugin does nothing in a project until you do.

  5. Start Claude Code in that project, signed in with the same Claude account as the app. The plugin shows as jevmem@synced (run /reload-plugins if Claude Code asks).

  6. jevmem doctor checks the setup. If Claude Code shows "jevmem: CLI not found", see if the plugin can't find the CLI.

Claude Code's own memory may also say it saved something; JEVMEM.md shows what jevmem saved.

From the jevmem marketplace #

npm install -g jevmem
claude plugin marketplace add Avinash-jetwani/jevmem
claude plugin install jevmem@jevmem
cd your-project && jevmem enable

Add your key with jevmem key as in step 3 above, or enter it in Claude Code with /plugin configure jevmem, which Claude Code keeps in your system's secure credential store (the claude plugin install shell command doesn't ask for it). That setting exists only for a plugin installed from a marketplace: the directory's jevmem@synced has no Configure options.

If the plugin can't find the CLI #

The plugin runs the jevmem CLI from npm, so install that first. The hooks find it on the PATH Claude Code gives them or, when that PATH lacks it (the desktop app's can), in /opt/homebrew/bin, /usr/local/bin, ~/.local/bin, ~/.volta/bin or the newest Node version under ~/.nvm. Without it, an enabled project shows "jevmem: CLI not found, so memory is off in this project" on the first prompt of each session, and the MCP server fails to start (/mcp shows it as failed). The plugin does nothing until you run jevmem enable in a project; what it runs, and how to switch it off: docs/hooks.md.

Option 2: npm (also sets up Cursor and Codex)

npm install -g jevmem
cd your-project
jevmem init --tool claude

init creates JEVMEM.md, jevmem.config.json and .jevmem/, and registers the three Claude Code hooks (details). Hooks don't get your shell's variables and jevmem doesn't read shell profiles, so save the key with jevmem key, which puts it in ~/.jevmem/env. jevmem doctor checks the setup.

Already have a CLAUDE.md? jevmem import splits CLAUDE.md, AGENTS.md and .cursor/rules/* into statements, puts each through the same gate as a turn, and prints what it would add; --apply writes them. --from claude-auto-memory also reads Claude Code's own auto memory for the project. The source files are only read.

Works with #

What is automatic and what depends on the agent:

Tool Setup Capture Recall
Claude Code the plugin, or jevmem init --tool claude Automatic, every turn, via the Stop hook Automatic, every prompt, via UserPromptSubmit
Codex jevmem init --tool codex Automatic while jevmem watch runs (it tails Codex's session log for this project and runs the same decide → write path); otherwise agent-initiated via MCP add_memory, prompted by an AGENTS.md section Agent-initiated: search_memory via MCP, prompted by AGENTS.md
Cursor jevmem init --tool cursor Agent-initiated: a .cursor/rules/jevmem.mdc rule tells the agent to call MCP add_memory when you state a decision. Nothing is captured if it doesn't Agent-initiated: the rule tells it to call search_memory before non-trivial tasks
Claude Desktop jevmem init --tool claude-desktop prints a config snippet to paste (one project per config, named with --root) Manual: ask it to call add_memory (no hook, no rule file) On request: search_memory

MCP add_memory goes through the same gate as the hook. Client configs: docs/mcp.md.

Upgrading #

Upgrading to 0.6.4. From 0.6.0, 0.6.1, 0.6.2 or 0.6.3, npm install -g jevmem@latest is the whole upgrade: the plugin's hooks have not changed since 0.6.0, and the directory and marketplace plugins move to 0.6.4 with the CLI. From 0.5.x, one of the paths below, tested on 2026-09-30 on the 0.6.0 build in a temporary HOME with a project set up on 0.5.10 that kept its lines (results/upgrade-2026-09-30.txt); 0.6.1 to 0.6.4 change nothing in them:

The limits, in short #

Every limit, with the numbers: the FAQ.