← Fri, Sep 25 digest

Jevmem – automatic project memory for Claude Code, built on Jev

read article ↗ hn thread ↗

Jevmem is an open-source tool that automatically extracts and updates project decisions, rules, and failed paths from Claude Code sessions into a local JEVMEM.md file using TypeSafe AI's Jev model.

summary is enough The README is dense and AI-generated, but the comment thread highlights valid architectural questions around context pollution and privacy concerns with third-party APIs.

summary

Jevmem automatically monitors Claude Code chats to extract decisions, rules, and failed approaches, storing them in a repository JEVMEM.md file via TypeSafe AI's Jev model. It functions as a background filter, deciding whether to save or skip turns in under 0.3 seconds before injecting relevant history back into future coding sessions. It also acts as a guardrail, blocking risky commands that violate saved project rules. However, commenters raise valid concerns regarding data privacy with TypeSafe AI and whether retaining superseded decisions clutters context.

key points

  1. Jevmem runs asynchronously via hooks in Claude Code, using TypeSafe AI's Jev model to evaluate message importance in roughly 0.28 seconds for $0.00016 per turn.
  2. It maintains a local JEVMEM.md file containing active rules, decisions, and marked-as-superseded dead ends for git tracking.
  3. A built-in safety guard scans tool calls and warns users before executing commands that violate saved project constraints.

who should read it

Developers using Claude Code or other AI coding agents who want automated persistence for project rules and decisions.

discussion skeptical

consensus

Commenters find the documentation overly verbose and AI-generated, while questioning the value proposition of a separate proprietary memory service over simple markdown files or native tools.

pushback

Some argue that keeping superseded decisions pollutes the context with outdated information rather than helping the LLM avoid past mistakes.

best comment by rafram ↗

> When you change your mind, the old line is marked superseded, not deleted

To me, this seems like a design error. You're polluting context with false/outdated information (even if the LLM is instructed to ignore it). The biggest issue with the memory systems built into Claude et al. is that they're terrible at pruning old/conflicting information as the project evolves, so I'd hope a replacement would do something to improve that.

It points out a plausible design flaw where keeping superseded decisions inside the memory file risks polluting the LLM context with outdated information.

Generated by an LLM from the article and thread. Check the sources before relying on it.