jevmemjevmem

Automatic project memory for Claude Code. Also works with Cursor and Codex.

What is jevmem?

Say it once. jevmem saves the decisions, rules and failed approaches from your Claude Code chats to JEVMEM.md in your repo, and brings the relevant ones back next session. Before Claude runs a command or edits a file, it checks the call against your saved rules. It is open source (MIT), built on TypeSafe AI's Jev, in Anthropic's Claude plugin directory and on the MCP Registry, and works with Cursor and Codex over MCP.

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

Watch the film

What was measured #

Every test set was written by the author, and none is an independent benchmark. The method and the limits of each number: Does jevmem work?

How it works #

You say it, Jev decides, jevmem writes one line to JEVMEM.md, and next session Claude gets the lines that matter.You say it, Jev decides, jevmem writes one line to JEVMEM.md, and next session Claude gets the lines that matter.

  1. You decide something in a chat: "We use Postgres."
  2. jevmem asks Jev by TypeSafe AI, a model that answers yes/no questions with probabilities, whether it's worth keeping.
  3. If it is, jevmem writes one line to JEVMEM.md in your repo.
  4. Next session, the lines that matter for your prompt go back to Claude.

Change your mind, and the old line is crossed out: kept for history, not sent to Claude. Your team gets the same file through git.

jevmem keeps decisions, rules, bugs, to-dos and dead ends (an approach that was tried and failed, with the reason).

- [superseded] We'll use SQLite as the primary store for now. → id:cuasaq
- [decision] Switch the primary store to Postgres 16.
- [constraint] Node 20 is the minimum supported version, and CI runs Node 20 and 22.
About these lines

Each line also carries a comment with its id, time and confidence, left out above. The full lines:

- [superseded] We'll use SQLite as the primary store for now. → id:cuasaq  <!-- id:21ycba ts:2026-09-26T13:46:34.703Z conf:1.00 by:cuasaq -->
- [decision] Switch the primary store to Postgres 16.  <!-- id:cuasaq ts:2026-09-26T13:46:35.240Z conf:1.00 -->
- [constraint] Node 20 is the minimum supported version, and CI runs Node 20 and 22.  <!-- id:tollba ts:2026-09-26T13:46:35.763Z conf:0.90 -->

Real lines from 0.5.7's default writer, which 0.5.8 to 0.5.10 did not change (the run, 2026-09-26). It kept one sentence of each turn: the Postgres turn also said "SQLite locks up under concurrent writes", and that reason was left out. Since 0.6.0 the line is made from the sentences Jev picks, the one that states the memory and the one that gives its reason (What's new). With writer set, an OpenAI or Anthropic model condenses the whole turn instead.

Install #

You need a TypeSafe API key and Claude Code 2.1.273 or later.

  1. In the Claude app: Plugins → Discover → jevmem → Add.
  2. Install the CLI the plugin runs:
    npm install -g jevmem
    
  3. Save your key (paste it when asked; it isn't shown):
    jevmem key
    
  4. In your project's folder, turn jevmem on:
    jevmem enable
    

Start Claude Code in that project. jevmem doctor checks the setup.

Other ways to install: the jevmem marketplace, npm, Cursor, Codex

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

With npm only (also sets up Cursor and Codex):

npm install -g jevmem
cd your-project
jevmem init --tool claude    # or cursor, codex, claude-desktop, all

Already have a CLAUDE.md? jevmem import shows what it would add from it; --apply writes it.

Every step, and what to do if the plugin can't find the CLI: docs/install.md.

Works with #

Saving Bringing it back
Claude Code Automatic, every turn Automatic, every prompt
Codex Automatic while jevmem watch runs When the agent asks, over MCP
Cursor When the agent calls it, over MCP When the agent asks, over MCP
Claude Desktop When you ask it to, over MCP When you ask it to, over MCP

The MCP server is on the MCP Registry as io.github.Avinash-jetwani/jevmem. Client setup: docs/mcp.md · docs/install.md.

The questions this site answers #

The limits, in short #

Every limit, with the numbers: the FAQ.