Skip to content

Releases: MichaelAdamGroberman/gr0m_mem

v0.1.0

09 Apr 03:53

Choose a tag to compare

Gr0m_Mem v0.1.0 — first public release

Honest persistent memory brain for Claude Code, Claude Desktop, and any other LLM runtime. Stops the model from re-asking and re-deriving across sessions, with zero downloads beyond pip install gr0m-mem.

Why this exists

Every other AI memory system either (a) burns an LLM call on "let me decide what's worth remembering" — expensive, lossy, slow — or (b) requires you to install a vector database and download a 1 GB embedding model before it does anything useful. Gr0m_Mem is a deliberate honest middle path: explicit fact recording, a small token-budgeted snapshot the agent inlines at session start, and a SQLite-only zero-install fallback that works on every CPython 3.10+ install.

What ships in 0.1.0

The loop-prevention core

Four MCP tools that fix the actual problem people complain about:

  • mem_wakeup — returns a token-budgeted snapshot of identity, preferences, active projects, locked-in decisions, and open questions. The agent inlines the text field at session start and stops re-introducing itself.
  • mem_remember — record a durable fact (identity, preference, project, decision, question, milestone, context).
  • mem_record_decision — log a concrete decision against a subject so future sessions don't re-derive it.
  • mem_recall_decisions — look up prior decisions on a subject before asking the user a familiar question.

Three storage backends, auto-selected

  1. chromadb — install gr0m-mem[chromadb] for HNSW cosine retrieval (best quality)
  2. sqlite_vec — pure SQLite + Python cosine over Ollama embeddings (mxbai-embed-large)
  3. sqlite_fts — SQLite FTS5 BM25, zero extras, zero downloads, ships with CPython. The default. pip install gr0m-mem always lands here and always works.

Temporal knowledge graph

  • TemporalEdge carries valid_from / valid_to / confidence
  • SQLite persistence with partial indexes on valid_to IS NULL
  • active_view(edges, as_of=…) — the only way to traverse the graph; refuses to run without an explicit temporal decision
  • FactChecker wired into every add_triple (the thing MemPalace promised and never wired); contradictions raise in strict mode

Native Claude Code marketplace plugin

.claude-plugin/marketplace.json + plugin.json register the package as a marketplace + plugin. Stop and PreCompact hooks (hooks/save_hook.sh, hooks/precompact_hook.sh) sanitize SESSION_ID with a strict character whitelist on day one.

claude plugin marketplace add MichaelAdamGroberman/gr0m_mem
claude plugin install --scope user gr0m_mem

Universal compatibility

Three integration paths so this works with any LLM runtime:

  • MCP server — Claude Code, Claude Desktop, Cursor, Gemini CLI, Continue, Cline, Zed, OpenAI Codex CLI
  • CLI shell-out — wrap gr0m_mem wakeup, gr0m_mem remember, gr0m_mem search as tools in OpenAI Agents SDK / LangChain / LlamaIndex / Aider
  • Paste-into-system-prompt — the bundled UNIVERSAL_PROMPT.md works with any model that has shell access, no MCP required

Honest reproducible benchmarks

The benchmarks/loop_prevention/ runner exercises 8 scenarios with 15 probes against the wakeup store. First committed result on this release: 8/8 scenarios passed, 15/15 probes passed, 100% loop-prevention rate. CI re-runs the benchmark on every push and fails the build if it regresses.

Verification

  • 73 tests passing on macOS + Ubuntu, Python 3.10 / 3.11 / 3.12
  • ruff check: clean
  • mypy --strict: no issues across 25 source files
  • Loop-prevention benchmark: 8/8 scenarios, 15/15 probes
  • Branch protection: no force pushes, no deletions, linear history, code-owner reviews, conversation resolution required
  • Secret scanning + push protection: enabled
  • Dependabot security updates: enabled

Install

pip install gr0m-mem
gr0m_mem doctor

For the full ChromaDB + Ollama build:

pip install "gr0m-mem[chromadb]"
# or switch to the `semantic` branch

Links