plugins/ampup-memory closes the learning loop in Claude Code with hooks, so
it never depends on the model choosing to call a tool. The same hooks install into Codex, Gemini CLI, Cursor and
Copilot with one command.
There are no public release binaries yet. Build the client from source.
Claude Code
-
Build
ampup-memory-client, the small binary the plugin runs (sign-in, hooks, MCP bridge), into~/.local/bin, where the plugin looks first: -
Run a server. On a laptop:
With no server named and no sign-in, the hooks use
http://127.0.0.1:8080. For a team server, sign in once:ampup-memory-client join https://memory.example.com --org acme. -
Add the ampup-memory repository as a plugin marketplace and install the plugin (in Claude Code):
-
Check it:
/ampup-memory:statusin Claude Code, orampup-memory-client doctorin a terminal.
plugins/ampup-memory/bin/ampup-memory-client) downloads a client from a releases repository when
none is installed, and checks once a day for a newer one. With a client built from source, set
AMPUP_MEMORY_CLIENT_UPDATE=off to keep it.
What the hooks do
- A session per Claude Code session. SessionStart opens an AmpUp Memory session and puts its id in context. Compaction and resume continue it. Stop sends the conversation so far, at most every five minutes, without holding up the turn.
- Advice at the first prompt. The prompt hook asks
get_advicefor the task, fitted to its share of the context (max_chars), and adds the answer ahead of the recalled facts with an instruction to follow it unless the evidence contradicts it. The call runs in the background; the advice reaches Claude with the next hook. - Advice at each step. After a turn with tool calls, or a tool call that usually ends a step (a commit, a push,
a build or test run), the hook asks for the
nextmoment. The note already served is re-read (no model call) and passed on only if a decisions model finds it useful now (AMPUP_MEMORY_ADVICE_USEFUL_MIN, 0.4). At most one ask per 30 seconds and 12 pieces of advice per session. - Recall. Facts the memory held about the repo are added at session start; the first prompt’s best-matching facts come with the advice.
- Ended with its trace. SessionEnd ends the session with a trace (each prompt, each answer shortened, each tool call with shortened arguments and the first 200 characters of its result, under 20,000 characters) and Claude’s last answer as the outcome. Only its person can read the trace.
- Notes. The session is also remembered as a condensed note every five prompts, before compaction and at the end.
- Transcripts (opt-in). Where the org’s or team’s admins turn
transcriptson (else the server’sAMPUP_MEMORY_TRANSCRIPTS=1), the hooks also keep each Claude Code, Codex and Gemini CLI session’s whole transcript, for its person alone: each prompt, each answer and each tool call with its input and result (whole up to 64 KB, else its first and last 32 KB), never thinking. It goes in parts as the session grows, at most 32 MB a session, and is never searched, extracted or read for the team. Forgetting a part forgets every version of it, and a part you forgot is never sent again.get_episode {"document": "transcripts/claude-code/<session>/"}lists a session’s parts. - Starter memory. At session start the repo’s
CLAUDE.md,.claude/CLAUDE.md,AGENTS.md,GEMINI.md,.claude/rulesand.cursor/rules, and your Claude Code memory files for the repo, are imported into your own memory (?scope=mine), which no teammate reads. At most 40 files of up to 64 KB; a file is sent again only when it changed.AMPUP_MEMORY_STARTER=offimports nothing. - Never waits on the memory. A slow or down server costs a session its context, never its time.
password=, token: and similar).
Commands
In a terminal,
ampup-memory-client hook outcome good|bad [why] rates the last session the hooks opened.
Variables
An organization can set the plugin,
AMPUP_MEMORY_URL and AMPUP_MEMORY_ORG for everyone in Claude Code’s managed
settings (enabledPlugins, env).
Codex, Gemini CLI, Cursor and Copilot
The installer keeps everything else in those files, backs each up before its first change
(
<file>.ampup-memory-backup), and changes nothing when run twice. Those transcripts are read for text only, so their
traces hold no tool calls.
ampup-memory setup <server> --org <org> [--harness codex,cursor] [--dry-run] signs in and sets up every agent it
finds in one go, then runs ampup-memory doctor.
Hosts without hooks
Claude Desktop, ChatGPT and other MCP clients use the server directly: point them at<server>/mcp, or run
ampup-memory mcp where the host starts a command. The
ampup-memory-advice skill describes the loop for them; add
it as a skill or put it in the agent’s instructions.