v0.5.2 · MIT · macOS & Linux

Total recall for
your terminal.

Search your shell history. Track AI agent commands.

Keep command context in a local SQLite database. Connect supported AI agents through MCP to query past work.

[su-va-du] Noun · Trace / Footprint

Already use Homebrew?

brew tap AppachiTech/suvadu && brew install suvadu

Then enable shell integration below. Install script and Cargo options are there too.

Using AI coding agents? See a session handoff or inspect captured sessions.

zsh — Ctrl+R

Recorded with fictional data in v0.5.0 · Search guide

Not just history. Memory.

Three layers that turn your terminal history into a structured, queryable, agent-accessible knowledge base.

Structured History

Recorded commands include exit code, duration, directory, git branch, session, and executor. Search forgives separators, and ranking learns what you run often and what you run next.

AI Agent Tracking

Identify supported agents in recorded commands. Capture prompts, sessions, and which files a session changed in git for Claude Code, Codex, OpenCode, and Cursor.

MCP Agent Memory

Query history, past sessions, failures and what an agent changed through 22 read-only MCP tools. Share reusable instructions, including team skills committed in the repository, and sync them into Claude Code, Cursor, and Codex.

Suvadu stores history locally. When you connect an AI client, that client controls how retrieved history is used.

See it in action

Discover features in Home and follow an agent session from prompt to commands. Try command recall in the Search demo above.

Hand off an agent session

A Claude Code session stops partway through a task. Suvadu has already imported its prompts, responses, and commands. Open Codex in the same repo and ask it to continue; Codex reads the session over MCP.

1 · zsh — captured sessions
$ suv sessions --list -n 2

  Last active        ID         Type   Tag          Agent / Host     Model                 Tokens   Cmds Duration
  ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  2026-09-19 09:14   claude-8   AI     —            claude-code      claude-sonnet-4-5      47330      9    42.0m
  2026-09-19 08:55   4f2a9c1e   Human  api          laptop           —                          —     31    72.0m
2 · Codex — Suvadu MCP

you › Pick up where my Claude Code session left off in this repo.

called list_agent_sessions
called get_agent_session claude-8f3c2a71-…

codex › The last Claude Code session added rate limiting to the login route. Its final npm test run (command-5512) exited 1: two tests in tests/auth.test.ts still expect 200 instead of 429. I'll update those tests first.

Synthetic example. Claude Code, Codex, OpenCode and Cursor sessions are captured (Cursor without token usage); other integrations record commands and prompts. Why a test failed comes from a failed command's output, kept only with the opt-in failure output. A turn still in progress is available after it ends.

Discover features and understand AI activity

Recorded in Suvadu 0.5.0 with fictional history, prompts, and responses. No live agent work is performed. See the CLI docs for full instructions and shortcuts.

zsh — suv

Find the feature you need

Run suv to explore tools by task, or type a feature name and open it directly.

  • Browse categories without reading the entire manual
  • Search for a task such as “failed”
  • See the command and shortcut behind each feature
  • Open filtered history and return to Home with Esc

Read the guide →

What happens in this video

The demo runs suv, opens Find a command, types failed, and presses Enter to open history filtered to failed commands. Esc returns to Home.

Why switch?

Add structured context and filtering to your shell history.

Feature Standard History Suvadu
Search
Built-in history search
Substring search with interactive filters, a separator-insensitive fallback, and ranking by frecency and what you run next
Command context
Commands; timestamps depend on configuration
Exit code, duration, directory, git branch, session and executor
Arrow recall
Usually recent commands first
Zsh: recent commands first, directory as a tiebreaker, and a zsh-autosuggestions strategy
Filtering
Shell commands and external tools
Date, exit code, directory and executor filters
Storage
A shell history file
A local SQLite database
Analytics
External tools or scripts
Built-in stats and agent dashboards
Recording controls
Shell-specific ignore settings
Ignore patterns, pause and disable controls
Secret redaction
Depends on shell and tooling
Pattern-based redaction for recognized secrets

Shell behavior varies by configuration. Suvadu records commands after integration is enabled; ignore settings apply. Redaction matches known patterns and cannot identify every secret.

Works with your tools

