Local persistent memory for Claude Code sessions with fast semantic search and replay using SQLite and ChromaDB.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag โ we're steadily working through the catalog.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Longhand.
Using Codex too? Share one memory archive between Claude Code and Codex.
Persistent local memory for Claude Code. Every tool call, every file edit, every thinking block from every Claude Code session โ stored verbatim on your machine. Searchable, replayable, and recallable by fuzzy natural-language questions. Zero API calls. Zero summaries. Zero decisions made by an AI about what's worth remembering.
Claude Code quietly rotates your session files after a few weeks. Longhand captures them into SQLite before they're gone. Once ingested, your history stays forever โ even after the source JSONL files are deleted. Install early; the past you don't capture is unrecoverable.
If you have 20+ Claude Code sessions in
~/.claude/projects/, Longhand can search across every fix, decision, and conversation you've had in ~56ms โ without a single API call.
Does it use a lot of tokens? No โ every tool is capped by design. A full
recallacross 100+ sessions returns ~4K tokens. Reading one raw session JSONL costs 10โ50ร more. See Token budget.
Want to kick the tires first? Run longhand demo for a 60-second walkthrough on a fake 3-session sample corpus โ your real ~/.claude and ~/.longhand are not touched. The demo seeds a sandboxed store with a Stripe-webhook bug + Supabase auth migration + downstream 401 fix, then runs cross-session recall and project-status so you can see what the output looks like before committing.
Upgrading to 1.0.0? This is the release that closes the deprecation window 0.13 opened. Everything removed here has been warning since 0.13.0:
patterns โ recall "<topic>", recap โ status --days N, continue โ status --session <prefix>, reanalyze โ analyze --all.reconcile MCP tool now defaults to a dry run. If you have an agent loop that relied on the implicit heal, pass fix=true explicitly. Dry runs tell you so in the payload.CLAUDE.md files and must never hard-fail.Your database needs nothing. Migrations are automatic and a 0.11+ store opens on any later 1.x โ that's Promise 2, and there's a real 0.11-schema fixture in the test suite proving it.
Upgrading to 0.13.0? Nothing breaks โ that release opened the v1.0 deprecation window, so every old name kept working while pointing at its replacement:
status is now the single resume command: bare status = recent digest (was recap), status <project> unchanged, status --session <prefix> = session tail (was continue). The old commands still run and print a pointer; they're removed at v1.0.search_in_context โ search + context_events, get_episode โ find_episodes + episode_id, etc. โ full table in the CHANGELOG). The retired names still answer, prefixed with a migration note.~/.longhand/logs/ and two new doctor rows (Hook errors, Transcript format) keep them visible.LONGHAND_DATA_DIR relocates the store for the CLI, hooks, and MCP server in one move; status --json / doctor --json for scripting.Upgrading to 0.9.0? Live ingestion captures sessions in flight, plan history is preserved as first-class data, and an optional reconciler job keeps the index honest in the background:
longhand ingest-live command runs from Claude Code's Stop hook to tail the active transcript between assistant turns. Sessions show up in recall while you're still working, not after they end.longhand plans list command and list_plans MCP tool surface every Write/Edit to ~/.claude/plans/*.md across your entire history. Plans are now extracted as their own entity alongside episodes.longhand schedule install-reconciler installs an optional launchd job that runs reconcile --fix periodically โ catches anything the live and post-session hooks missed without you ever thinking about it.Upgrading to 0.8.1? Staleness signals now propagate everywhere they belong, and reconcile is an MCP tool โ Claude can self-heal the index from inside a session:
search and list_sessions now wrap the response with stale: true + stale_reason when the project they're scoped to has on-disk transcripts not yet ingested. Pre-v0.8.1 these returned clean-looking empty results (same silent-failure shape recall_project_status was built to catch โ just one layer up).reconcile MCP tool wraps longhand reconcile --fix. After a staleness banner fires, Claude calls reconcile directly instead of asking the user to run a CLI command.list_sessions default limit raised from 20 to 50 โ active days routinely cross 5+ projects across 5+ sessions; the old default truncated reviews silently.Upgrading from 0.7.x or earlier? Cleaner recall narratives, plus a real bug-finding test layer underneath (from 0.8.0):
_compose_fix_summary prepended a literal "Intent:" label to half of all extracted episodes (49% of the reference corpus). The label leaked into every recall narrative for those episodes. Migration v4 strips it from existing rows on first store open โ no command needed.fix_summary now truncates at whitespace boundaries with a visible โฆ, instead of landing mid-token (phoneNum', family?:', strin'). Forward-only.tests/fixtures/corpus/) anchors regression tests to real shipped bugs. New recall validator (scripts/recall_diff.py) snapshots and diffs ranking results against your live corpus โ catches regressions pytest can't see.If you're also coming from 0.5.x, run longhand reconcile --fix once to re-attribute multi-project sessions per the v0.6 inference improvements (cd-into-project sessions now attribute to the project where most work happened, not the first-event cwd). If you're on 0.5.8 or earlier, chain them: longhand reconcile --fix && longhand analyze --all. Both are idempotent.
Large history? (>1 GB of ~/.claude/projects) Expect the first-time backfill to take 10โ30 minutes on an M-class Mac โ most of that wall time is the embedding model running on all your cores (which is why you'll see triple-digit CPU%; that's ONNX doing its job, not a hang). To get a working store faster, use the fast-path:
Exact-text search, timelines, file history, and commit lookup all work after --skip-analysis. Semantic recall needs the analyze --all pass to complete. Typical throughput on an M-class Mac is ~1โ2 sessions/sec for full analysis.
Status: v1.2.0 โ stable, daily-driver tested, security-audited (zero critical findings), on PyPI, available as a Claude Code plugin. Validated against 433 real Claude Code sessions across 37 inferred projects (measured 2026-08-12). 588 unit tests passing.
Full docs: Longhand Wiki โ getting started, CLI reference, MCP tools reference, architecture, and troubleshooting.

Everyone is solving AI memory by making the context window bigger. 1M tokens. 2M tokens. Context-infinite. The whole industry is racing in the same direction: make the model carry more state.
Longhand goes the other direction. The model doesn't need to carry the memory. The disk does.
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/wynelson94-longhand)<a href="https://allmcps.com/mcp/wynelson94-longhand"><img src="https://allmcps.com/api/badge/wynelson94-longhand?style=directory" alt="Longhand on AllMCPs" /></a>