cd /news/ai-tools/recall-local-search-across-your-curs… · home topics ai-tools article
[ARTICLE · art-19778] src=github.com pub= topic=ai-tools verified=true sentiment=↑ positive

Recall – Local search across your Cursor/Claude Code/Codex chat history

A new open-source tool called Recall allows developers to search across their AI chat history from Cursor, Claude Code, OpenAI Codex CLI, and pi directly from the terminal without copying or modifying their data. The tool builds a local searchable index from native storage locations and can be used as a standalone CLI, an MCP server for AI coding agents, or a native extension for pi. Recall aims to solve the problem of lost context by enabling developers to quickly retrieve past conversations and continue work without manual copy-pasting.

read4 min publishedJun 3, 2026

Your AI chat history, searchable. Across Cursor, Claude Code, Codex, and pi. Really fast. Read-only. No copies.

recall

indexes the conversations you've already had with Cursor, Claude Code, OpenAI Codex CLI, and pi — straight from their native storage. It does not move, copy, or modify your data. It builds a tiny searchable index over excerpts and metadata, and lets you grep the lot from your terminal.

Above: the pi extension lets an agent call recall_search to find a past conversation and read it back — no copy-paste.

$ recall doctor
recall 0.1.0

sources:
  ✓ cursor  ~/Library/Application Support/Cursor/User/globalStorage/state.vscdb
  ✓ claude  ~/.claude/projects
  ✓ codex   ~/.codex/sessions

index: ~/.recall/index.sqlite (69.5 MiB)
  cursor  1514 sessions
  claude    25 sessions
  codex   1058 sessions
  total   2597 sessions

$ recall "import cycle" --limit 3
2025-09-02 18:36  cursor  ~/code/acme-api    Fix import cycle in proto files
    id=cursor:94dc8775-5fd3-41e9-93d7-43d7dff795b6  msg=1  role=assistant
    I'll help you fix the «import» «cycle» in the request logging…

$ recall last --repo ~/code/acme-api | claude -p "continue this"
brew install pratikgajjar/tap/recall

curl -fsSL https://raw.githubusercontent.com/pratikgajjar/recall/main/install.sh | sh

go install github.com/pratikgajjar/recall@latest

Then build the index once:

recall index           # one-time, ~1 minute on real data
recall doctor
recall <query>

Pure Go, no CGO. Builds a single static binary.

recall mcp

is a Model Context Protocol server over stdio, so any MCP-capable harness can search your past chats. It exposes recall_search

, recall_transcript

, recall_sessions

, and recall_related

, and keeps the index warm in the background.

Claude Code

claude mcp add recall -- recall mcp

Codex — add to ~/.codex/config.toml

:

[mcp_servers.recall]
command = "recall"
args = ["mcp"]

Cursor / Cline / Windsurf — add to the client's mcp.json

(e.g. ~/.cursor/mcp.json

):

{
  "mcpServers": {
    "recall": { "command": "recall", "args": ["mcp"] }
  }
}

pi — use the native extension instead (no MCP needed): pi install npm:@pratikgajjar/pi-recall

(packages/pi-recall).

As a skill — for any agent with a skills system + shell access (Claude Code Agent Skills, pi skills), install the recall skill instead of a server. It teaches the agent to shell out to the CLI directly:

npx skills add pratikgajjar/recall          # via the skills CLI (skills.sh)

Once connected, ask the agent things like "use recall to find how we fixed the import cycle" and it will search and read the relevant past session.

recall index                       (re)build the index from all sources
recall <query>                     search; prints ranked hits
recall find <query> [--repo P]     same, with filters
recall last [--repo P]             dump the most recent session as transcript
recall show <session-id>           dump one session as transcript
recall sessions [--repo P]         list recent sessions
recall related <session-id>        sessions on the same topic
recall mcp                         run an MCP server (Claude Code, Codex, Cursor, …)
recall doctor                      health check

Flags can appear anywhere on the line:

--repo PATH      restrict to a project folder
--source NAME    cursor | claude | codex
--since DURATION e.g. 24h, 7d, 30d
--limit N        default 30
--json           machine-readable output
Tool Storage Notes
Cursor ~/Library/Application Support/Cursor/User/globalStorage/state.vscdb and per-workspace state.vscdb
Walks composerData:* + bubbleId:* blobs; joins to workspace folder via workspaceStorage/*/workspace.json
Claude Code ~/.claude/projects/<sanitized-cwd>/*.jsonl
One file per session, append-only JSONL
Codex CLI ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl
First line is session_meta ; rest are response_item payloads
pi ~/.pi/agent/sessions/<sanitized-cwd>/*.jsonl
First line is the session event; rest are message events

The index lives at ~/.recall/index.sqlite

. It contains:

sessions(id, source, source_id, project, title, started_at, msg_count, …)

messages_fts(session_pk, idx, role, ts, text)

— SQLite FTS5 over excerpts (trimmed to ~1.5 KB per message)

Nuke ~/.recall/

and re-run recall index

any time. The index is disposable.

Read-only. Sources stay the source of truth.No materialization. No markdown copies, no canonical schema migrations.One binary. Single Go executable, ~10 MB, no CGO.SQLite + FTS5 for search.bm25

ranking with a small recency lift.Adapter trait. Add a new tool = implement one interface (Adapter

intypes.go

).

Inspired by fff's pattern: thin index, live source reads, MCP-as-peer.

v0.1. Incremental indexing (append-only), an MCP server, and the pi extension all work. A filesystem watcher and a TUI are next.

MIT.

── more in #ai-tools 4 stories · sorted by recency
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/recall-local-search-…] indexed:0 read:4min 2026-06-03 ·