Give your AI agent
terminal memory.
21 tools, 8 resources, and 5 prompts that let Claude Code, Cursor, Codex, and other AI agents query your shell history through a local MCP server.
suv init claude-code or suv init cursor for Cursor, suv init codex for Codex, suv init opencode for OpenCode
Three questions an agent can answer.
Each answer is based on records the agent retrieves from your local history. The output below is a synthetic example in the format the 0.4.1 tools return. Answers depend on what your integrations captured.
list_agent_sessionsget_agent_session “Pick up where my Claude Code session left off in this repo.”
Retrieved evidence
list_agent_sessions (excerpt)
{"sessions":[{"id":"claude-8f3c2a71-…","agent":"claude-code",
"cwd":"/Users/dev/api","model":"claude-sonnet-4-5",
"event_count":38,"command_count":9,"coverage":"partial",
"usage":{"input_tokens":41210,"output_tokens":6120, …}}]}
get_agent_session (excerpt)
{"events":[ …
{"kind":"prompt","data":{"text":"Add rate limiting to the login route"}, …},
{"kind":"response","data":{"text":"Two tests in tests/auth.test.ts still expect 200 …"}, …}],
"commands":[ …
{"id":"command-5512","command":"npm test","exit_code":1, …}],
"summaries":[], …} Agent's answer
The last Claude Code session added rate limiting to the login route. Its final npm test run failed (command-5512): two tests in tests/auth.test.ts still expect 200 instead of 429. I'll start by updating those tests.
command_status “Has cargo test --workspace passed here before?”
Retrieved evidence
"cargo test --workspace" — 3 recent runs (2 succeeded, 1 failed):
1. cargo test --workspace | exit 101 | 0ms | 2026-09-18 16:04:11 | agent: openai-codex
dir: /Users/dev/api
2. cargo test --workspace | ok | 51.7s | 2026-09-17 11:20:45 | human: terminal
dir: /Users/dev/api
3. cargo test --workspace | ok | 49.9s | 2026-09-16 09:02:13 | human: terminal
dir: /Users/dev/api Agent's answer
Yes. It passed twice when you ran it (about 50 seconds each). The most recent run, from Codex yesterday, exited with 101. Codex doesn't report durations, so that run shows 0ms.
what_failed “What failed in the last 24 hours, and which prompt caused it?”
Retrieved evidence
2 failures in the last 24 hours in /Users/dev/api:
FAILURES TRIGGERED BY PROMPTS:
Prompt: "Add rate limiting to the login route"
1 commands failed:
exit 1 | npm test | 2026-09-19 09:12:40
OTHER FAILURES (no prompt captured):
exit 137 | docker compose up | terminal | 2026-09-19 08:55:02 Agent's answer
Two commands failed. npm test failed during the "Add rate limiting to the login route" prompt. docker compose up exited with 137 in your own terminal, with no prompt attached. Exit 137 usually means the process was killed, often by running out of memory.
Capture happens first. MCP only reads.
The MCP server does not watch your agent. It can return only what Suvadu's hooks and session imports have already saved.
1. Capture: hooks and native session import
- Your Zsh/Bash hook records each command you run, with exit code, duration, and directory.
suv init <agent>installs hooks, a plugin, or an extension that records the agent's shell commands and prompts.- For Claude Code and Codex (at Stop/SessionEnd) and OpenCode (when a session goes idle), Suvadu also imports the native transcript: prompts, responses, models, and reported token counts.
- Everything is stored in a local SQLite database.
2. Access: MCP at question time
- Your MCP client starts
suv mcp-serveand talks to it over stdin/stdout. - Tools query the database when the agent calls them. The server's connection is read-only; only the optional write tools below can save anything.
- Directories listed in
[mcp] exclude_dirsare left out of command and session results. - A turn still in progress may not be in the database yet. Native transcripts are imported when the turn ends.
What each agent integration captures: capability matrix. Browse captured sessions yourself with suv sessions.
21 read tools, on by default.
History, session, and skills tools read your local SQLite database. None of them write. Your MCP client controls how returned data is used. You can disable individual tools with [mcp] disabled_tools.
Discover
search_commands Search history by text, directory, executor, and date range
recent_commands What just happened in this directory
command_status Has this command been run before? What happened?
Analyze
get_stats Command counts, success rates, activity patterns
what_changed Recent commands that likely changed files: writes, deletions, git, installs, config
what_failed Failed commands and the prompt that caused them
Predict
suggest_next Likely next commands, ranked by frequency and recency over the last 7 days
assess_risk Pre-execution safety check with risk classification
Context
session_history Full chronological history of a session
list_sessions Browse sessions with metadata
get_prompts AI agent prompts and the commands they triggered
Shared Skills
list_skills Discover active instructions and checklists across agents
get_skill Read a skill by name, with an optional scope hint
search_skills Search names, descriptions, and triggers before creating new instructions
Agent Memory
find_agent_session Search past agent sessions by prompt, directory, or date
replay_agent_session Full timeline of a specific agent session with prompts
learn_from_failures Recurring failures and agent vs human comparison
project_context Project briefing: commands, failures, agent activity
Sessions
list_agent_sessions Browse locally captured AI sessions from any agent
get_agent_session Paginated events, commands, usage, and saved summaries for one session
resolve_current_agent_session Conservatively resolve "this session" without guessing
Two optional write tools, off by default
propose_skill Saves a proposed skill as pending review. It does not become active until you approve it in suv skills (Ctrl+P).
save_session_summary Stores a summary the agent wrote for a captured session. Only use it when you ask the agent to save. It must cite event/command IDs and the session's current revision. The writer agent and model are what the caller declares, not verified identities.
To enable either tool, edit config.toml directly (~/Library/Application Support/tech.appachi.suvadu/ on macOS, ~/.config/suvadu/ on Linux). The suv settings screen does not offer these options yet.
[mcp]
allow_skill_proposals = true # enables propose_skill
allow_session_summaries = true # enables save_session_summary Then fully restart your MCP client, so it starts a new MCP server that reads the setting. Saving a session summary · Configuration reference
Context your client can request.
8 resources provide context that compatible clients can read. Whether they are loaded automatically depends on your MCP client.
Resources expose recent commands, failures, agent activity, and project context. Your client chooses which resources to read and when to include them in the agent's context.
suvadu://skills/index Active skills with scopes and triggers suvadu://history/recent Last 20 commands with exit codes suvadu://failures/recent Recent failures grouped by prompt suvadu://stats/today Today's command count & success rate suvadu://risk/summary Risk summary of recent agent commands suvadu://agents/activity Per-agent activity breakdown suvadu://agents/sessions Recent agent sessions with prompts suvadu://context/project Project briefing: commands, failures, workflow Reusable prompts. Shared instructions.
MCP clients with prompt support can offer five ready-made requests. Choose one to ask the agent for a briefing, failure review, command risk check, or session summary.
project_briefingGet oriented with common commands, failures, and agent activity.
check_recent_failuresReview recurring failures over a chosen number of days.
assess_command_riskRequest a risk assessment for a command before running it.
summarize_agent_sessionSummarize a specific captured agent session, with citations.
summarize_current_sessionResolve and summarize the current session, extending its last checkpoint.
Use suv skills to manage instructions agents can discover over MCP. Native sync also writes skills into Claude Code, Cursor, and Codex. Agent proposals stay pending until you approve them.
Set up in one command.
Automatic MCP configuration for supported agents. The server communicates over stdin/stdout.
Install Suvadu
brew tap AppachiTech/suvadu && brew install suvadu All install options, including enabling shell recording
Connect your agent
suv init claude-code or suv init cursor / suv init codex / suv init opencode
Restart your agent
Restart the agent, confirm the Suvadu MCP tools are available, and try a history query. Codex also asks you to trust the hooks in /hooks.
Connect supported coding agents.
One-command MCP setup for Claude Code, Cursor, Codex, and OpenCode. Dedicated integrations and shell detection cover the tools listed below.
MCP auto-configured
Command tracking integrations
MCP can be manually configured for any agent that supports the Model Context Protocol.
100% local. By design.
Suvadu stores history locally. An MCP client can send returned history to its model provider; review your client settings before connecting it.
No network ports
JSON-RPC over stdin/stdout only. Never opens a TCP or UDP port.
No cloud
Suvadu stores history in local SQLite and has no built-in cloud history sync. Connected clients handle the data they request.
Same data as CLI
Reads from the same database that powers suv search. No separate data store.
Secret redaction
Known secret patterns are redacted by default before storage. Configure redaction for your formats; pattern matching can miss secrets.
Ready to give your agent memory?
Install Suvadu, connect your agent with one init command, then open a captured session to see what the agent can retrieve.
suv init target captures, and how to activate it. Step 2 Inspect a captured session → Browse prompts, commands, models, reported tokens, and saved summaries. Complete reference: MCP Server documentation.