jevmem
Automatic Claude Code, Cursor, and Codex project memory: JEVMEM.md with Jev decide, recall, guard, and poisoning checks; npm jevmem 0.6.1.
Overview
jevmem (github.com/Avinash-jetwani/jevmem, npm jevmem, MIT, 0.6.1 on 2026-09-30, GitHub Actions CI) is Avinash Jetwani's automatic project memory for Claude Code, with Cursor and Codex paths via init and MCP. Stop hooks run async decide on each turn; UserPromptSubmit injects recalled lines. JEVMEM.md stores decision, constraint, bug, todo, dead end, and superseded kinds with stable ids. Code applies thresholds from jevmem.config.json over Jev probabilities, not prompt prose. Optional writer condenses a turn with OpenAI or Anthropic. PreToolUse guard scores Bash, Edit, and Write against saved rules. Foreign lines from git pulls pass a memory-poisoning noul gate before recall. Listed in Anthropic's Claude plugin directory; marketplace and npm init cover Cursor and Codex. Public GitHub counts were 100 stars when this listing was drafted.
Problem: Coding agents forget project decisions between sessions, and local memory tools that only embed and rerank still miss the line you actually needed.
Built for: Claude Code, Cursor, and Codex users who want automatic JEVMEM.md project memory with typed decide, recall, and optional PreToolUse guardrails without hand-maintaining CLAUDE.md walls.
First indexed on Jev Directory: 2026-09-30
Creator and team
- Name
- Avinash Jetwani
- Handle
- @Avinash-jetwani
How Jev is used
- Role in the product flow
- Per-turn decide and save, per-prompt recall, foreign-line poisoning check, and optional PreToolUse guard on tool calls
- Primitives
- ChoiceScoreNoul
- State in
- Scrubbed user and assistant turns, prior 2 turns, live JEVMEM.md lines, and for guard checks the tool name plus scrubbed command or edit snippet when it overlaps a saved rule.
- Decision out
- Save or skip with line kind; supersede targets by id; recall injects wanted lines; guard maps risk to ask, block, or allow; poisoning gate withholds foreign instruction lines.
- Stop hook or MCP add_memory scrubs secrets and emails, then asks Jev typed questions per docs/how-it-works.md
- Thresholds in jevmem.config.json decide save, kind, and contradiction handling in code
- Writer off: up to 2 sentences from Jev-picked lines; writer on: optional small LLM condenses the turn
- UserPromptSubmit recalls by asking each live line (word overlap fallback after 1 second)
- PreToolUse guard batches risk questions on Bash, Edit, and Write; audit --security --ci replays poisoning checks
jevmem is end-to-end project memory, not a reranker on an existing store. kitfunso-hippo-memory retrieves local rows and optionally reranks candidates with Jev. leepokai-jev-guard risk-scores every tool call and scans untrusted results for injection. tamaratran-jev-pruner compacts Bash stdout in hooks. jevmem owns decide on Stop, recall on UserPromptSubmit, dead ends that surface as Already tried, supersede instead of delete, and a guard backstop on edits and shell. Cite Avinash-jetwani/jevmem README, docs/how-it-works.md, docs/guardrails.md, docs/dead-ends.md, docs/benchmark.md, CHANGELOG, PRIVACY.md, and SECURITY.md only.
Sourced performance claims
- README benchmark table on 66 held-out turns (2026-09-30, jevmem 0.6.0 auto): 98.5% save/skip, 95.5% save+kind, 5/5 contradictions, p50 276 ms, about $0.000157 per decision.Source: github.com/Avinash-jetwani/jevmem README and results/eval-heldout-2026-09-30-v060.json
- Recall held-out v2 (README 0.6 section): 75/78 wanted lines versus 0.5.9 at 55/78; unrelated prompts that got a line 1/18 versus 5/18; superseded lines injected 0/90 in both builds.Source: github.com/Avinash-jetwani/jevmem README What's new in 0.6
- Security eval (README Privacy): planted instruction lines blocked 20/22 with 0 false blocks on 22 legitimate rules (2026-09-25 test set).Source: github.com/Avinash-jetwani/jevmem README Privacy and SECURITY.md
- Public GitHub repo Avinash-jetwani/jevmem had 100 stars when this listing was drafted. npm jevmem 0.6.1 released 2026-09-30 per CHANGELOG.Source: GitHub API and CHANGELOG 2026-09-30
Features and stack
Features
- Claude Code plugin directory listing plus npm global CLI
- JEVMEM.md line kinds with supersede chains and dead end recall
- Configurable Jev thresholds and optional OpenAI or Anthropic writer
- PreToolUse guard on Bash, Edit, and Write with session policy
- Memory-poisoning check on foreign lines before context injection
- Cursor, Codex, and Claude Desktop MCP paths documented in docs/mcp.md
Stack
- TypeScript
- npm jevmem
- TypeSafe Jev
- Claude Code Stop and UserPromptSubmit hooks
- MCP server for Cursor and Codex
Pricing: MIT CLI. Jev calls bill per TypeSafe or gateway pricing documented in docs/cost.md; optional writer adds OpenAI or Anthropic usage.
Links
FAQ
- How is jevmem different from Hippo Memory?
- Hippo is a local recall index with optional Jev reranking on candidates. jevmem captures turns into JEVMEM.md, recalls with per-line Jev questions, and ships guard and poisoning gates on the memory file itself.
- Does recall run on every prompt in Claude Code?
- README: UserPromptSubmit injects relevant live lines automatically when hooks are enabled via the plugin or jevmem init --tool claude.
- What does the guard check?
- docs/guardrails.md: PreToolUse on Bash, Edit, and Write compares the call against saved constraint lines with Jev risk scoring and can ask or block per policy.
- Is capture automatic in Cursor?
- README Works with table: Cursor relies on agent-initiated MCP add_memory and search_memory prompted by .cursor/rules/jevmem.mdc, not Stop hooks.
Related learn guides
Original Jev guidance that pairs with this product pattern.
- Jev use cases
The patterns builders actually search for: moderation, routing, triage, RAG verify, and agent gates.
- System One model
The model family behind Jev: parallel typed questions, one forward pass, probabilities you can threshold.
Related products
Hand-picked neighbors with rich profiles or overlapping tags.