jevmem: automatic project memory for Claude Code
After every Claude Code message, Jev decides in ~0.3 s whether it holds a decision, rule or bug worth keeping, and jevmem saves it as one line in JEVMEM.md.
Automatic project memory for Claude Code. Also works with Cursor and Codex. **Now in Anthropic's Claude plugin directory:** in the Claude app, Plugins → Discover → jevmem → Add, then follow [the setup steps](#from-the-claude-plugin-directory). [](https://www.npmjs.com/package/jevmem) [](LICENSE) [](package.json) [](https://github.com/Avinash-jetwani/jevmem/actions/workflows/ci.yml) [](https://m8ven.ai/mcp/avinash-jetwani/jevmem) ## What it does https://github.com/user-attachments/assets/ed77849e-db1c-4c05-9ad8-4cab0b3968a2 - Saves decisions, constraints, bugs, todos and dead ends (an approach that was tried and failed, with the reason) from your Claude Code chats into `JEVMEM.md`, automatically. - When you change your mind, the old line is marked superseded, not deleted. - Next session, the relevant lines are added to Claude's context. - Checks lines added by others before they're added to Claude's context. - Checks Bash, Edit and Write calls against your saved rules before they run, and has Claude Code ask you when one may be broken (the guard, 0.6.0). ```text - [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](results/readme-example-2026-09-26.txt), 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 th