Terminal History Mcp

Created By
HasanJahidul25 days ago
terminal-history-mcp gives AI agents (Claude Code, Cursor, Cline, Zed, any MCP client) full-text search over your shell history. - Local-only, no cloud — SQLite FTS5 at ~/.terminal-history-mcp/history.db - Supports zsh, bash, fish - Captures cwd, exit code, duration via opt-in shell hook - 11-pattern secret redaction runs BEFORE insert (GitHub PATs, OpenAI keys, AWS, JWTs, bearer tokens, env vars, CLI flags, basic-auth URLs) - Hash-deduped, idempotent reindex - WAL mode — safe across parallel sessions Ask: "When did I last ssh into staging?", "Show failed commands today", "What did I run in /etc/nginx yesterday?", "Show context around kubectl apply".
Overview

Terminal History MCP

Search your shell history (zsh / bash / fish) from Claude Code, Cursor, Cline, Zed, or any MCP client. Local-only. SQLite FTS5. Secret-redacted before storage.

demo

Why

  • "What was that long docker compose flag I used 3 weeks ago?"
  • "When did I last ssh into staging?"
  • "Show failed commands today."
  • "What did I run yesterday in /etc/nginx?"
  • "Show context around kubectl apply."

grep ~/.zsh_history | sort | uniq is not memory. This is.

Install

npm install -g terminal-history-mcp
terminal-history-mcp index           # one-time backfill
terminal-history-mcp install-hook    # opt-in: capture cwd / exit / duration

Or zero-install via npx:

{
  "mcpServers": {
    "terminal-history": {
      "command": "npx",
      "args": ["-y", "terminal-history-mcp"]
    }
  }
}

Tools

ToolPurpose
reindexRe-parse history files + extended log into FTS5 DB
search_historyFTS5 keyword + prefix search over command history
recent_in_dirCommands run in a given working directory
failed_commandsNon-zero-exit commands since timestamp
command_chains±5min context window around matches

Privacy / Security

  • Local-only. Nothing leaves your machine. DB at ~/.terminal-history-mcp/history.db.
  • Secrets redacted BEFORE insert — defense in depth, raw SQLite browse can't leak.
  • 11 ordered patterns: GitHub PATs (ghp_*), OpenAI keys (sk-*), Slack tokens, AWS access keys, generic Token:/Key:/Secret:/ApiKey: headers, Authorization: Bearer/Basic, env-style FOO_TOKEN=val, CLI flags (--token=val, -k val), URL basic-auth (https://user:pass@host), JWTs.
  • WAL mode — concurrent shell sessions safe.

Shell support

ShellHistory parseHook capture (cwd / exit / duration)
zsh✅ (EPOCHREALTIME)
bash✅ (awk ms math)
fish✅ (date +%s%N)

Tech

  • TypeScript (ESM), Node 18+
  • better-sqlite3 (sync, no callback hell)
  • FTS5 + porter + unicode61 — Unicode-safe, stems plurals
  • Hash-based dedupe (sha1(shell|ts|cmd)) — idempotent reindex
  • Zero network calls

Pairs with

localhost-mcp — what's currently running on which port. Together: full dev environment memory for AI agents (what you ran + what's running).

Source

Server Config

{
  "mcpServers": {
    "terminal-history": {
      "command": "npx",
      "args": [
        "-y",
        "terminal-history-mcp"
      ]
    }
  }
}
Project Info
Created At
25 days ago
Updated At
25 days ago
Author Name
HasanJahidul
Star
-
Language
-
License
-
Category

Recommend Servers

View All
Bring your real authenticated browser session to AI coding agents. Local-first MCP server + Chrome MV3 extension. No cloud. No telemetry.
@Cubenest

peek records the user's actual logged-in browser (DOM via rrweb, console events, network metadata, optional response bodies via opt-in Deep capture) through a Chrome MV3 extension. The extension ships events through a native-messaging stdio bridge to a local MCP server (peek-mcp), which persists them to a SQLite database at ~/.peek/sessions.db. AI coding agents (Claude Code, Cursor, Cline, Windsurf) read sessions from the database via 10 MCP tools: Tool What it does list_recent_sessions List recently recorded sessions (id, origin, ts, event count). get_session_summary LLM-readable narrative summary of a session. get_session_console_errors Console errors recorded in a session. get_session_network_errors Failed/notable network requests in a session. get_user_action_before_error Last N user actions before a console error. generate_playwright_repro Generate a runnable Playwright test from a session. get_dom_snapshot Reconstruct the DOM at a given timestamp. query_dom_history Timeline of attribute/text changes for a selector. request_authorization Side-panel consent for write actions (Level 3). execute_action Dispatch a UI action (gated by permission level + destructive blocklist). Why local-first matters Every other "browser session for AI" tool ships to a vendor cloud. peek's SQLite + extension live on the user's machine — no remote endpoints, no telemetry. The privacy policy (docs/peek/PRIVACY_POLICY.md) is the source of truth. Install # 1. Add the MCP server to Claude Code claude mcp add peek -- npx -y @peekdev/mcp # 2. Install the Chrome extension from the Chrome Web Store # (link added once the CWS listing is approved)

8 hours ago
Alloy

2 days ago