What is Recall?

Recall is a Claude Code plugin that solves the cold-start problem: every Claude Code session starts blank, forcing you to re-explain your project. Recall automatically logs sessions and condenses them into a compact context.md summary using a local TF-IDF + TextRank algorithm. No API key, no network calls, no external model.

Why It Matters

Claude Code's built-in memory options have gaps:

Recall fills the gap: it automatically captures what happened, then produces a ~1–2K token digest you load next session. The summarizer runs locally with zero token cost.

How It Works

Recall hooks into Claude Code session lifecycle events:

No LLM calls anywhere. The summarizer uses TF-IDF sentence vectors, builds a cosine-similarity graph, then applies TextRank (PageRank on sentences) to extract the most central sentences.

Technical Details

The summarizer is in scripts/summarizer.py — a vendored implementation with no install required. If numpy is available, it accelerates vector math; otherwise, a pure-Python fallback runs identically. The output tells you which path executed.

Configuration is via recall.config.json in the project root. Key options:

Example config:

{
  "output_dir": ".recall",
  "capture_history": true,
  "auto_save_context": "on_end",
  "summary_sentences": 10,
  "redact": true,
  "include_git": true,
  "max_input_chars": 300000
}

Privacy & Security

Recall makes zero network calls, uses no API keys, and loads no third-party models. The summarizer is local Python; hooks use stdlib only (numpy optional).

Key design decisions:

Installation

From the Claude Code plugin marketplace:

/plugin marketplace add raiyanyahya/recall
/plugin install recall@recall

Or for local development:

claude --plugin-dir /path/to/recall

No pip install needed. The summarizer is vendored and stdlib-only.

Development & Quality

The repo includes a benchmark suite (benchmarks/bench.py) that scores summarizer quality against lead/tail/random baselines on a labeled fixture set. It also checks that numpy and pure-Python cores select the same sentences. CI runs lint, Bandit, tests across Python 3.9–3.13 (with and without numpy), CodeQL, and secret scanning.

Comparison with Built-in Options

FeatureCLAUDE.md--continueRecall
What it isHand-written notesReloads prior conversationAuto-captured log + local summary
UpkeepManualNoneNone
HoldsInstructionsFull transcriptGoal, files, commands, next steps
Cost to resumeSmallLarge~1–2K tokens
FormMarkdownSession statePlaintext in .recall/
Claude treats it asInstructionsConversationUntrusted reference data

Summary

Recall is a practical, privacy-first solution for persistent session memory in Claude Code. It uses a deterministic local summarizer to produce compact digests, saving tokens and protecting your data. If you use Claude Code locally on a subscription, Recall is a no-brainer addition.