AI Skill Hub 推荐使用:长手记忆 是一款优质的MCP工具。AI 综合评分 7.5 分,在同类工具中表现稳健。如果你正在寻找可靠的MCP工具解决方案,这是一个值得深入了解的选择。
长手记忆 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
长手记忆 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/Wynelson94/longhand
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"----": {
"command": "npx",
"args": ["-y", "longhand"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 长手记忆 执行以下任务... Claude: [自动调用 长手记忆 MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"____": {
"command": "npx",
"args": ["-y", "longhand"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
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 recall across 100+ sessions returns ~4K tokens. Reading one raw session JSONL costs 10–50× more. See Token budget.
pip install longhand
longhand setup # ingest history + install hooks + configure MCP
longhand recall "that stripe webhook bug from last week"
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.
pip install longhand
longhand demo # sandboxed; cleans up afterwards (pass --keep to explore)
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.pip install --upgrade longhand
longhand recall "..." # migration runs transparently on first open
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:
longhand setup --skip-analysis # SQLite only; works in ~1 min for multi-GB corpora
longhand analyze --all # fill in episodes + vectors whenever, safe to background
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: v0.11.0 — stable, daily-driver tested, security-audited (zero critical findings), on PyPI, available as a Claude Code plugin. Validated against 246 real Claude Code sessions across 54 inferred projects. 316 unit tests passing.
Full docs: Longhand Wiki — getting started, CLI reference, MCP tools reference, architecture, and troubleshooting.

---
longhand stats longhand sessions longhand projects
pip install longhand
longhand setup
That's it. longhand setup backfills your existing Claude Code history, installs the hooks that keep it updated automatically, registers Longhand as an MCP server for Claude Code, and verifies everything works. About two minutes the first time, zero maintenance after that.
To upgrade later: pip install -U longhand.
git clone https://github.com/Wynelson94/longhand.git
cd longhand
pip install -e .
longhand setup
<details> <summary>Or run the individual commands yourself</summary>
longhand ingest # ingest all your existing Claude Code history
longhand analyze --all # run analysis (projects, outcomes, episodes, segments)
longhand hook install # wires both SessionEnd and Stop hooks
longhand ingest-live # live-tail the active transcript (Stop hook calls this)
longhand prompt-hook install # (optional) auto-inject past context into new prompts
longhand mcp install # let Claude Code call Longhand as MCP tools
longhand schedule install-reconciler # (optional) launchd job to run reconcile --fix periodically
longhand config # view/tune hook behavior (relevance threshold, injection size)
longhand doctor # verify everything is wired up </details>
---
```bash
``` $ longhand recall "that stripe webhook I was fixing"
╭─ Project matches ───────────────────────────────────────╮ │ new-product (nextjs web app) · alias: 'stripe' · 1.52 │ ╰─────────────────────────────────────────────────────────╯
Found it: new-product · 2 weeks ago · session a4ba29d1
longhand config # show current hook settings longhand config --set hook.min_relevance=3.0 # tune injection threshold longhand config --set hook.max_inject_chars=1000 # cap token usage
Run longhand mcp install to wire Longhand into Claude Desktop's config. After you restart Claude Desktop, it has nineteen tools:
Core (searchable archive): - search — semantic search with session, project, tool, file, and event_type filters (all combinable) - list_sessions — recent sessions with project/time filters - get_session_timeline — chronological view with offset/tail pagination and summary-only scan mode - get_latest_events — most recent events across all sessions, project- and tool-filterable - replay_file — reconstruct file state at a point in time - get_file_history — every edit to a file across all sessions - get_stats — storage statistics
Proactive memory: - recall — fuzzy natural-language recall (use this first) - recall_project_status — "where did we leave off on X?" — git-aware project summary with commits, issues, last outcome - search_in_context — find something in a session and get the surrounding conversation - match_project — find projects by partial name / category / description - find_episodes — structured search for problem→fix pairs - get_episode — full detail for one episode including diff + file state - list_projects — browse inferred projects (compact by default, verbose optional) - get_project_timeline — session-level timeline for one project - list_plans — every Write/Edit to ~/.claude/plans/*.md across your entire history
Git history: - get_session_commits — all git operations in a session (commits, pushes, checkouts, merges) - find_commits — search across all sessions by commit message, hash prefix, or branch name
Self-healing: - reconcile — wraps longhand reconcile --fix so Claude can re-attribute and re-ingest from inside a session after a staleness banner
All tools support max_chars output capping with pagination hints. No more 96k dumps crashing your context.
Once installed, you can ask Claude things like "what did we decide about the auth middleware in last week's session?" and it will actually search its own past work.
---
thedotmack/claude-mem is the most popular Claude Code memory tool on GitHub (55k+ stars). It's a good tool. It is also solving the memory problem in the opposite direction from Longhand, and the difference is worth understanding before you pick one.
| claude-mem | Longhand | |
|---|---|---|
| **What's stored** | AI-generated summaries / "observations" | Verbatim events from the raw JSONL |
| **Who decides what's kept** | An LLM, at write time | Nobody — everything is kept |
| **Compression** | Semantic (lossy, by design) | None (lossless) |
| **API calls per session** | One or more (calls Claude to summarize) | Zero |
| **Thinking blocks** | Typically folded into summaries | First-class, stored verbatim |
| **Deterministic replay** | No — summaries can't reconstruct file state | Yes — every diff kept and replayable |
| **Model portability** | Tied to the summarizer's output | Same data works across any model, forever |
| **Runtime** | TypeScript, Bun, HTTP worker on :37777 | Python, no server |
| **License** | AGPL-3.0 | MIT |
The philosophical split: claude-mem asks an AI what was important and keeps that. Longhand keeps the actual bytes and lets you decide later. If you trust a model's judgment about its own past, claude-mem's approach is cheaper at query time (pre-summarized) and easier on storage. If you've ever been burned by a summary that dropped the thing that turned out to matter, Longhand is the tool that never throws anything away.
Both can coexist on the same machine — they operate on the same JSONL files without interfering.
---
| Longhand | Summary-based (Mem0, MemPalace, LangMem) | |
|---|---|---|
| Source | Raw Claude Code JSONL | AI-generated summaries |
| Tool calls captured | Every one, verbatim | Whatever the summarizer kept |
| File edits | Full before/after diffs | Usually not captured |
| Thinking blocks | First-class events | Usually discarded |
| File state replay | Deterministic | Not possible |
| Problem→fix extraction | Rules-based, at ingest | Depends on summarizer |
| Fuzzy recall | Yes, with artifacts | Text search over summaries |
| What gets "decided" | Nothing — store everything | The AI decides what matters |
| Local-first | Yes | Most |
| Completeness | Every event from the session file | Whatever the summarizer kept |
| LLM calls to function | Zero | Varies |
Summary memory and Longhand solve different problems. Summary memory is good for long-term personal assistants that need compressed context across many conversations. Longhand is good for developers who need forensic access to their past Claude Code work — the kind of access where you need the exact diff, not a paraphrase.
---
长手记忆是一个有潜力的MCP工具
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
总体来看,长手记忆 是一款质量良好的MCP工具,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | longhand |
| 原始描述 | 开源MCP工具:Lossless local memory for Claude Code. The full, unabbreviated version. Every to。⭐10 · Python |
| Topics | mcpai-memoryanthropicchromadbclaude-code |
| GitHub | https://github.com/Wynelson94/longhand |
| License | MIT |
| 语言 | Python |
收录时间:2026-06-09 · 更新时间:2026-06-09 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端