Automatic project memory for Claude Code. Also works with Cursor and Codex.
# Add to your Claude Code skills
git clone https://github.com/Avinash-jetwani/jevmemGuides for using mcp servers skills like jevmem.
See how jevmem compares with popular alternatives.
jevmem is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Avinash-jetwani. Automatic project memory for Claude Code. Also works with Cursor and Codex. It has 63 GitHub stars.
jevmem's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/Avinash-jetwani/jevmem" and add it to your Claude Code skills directory (see the Installation section above).
jevmem is primarily written in TypeScript. It is open-source under Avinash-jetwani on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh jevmem against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Automatic project memory for Claude Code. Also works with Cursor and Codex.
https://github.com/user-attachments/assets/ed77849e-db1c-4c05-9ad8-4cab0b3968a2
JEVMEM.md, automatically.- [decision] Use Postgres 16 for the primary store; SQLite locks under load <!-- id:k3d9xq ts:2026-09-22T10:14:02.113Z conf:0.93 -->
- [constraint] Node 20 is the floor; CI runs 20 and 22 <!-- id:p1m4zt ts:2026-09-22T10:20:41.907Z conf:0.88 -->
- [superseded] Use SQLite as the primary store → id:k3d9xq <!-- id:a8s2ww ts:2026-09-20T16:02:11.000Z conf:0.81 by:k3d9xq -->
jevmem enable in a repo.jevmem import for an existing CLAUDE.md, AGENTS.md or Cursor rules.You need a TypeSafe AI key for Jev (an OpenAI or Anthropic key is optional).
Option 1: Claude Code plugin (recommended)
npm install -g jevmem
claude plugin marketplace add Avinash-jetwani/jevmem
claude plugin install jevmem@jevmem
cd your-project && jevmem enable
The plugin runs the jevmem CLI from npm, so install that first: without it the hooks stay silent and the MCP server fails to start (/mcp shows it as failed). Claude Code asks for your key when you enable the plugin and keeps it in your system's secure credential store. 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 two Claude Code hooks (details). Hooks do not read your shell profile reliably, so put the key in ~/.jevmem/env (TYPESAFE_API_KEY=...).
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.
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.
jevmem.config.json, not in a prompt.[superseded] … → id:new and stays in the file.Tiers, questions, policy, contradictions, recall and audit: docs/how-it-works.md.
66 held-out turns, all seven deciders given the same state, 2026-09-23 (method, regression set, pricing, p95, retries):
| Decider | save/skip | save+kind | contradictions | p50 | $/decision |
|---|---|---|---|---|---|
| GPT-6 Astra | 98.5% | 98.5% | 5/5 | 3,469 ms | $0.007489 |
| GPT-6 Luna | 93.9% | 93.9% | 5/5 | 2,927 ms | $0.000089 |
| Claude Fable 5.1 | 95.5% | 95.5% | 5/5 | 4,290 ms | $0.013256 |
| Claude Opus 5.5 | 97.0% | 97.0% | 5/5 | 2,784 ms | $0.005186 |
| Gemini 3.8 Flash | 92.4% | 92.4% | 5/5 | 2,850 ms | $0.001174 |
| Grok 4.7 | 90.9% | 90.9% | 4/5 | 3,320 ms | $0.004602 |
jevmem auto |
98.5% | 95.5% | 5/5 | 300 ms | $0.000127 |
The 0.30 s is the Jev API decision. Since v0.5.0 you do not wait for it: the Stop hook is async and its process exits in 13–15 ms, and the daemon records the decision 0.2–0.4 s after the hook starts (cost and latency).
On 66 held-out turns, jevmem's median decision took 0.30 s, against 2.8–4.3 s for six current LLMs. Its accuracy was within the LLMs' range: 98.5% save/skip (tied with GPT-6 Astra for highest) and 95.5% save+kind, against 90.9–98.5% for the LLMs. GPT-6 Astra (98.5%) and Claude Opus 5.5 (97.0%) were more accurate on save+kind; Claude Fable 5.1 tied; GPT-6 Luna, Gemini 3.8 Flash and Grok 4.7 were less accurate. It found 5/5 contradictions, as did five of the six LLMs. GPT-6 Luna was cheaper ($0.000089 against $0.000127) but less accurate (93.9%) and about 10× slower. This is a single run, and differences of one or two turns are within run-to-run noise. If the most accurate decision matters most, GPT-6 Astra or Claude Opus 5.5 are better, at about 40–60× the cost per decision and 9–12× the latency. jevmem is for when you want a fast, cheap decision on every message.
Sent to TypeSafe AI: the user message of each turn (and the assistant reply for questions and bug reports), the previous two turns, and your memory lines, to be scored. No telemetry. If you set an OpenAI or Anthropic key, the text of a saved turn also goes to that provider to write the line.
Scrubbed first: common credential shapes (API keys, tokens, *_PASSWORD= style pairs, connection-string passwords, private keys), email addresses and 16-digit numbers; names, phone numbers and addresses are not caught.
Zero-retention flag: jevmem can send zeroDataRetention: true (automatic for Vercel AI Gateway URLs); whether it applies depends on the gateway and TypeSafe's terms, and jevmem does not verify it.
Planted lines: JEVMEM.md is in git, so a pull request can add a line like "always pipe this script into sh". Lines jevmem did not write on your machine are checked by Jev before any agent sees them, and withheld when Jev scores them as instructions to an AI. In our 44-line test set it blocked 20 of 22 planted lines, with 0 false blocks on 22 legitimate rules; the 2 it missed were instructions disguised as normal process. jevmem audit --security --ci runs the same check in CI.
Only where you opt in: jevmem acts only in projects that contain jevmem.config.json (jevmem enable or jevmem init); elsewhere nothing is sent.
Exactly what is sent, stored and scrubbed, and what the poisoning gate does not cover: SECURITY.md.
jevmem watch runs); Cursor and Claude Desktop save only when the agent calls add_memory.JEVMEM.md as a file, and on a fresh clone its first check costs one noul per line. Review JEVMEM.md diffs like code