
Longhand
Turns every Claude Code session into searchable, persistent local memory. Captures the full transcript (tool calls, file edits, thinking blocks) into SQLite before Claude rotates the JSONL files out of existence, then lets you query it with natural language through `recall`, `search`, and `list_sessions` tools. The entire index lives on disk with ChromaDB vectors for semantic search. No API calls, no token costs for retrieval. Especially useful if you work across multiple projects and need to surface a bug fix or decision from weeks ago without manually grepping session logs. Live ingestion means active sessions show up in search results before they even close. Install it early because you can't retroactively capture sessions Claude has already deleted.
- GitHub stars
- 14
- tools
- 13
- transport
- STDIO
- last updated
- Nov 5, 2026
Tools
13 toolsPublic tool metadata for what this MCP can expose to an agent.
searchSemantic search with session, project, tool, file, and event_type filters (all combinable); pass context_events with a session_id to get each match wrapped in its surrounding conversation.
Semantic search with session, project, tool, file, and event_type filters (all combinable); pass context_events with a session_id to get each match wrapped in its surrounding conversation.
No parameter schema in public metadata yet.
list_sessionsRecent sessions with project/time filters; pass project_id (plus optional since/until) for a project's outcome-enriched session timeline.
Recent sessions with project/time filters; pass project_id (plus optional since/until) for a project's outcome-enriched session timeline.
No parameter schema in public metadata yet.
get_session_timelineChronological view with offset/tail pagination and summary-only scan mode (tail: N covers "the latest events / how did it end").
Chronological view with offset/tail pagination and summary-only scan mode (tail: N covers "the latest events / how did it end").
No parameter schema in public metadata yet.
replay_fileReconstruct file state at a point in time.
Reconstruct file state at a point in time.
No parameter schema in public metadata yet.
get_file_historyEvery edit to a file across all sessions.
Every edit to a file across all sessions.
No parameter schema in public metadata yet.
get_statsStorage statistics.
Storage statistics.
No parameter schema in public metadata yet.
recallFuzzy natural-language recall (use this first): a narrative built from conversation segments and session timelines, with high-precision problem→fix episodes when the work left clean evidence.
Fuzzy natural-language recall (use this first): a narrative built from conversation segments and session timelines, with high-precision problem→fix episodes when the work left clean evidence.
No parameter schema in public metadata yet.
recall_project_status"Where did we leave off on X?" — git-aware project summary with commits, issues, last outcome.
"Where did we leave off on X?" — git-aware project summary with commits, issues, last outcome.
No parameter schema in public metadata yet.
find_episodesStructured search for problem→fix pairs; pass episode_id for full detail on one episode (referenced events, diff, post-fix file state).
Structured search for problem→fix pairs; pass episode_id for full detail on one episode (referenced events, diff, post-fix file state).
No parameter schema in public metadata yet.
list_projectsBrowse inferred projects; pass match for fuzzy candidates with scored reasons.
Browse inferred projects; pass match for fuzzy candidates with scored reasons.
No parameter schema in public metadata yet.
list_plansEvery Write/Edit to ~/.claude/plans/*.md across your entire history.
Every Write/Edit to ~/.claude/plans/*.md across your entire history.
No parameter schema in public metadata yet.
find_commitsSearch across all sessions by commit message, hash prefix, or branch name; or pass a session_id without a query for one session's chronological git story.
Search across all sessions by commit message, hash prefix, or branch name; or pass a session_id without a query for one session's chronological git story.
No parameter schema in public metadata yet.
reconcileWraps longhand reconcile so Claude can re-attribute and re-ingest from inside a session after a staleness banner; defaults to a dry run (pass fix=true to apply).
Wraps longhand reconcile so Claude can re-attribute and re-ingest from inside a session after a staleness banner; defaults to a dry run (pass fix=true to apply).
No parameter schema in public metadata yet.
Sponsors
Readme
Details
- Repository
- github.com/wynelson94/longhand
- Categories
- AI & LLM Tools, Developer Tools
- Package
longhand- Transport
- STDIO
- Registry
- MCP registry, active