Search your shell history (zsh/bash/fish) from Claude/MCP. Local SQLite FTS5. Secret-redacted.
terminal-history-mcp
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Search your shell history (zsh / bash / fish) from Claude Code, Cline, Cursor, Zed, or any MCP client. Local-only. SQLite FTS5. Secret-redacted before storage.
What you can ask
- *"When did I last ssh into the staging server?"*
- *"Show recent failed commands."*
- *"What did I run yesterday in /etc/nginx?"*
- *"What's that long docker compose flag I used 3 weeks ago?"*
- *"Show command chains around kubectl apply."*
Install
(Or run from a clone: git clone … && npm install && npm run build && npm link.)
Wire to Claude Code
Wire to other MCP clients
Anywhere that takes a stdio MCP server config:
Connect via MCPize
Use this MCP server instantly with no local installation:
Or connect at: **https://mcpize.com/mcp/terminal-history**
Capture cwd + exit code (recommended)
By default zsh/bash history files store only the command. To unlock recent_in_dir and failed_commands, install the shell hook:
The hook appends pipe-delimited lines to ~/.terminal-history-mcp/extended.log. Reindex picks them up.
To inspect the snippet first:
To remove:
Tools
| Tool | What it does |
|------|--------------|
| search_history(query, limit) | FTS5 keyword + prefix match across all history |
| recent_in_dir(cwd, limit) | Last N commands in a working dir (needs hook) |
| failed_commands(since_ts_ms, limit) | Commands with non-zero exit (needs hook) |
| command_chains(query, window_ms, limit) | For each match, list commands within ±5 min |
| reindex | Re-parse history files + extended log |
Privacy
Everything is local. The DB lives at ~/.terminal-history-mcp/history.db. Nothing is uploaded.
Secrets are scrubbed **before** insert. Detected patterns:
- GitHub PATs (ghp_*, gho_*, …)
- OpenAI keys (sk-*)
- Slack tokens (xox[baprs]-*)
- AWS access keys (AKIA…)
- Authorization: Bearer/Basic
- X-*-Token: …, X-*-Key: …, X-*-Secret: … headers
- Env vars containing TOKEN / KEY / SECRET / PASSWORD / API_KEY
- CLI flags --token=…, --api-key …, -k …
- URL basic-auth https://user:pass@host