Dedicated integrations and executor detection for supported tools.

Claude Code logo
Claude Code
hooks + MCP ✓
Cursor logo
Cursor
hooks + MCP ✓
Codex logo
Codex
hooks + MCP ✓
OpenCode logo
OpenCode
plugin + MCP ✓
Terminal logo
Terminal
shell hooks ✓
VS Code logo
VS Code
auto-detect ✓
Windsurf logo
Windsurf
auto-detect ✓
Antigravity logo
Antigravity
agent commands ✓

Shell recording, prompt capture and MCP access have different setup requirements. Detection alone does not capture prompts. Choose your agent setup or see the compatibility matrix.

All trademarks belong to their respective owners.

Install Suvadu

macOS & Linux · Zsh 5.1+ or Bash 4+

Install the CLI, enable recording in your shell, then try a search.

  1. Install the CLI

    Choose one method. Each installs the suv command.

    Homebrew

    Recommended if you already use Homebrew on macOS or Linux. Update later with brew upgrade suvadu.

    brew tap AppachiTech/suvadu && brew install suvadu

    Install script

    Works on macOS and Linux, Intel and ARM. Downloads a binary for your operating system and architecture, verifies its checksum, and installs to /usr/local/bin, using sudo only if that directory is not writable. End the command with bash -s -- --user instead to install into ~/.local/bin without sudo.

    curl -fsSL https://downloads.appachi.tech/suvadu/install.sh | bash
    Read the installer source

    Cargo

    Requires Rust 1.95 or newer. Compiles from source, which can take a few minutes; cargo binstall suvadu installs the pre-built binaries instead. Make sure ~/.cargo/bin is on your PATH.

    cargo install suvadu
    Requirements and manual installation
  2. Enable shell integration

    Installing the CLI alone does not record commands. Choose the shell you use to enable recording and Ctrl+R search.

    Zsh setup

    Add this line once to ~/.zshrc. If it is already there, keep the existing line.

    eval "$(suv init zsh)"

    Save the file, then run this in your Zsh terminal to activate it:

    source ~/.zshrc

    Bash setup

    Add this line once to ~/.bashrc. If it is already there, keep the existing line.

    eval "$(suv init bash)"

    Save the file, then run this in your Bash terminal to activate it:

    source ~/.bashrc

    Bash 4+ is required. For a login shell, make sure ~/.bash_profile sources ~/.bashrc, or add the hook to the startup file your shell reads. Shell setup details

  3. Check your setup and try a search

    Check your shell, recording state and database. Agent and MCP setup are optional; follow the diagnostic guidance for any issues.

    suv doctor

    Run echo hello, then press Ctrl + R and search for it. Select a result to place it in your prompt; press Enter to run it.

    Need help? Read the diagnostic guide or check shell integration.

What's New

v0.5.2
Full changelog →
v0.5.2 `cargo install suvadu` also installs a `suvadu` command, as Homebrew and the install script do; `cargo binstall suvadu` installs the signed pre-built binaries; and Suvadu is ready for the official MCP Registry
v0.5.1 Search forgives separators (`hiveagent` finds `hive-agent`), and Smart rank learns frecency, demotes commands that usually fail, and puts what you usually run next first; a failed command says what fixed it last time and, opt-in, why it failed; Cursor sessions are captured, and every agent session records which files changed in git for `what_changed`; bookmark placeholders, team skills in `.suvadu/skills`, the git branch of every command, a zsh-autosuggestions strategy, and risk rules that check every command of a line
v0.5.0 A bare `suv` now opens Home: find any feature by what you want to do and open it; Ctrl+R opens with identical commands grouped, showing when each last ran and how often (`Ctrl+U` for every run); search shows why each command matched and spells out hidden whitespace (`Ctrl+V`); typing never waits for a search; the install script can install without sudo (`--user`), offers to add the shell hook, and checks the minisign signature when it can; `suv uninstall` removes script installs
v0.4.2 Typed search now matches your whole history, not just the newest 5,000 entries; explicit matching modes and recall scopes (`--match`, `--scope`, inline `--compact` recall); Bash and Atuin history import; one response convention across every MCP tool and resource; storage, capture and risk diagnostics that say what they actually know