OpenExp MCP

Memory for Claude Code: hooks record human and agent decisions, and a grade is assigned afterwards once the outcome is known.

  • 59 ★ on the repository
  • Last commit
  • MIT
MCP server

Broad access

Why this level

  • Hooks continuously record observations and session transcripts, including file and command contents, into a vector database.
All reasons and checks

anthroos/openexp

Install

Manual install

git clone https://github.com/anthroos/openexp.git

Then `cd openexp` and `./setup.sh`: the script installs hooks, Qdrant and the MCP server.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • Hooks continuously record observations and session transcripts, including file and command contents, into a vector database.

This is third-party code. Review the repository files before installing.

What it does

OpenExp records every decision in human and agent work as a trajectory step and links steps into a coherent journey such as a deal, a release or a project. Grading appears only at the end, when reality returns its verdict: `outcome` (`closed_won`, `closed_lost`, `failed`, `abandoned`) and a `grade` from 0 to 1. Intermediate steps are stored raw with no hand-labeled signals. Four Claude Code hooks run automatically: `SessionStart` injects relevant memories, `UserPromptSubmit` does a quick recall on every message, `PostToolUse` records observations after Write, Edit and Bash and `SessionEnd` ingests the transcript into Qdrant and extracts decisions asynchronously. Retrieval combines semantics, BM25 and recency, and an MCP server exposes memory tools. A publishing pipeline anonymizes trajectories with a ready prompt.

Who it is for. People who run deals, projects and releases with Claude Code and want to accumulate checkable experience about which decisions led where.

Good fit when

  • You want the agent to remember decisions and context from earlier sessions.
  • A deal closed and the chain of steps that led to it must be tied to the outcome.
  • You need a set of decisions labeled by outcomes to train domain intuition.
  • Experience must be anonymized before publishing.

Not a fit when

  • You need a plain note store with no hooks or vector database.
  • Session transcripts must not be saved to disk: the hooks record them continuously.
  • Docker and Qdrant are unavailable on the machine.

Example request

Find decisions from the previous deal with this client in memory and show how it ended and what grade it got.

MCP

Transport
stdio
Authentication
not required

Environment variables

ANTHROPIC_API_KEY secret
Only needed for the optional anonymize and extract pipeline when publishing.

Limitations

Python 3.11 or newer, `jq` and Qdrant are required: either Docker, which `./setup.sh` starts itself, or your own binary. No API key is needed for core functions, and embeddings are computed locally with FastEmbed. An Anthropic key is needed for the optional anonymize and extract pipeline. Installation registers four hooks in Claude Code and an MCP server. The author states that Q-value scoring proved ineffective and was removed on 26 April 2026.

How to disable. Remove the four hooks and the MCP server entry from the Claude Code configuration, stop the Qdrant container and delete the `openexp` directory if the memory data is not needed.

FAQ

How do I install OpenExp?

Run `git clone https://github.com/anthroos/openexp.git`, enter the directory and run `./setup.sh`. The script installs four Claude Code hooks, starts Qdrant in Docker when needed and registers the MCP server.

What data do the hooks record?

Observations after Write, Edit and Bash, the session transcript at close and prompt context. They go to a local Qdrant, and decisions are extracted asynchronously at session end.

Is an API key needed?

Not for core functions, embeddings run locally via FastEmbed. An Anthropic key is only needed for the anonymization pipeline when publishing.

How is OpenExp different from Mem0 or Zep?

Those handle storage, while OpenExp adds outcome grading: it links steps into a trajectory and sets a final label when a deal closes or a release ships.

Which labels are set?

Only at the end of a trajectory: `outcome` with `closed_won`, `closed_lost`, `failed` or `abandoned` and a `grade` from 0.0 to 1.0.

Discussion

No questions or reviews yet.

Shared memory for Claude Code, Codex and Cursor: a decision made in one session is recalled in another tool or on another machine.

PluginExtended access118Repository stars

Claude Code and Codex hooks search your notes and surface a known answer before a reply and after a failed command.

CLIExtended access88Repository stars

A Claude Code plugin with hooks and 26 skills: measures what the agent knows, blocks edits until code is read, keeps memory

PluginExtended access255Repository stars

Local long-term memory for agents: decisions, mistakes and preferences are stored on your machine and pulled into new sessions

MCP serverExtended access225Repository stars
Needs a VPN

An environment for Claude Code that keeps context across sessions via hooks, ledgers and handoffs, orchestrates agents and saves tokens

WorkflowBroad access3.9KRepository stars

Hooks for Claude Code and OpenCode draw agent work as a pixel-art office: the main agent as a boss, subagents as employees.

PluginExtended access616Repository stars

README in short

The project calls itself a hippocampus for agents and methodologically refuses to label individual steps. It continues with the outcome-only labeling principle, four hooks, a publishing pipeline and project status.

README badge

Report a problem