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.

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).

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
PostToolUseasync

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.

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