Skip to content

Build your workflow

Auto-memory hooks

Load context at session start, capture failing commands, and preserve session summaries.

In this guide

#

Auto-Memory Hooks

Install once — Recall captures context automatically on every session

Auto-Memory Hooks are lightweight bash scripts that integrate with Claude Code's hook system. Once installed, they automatically inject your recent memories at session start and silently capture failing Bash commands with an output excerpt. A summary is stored at session end when memories were recorded.

Install via PluginRecommended

The Recall plugin bundles auto-memory hooks, the MCP server connection, RLM agents, and a setup wizard — all in one install. Hooks activate automatically with no extra configuration.

/plugin marketplace add joseairosa/recall-claude-plugin
/plugin install recall@recall-claude-plugin

Then run the setup wizard and provide your API key:

/recall:setup

Start a new Claude Code session. The plugin handles everything: MCP connection, hooks, and auto-updates.

Manual Install (hooks only)For non-plugin setups

If you use Claude Code with a manual MCP setup, install hooks directly via the command line. These lifecycle hooks run in Claude Code. This only installs the hook scripts — you still need to configure the MCP server separately.

Install command — replace YOUR_API_KEY with your key

curl -fsSL https://recallmcp.com/install-hooks | bash -s -- --api-key YOUR_API_KEY

The installer creates ~/.claude/recall/hooks/, patches your ~/.claude/settings.json, and adds a status bar entry. Start a new session to activate.

Recall's Line Above the Prompt

The plugin as a Claude Code mod, on Claude Code 2.1.287 or later

From Recall 1.18.0 the plugin includes a mod: code that runs inside Claude Code. In the terminal and the Desktop app it shows Recall's own line in the band above the prompt, next to other plugins' lines, and your status line keeps only what you put there.

Recall agentspend · 3 saved this session · 1.18
  • It records a failing shell command inside Claude Code, so observe.sh does not start for each one.
  • When a Recall call fails because the session lost its workspace, it confirms the workspace and runs the call once more.
  • VS Code's chat panel, claude -p and older Claude Code do not run mods: there the scripts and the status bar segment work as before.

Already on the plugin? Update it, then restart Claude Code. Nothing else to install:

claude plugin marketplace update recall-claude-plugin
claude plugin update recall@recall-claude-plugin

Status Bar Integration

Recall activity shown in Claude Code's status bar automatically

The manual installer adds a statusLine entry to your ~/.claude/settings.json. The Recall wrapper shows how many memories were stored this session, how recently the last one was captured, and whether an update is available — then delegates to your existing statusline (Pilot, sx, or any other). Where Recall's mod shows its line above the prompt (Claude Code 2.1.287 or later, with the recall plugin at 1.18 or later), the wrapper leaves the Recall segment out from the first render and shows only your existing statusline.

Plugin users: The statusLine is not yet auto-configured by the plugin. Run /recall:setup after installing the plugin to set it up, or add it manually following the status bar docs.

Example status bar output

No memories yetRecall: 1.13.1
5 stored, idleRecall: 1.13.1 🧠 5
5 stored, 3s agoRecall: 1.13.1 🧠 5 (3s ago)
Update availableRecall: 1.12.0 🧠 5 · ⬆ 1.13.1
With PilotRecall: 1.13.1 🧠 5 (3s ago) | Pilot: 6.8.3 | CC: 2.1.47

No configuration needed — if you already have a statusLine command (e.g. Pilot), the installer saves it and the Recall wrapper calls it automatically. Your previous output appears after the Recall segment.

What Each Hook Does

session-start.sh
SessionStart

Calls GET /api/context and prints your recent memories (grouped by decisions, errors, patterns, recent work) directly into Claude's session context. Claude sees them as a system message at conversation start. Also checks for hook updates once per day and prints a notice if a newer version is available.

observe.sh
PostToolUse, PostToolUseFailureasync

Captures detected Bash failures with the command and an output excerpt at importance 6. Successful commands and file reads or edits are not recorded by this hook. Stands down while Recall's mod runs, which records the same failures inside Claude Code.

hooks/register.js
Claude Code mod (2.1.287+)

Runs inside Claude Code. Records failing Bash commands like observe.sh, confirms the workspace and retries a Recall call once when the session lost it, and draws Recall's line above the prompt. Refreshes a heartbeat file every 15 seconds, and observe.sh takes over again if it stops. Where it runs, the status bar leaves its Recall segment out.

pre-compact.sh
PreCompact

Saves a state marker memory before Claude Code compacts the context window. Helps reconstruct session continuity after compaction.

stop-summarize.sh
SessionEndasync

Stores a session summary at importance 3 when memories were recorded. Summaries do not carry semantic embeddings; substantive decisions should be stored through memory tools.

Context Format

What Claude sees at session start

The GET /api/context endpoint returns a markdown block grouped by memory type. Memories are sorted by importance within each section, and individual content is capped at 200 chars. Total output is limited to 8000 chars to keep context overhead low.

Example context injected at session start

# [my-project] Session Context

## Recent Decisions
- Use ULIDs for all DB tables (tags: database, convention)
- REST over GraphQL for billing endpoints (tags: api)

## Errors
- Redis connection timeout on startup (tags: redis)

## Patterns
- Service classes use constructor injection with StorageClient

## Recent Work
- Fixed admin stats showing 0 for memory counts
- Added subscription summary card to billing page

Last updated: 2026-02-19T14:00:00Z | Memories: 12 | Workspace: my-project

You can also call this endpoint directly to preview your context: curl -H "Authorization: Bearer YOUR_API_KEY" https://recallmcp.com/api/context

Manual Installation Details

For the curl-based installer — inspect before running

Step 1 — Download the installer and inspect it

curl -fsSL https://recallmcp.com/install-hooks -o install-hooks.sh cat install-hooks.sh # review before running

Step 2 — Run with your API key

bash install-hooks.sh --api-key YOUR_API_KEY

Step 3 — Start a new Claude Code session to activate

The hooks take effect immediately in any new session. Existing sessions are not affected.

Config file location

After install, your API key is stored at ~/.claude/recall/config.json with permissions 600 (readable only by you). You can update the API key there at any time without re-running the installer.

Uninstall

Remove hooks and restore your previous settings

Plugin users

/plugin uninstall recall@recall-claude-plugin

This removes the plugin, hooks, and MCP server config in one step. Your memories on the server are not deleted.

Manual install users

curl -fsSL https://recallmcp.com/uninstall-hooks | bash

The uninstaller will:

  • Remove all Recall hook entries from ~/.claude/settings.json
  • Restore your previous statusLine command (or remove the key if none existed)
  • Delete the ~/.claude/recall/ directory and all its contents
  • Create a backup of settings.json before making any changes

Start a new Claude Code session after uninstalling for the changes to take effect.

Keep up with what's changing.

Read the changelog