Frequently Asked Questions

Everything you need to know about Suvadu.

Getting Started

What's the difference between Suvadu and built-in Zsh history?

Standard Zsh history stores commands in a plain text file with limited metadata. Suvadu stores everything in a SQLite database with WAL mode, capturing duration, exit code, working directory, session ID, and executor origin for every command. This enables structured queries, filtering, and sub-10ms search even with millions of entries.

Which shells does Suvadu support?

Suvadu supports Zsh and Bash. Fish support is on the roadmap. The core SQLite engine is shell-agnostic — only the hook integration is shell-specific.

What platforms are supported?

Suvadu supports macOS (Apple Silicon and Intel) and Linux with Zsh or Bash. Zsh 5.1+ ships with macOS by default since Catalina; Bash is available on all major Linux distributions.

How do I migrate from standard Zsh history?

After installing Suvadu, new commands are automatically recorded. Your existing .zsh_history file remains untouched. To import your legacy history, run suv import --from zsh-history ~/.zsh_history. Use --dry-run to preview what would be imported first.

Can I use Suvadu with tmux or screen?

Yes. Suvadu works in tmux, screen, and any terminal multiplexer. Each pane gets its own session ID for accurate tracking.

Homebrew install fails on my Mac (Rosetta). What do I do?

If your Mac runs Homebrew under Rosetta (x86 emulation), the Homebrew tap may not work correctly. Install manually instead: curl -sL https://downloads.suvadu.sh/macos/suv-macos-latest.tar.gz | tar xz && sudo mv suv /usr/local/bin/. The download includes a universal binary that works on both Apple Silicon and Intel Macs.

How do I update Suvadu?

Depends on how you installed it. Homebrew: brew update && brew tap AppachiTech/suvadu && brew upgrade suvadu. Cargo: cargo install suvadu. Manual install (curl/tar): run suv update, which auto-detects your platform and architecture, verifies the download, and replaces the binary.

Will updating Suvadu delete my history?

No. Your history database and config are stored separately from the binary. Updating only replaces the suv executable — your data at ~/Library/Application Support/suvadu/ (macOS) or ~/.local/share/suvadu/ (Linux) is never touched.

Privacy & Performance

Does Suvadu store data locally or in the cloud?

100% local. Your history database is stored at ~/Library/Application Support/suvadu/history.db on macOS. No data ever leaves your machine. There's no account, no telemetry, and no cloud sync.

What's the performance impact on my shell?

Minimal. Recording uses native shell timestamps and SQLite writes, adding less than 2ms overhead per command. Search queries return in under 10ms even with hundreds of thousands of entries.

What's the database size for 100,000 commands?

Approximately 15–25 MB for 100,000 commands, depending on average command length. SQLite with WAL mode is extremely space-efficient. Even a million commands typically stays under 200 MB.

Can I ignore certain commands from being recorded?

Yes. Use suv settings to configure exclusion patterns (regex). Common patterns like ^ls$, ^cd, and ^pwd$ can be added to keep noise out of your database.

Does Suvadu redact secrets?

Yes. Suvadu automatically detects API keys, tokens, and passwords in commands and redacts them before they are written to the database. Your secrets never touch disk.

Is Suvadu open source?

Yes, MIT licensed. Source code at https://github.com/AppachiTech/suvadu.

Search & Navigation

Can I search history by exit code?

Yes. In the TUI (suv search), press Ctrl+F to open the filter panel and enter an exit code. Use exit code 0 for successful commands, or any non-zero code to find failures.

Can I see history for just this directory?

Yes. Use suv search --here to filter history to commands run in your current working directory. In the TUI, press Ctrl+L to toggle the directory filter on or off.

What is Smart mode in search?

Smart mode (enabled by default) automatically ranks commands from your current directory higher in search results. Press Ctrl+S to toggle between Smart and Recent modes.

How do Smart arrow keys work?

When Smart mode is enabled, the Up/Down arrow keys use frecency ranking instead of pure recency. Frecency combines how often you run a command with how recently you ran it, weighted by time tiers.

What is the detail preview pane?

Press Tab in the search TUI to toggle a side panel that shows full metadata for the selected entry: command text, working directory, timestamp, duration, exit code, session ID, tag, executor type, bookmark status, and note indicator.

Does Suvadu support vim keybindings?

Yes. Enable vim_mode in suv settings → Search tab (or set vim_mode = true in config.toml under [search]). This adds modal navigation: Esc switches to Normal mode where j/k navigate, Ctrl+U/Ctrl+D scroll half-page, g/G jump to top/bottom, / or i returns to Insert (search) mode, and q quits.

Features

Can I save favorite commands?

Yes. Use suv bookmark add "your command" to bookmark any command. Bookmarked commands show a ★ indicator in search results. Toggle bookmarks directly in the search TUI with Ctrl+B.

Can I add notes to commands?

Yes. Use suv note <id> -c "your note" to annotate any history entry with context. Notes appear in search results with a memo indicator, and you can add or edit notes directly in the TUI with Ctrl+N.

Can I see usage statistics?

Yes. Run suv stats to see a full analytics dashboard: total and unique commands, success rate, average duration, top commands, busiest hours, top directories, and executor breakdown.

Can I replay what I did in a session?

Yes. Run suv replay to see a chronological timeline of commands from your current session. Add --after today for today's commands, --here for the current directory, or combine filters.

Can I export or import my history?

Yes. Run suv export to export your entire history as JSONL or CSV. To import on another machine, use suv import history.jsonl. Use --dry-run to preview.

How do I see what prompts triggered AI commands?

Use suv agent prompts or press p in the agent dashboard. The Prompt Explorer shows each prompt with the commands it triggered, grouped by session.

AI & IDE Integration

How does Suvadu detect AI agent commands?

Suvadu detects the executor environment using hooks and environment variables. Claude Code, Cursor, and OpenCode have dedicated integrations (suv init claude-code / suv init cursor / suv init opencode) that capture commands, exit codes, and prompts. Antigravity, Codex, Aider, Windsurf, and others are auto-detected via environment variables.

How do I set up Claude Code integration?

Run suv init claude-code. This installs PostToolUse, PostToolUseFailure, and UserPromptSubmit hooks and auto-configures ~/.claude/settings.json. Restart Claude Code after setup.

How do I set up Cursor integration?

Run suv init cursor. This configures Suvadu to detect Cursor's environment variables and capture commands from its integrated terminal. Restart Cursor after setup.

What is the agent dashboard?

The agent dashboard (suv agent dashboard) is an interactive TUI that gives you a real-time overview of every command your AI agents have run. It shows a summary panel with agent count, total commands, success rate, and risk counts.

How does risk assessment work?

Suvadu automatically classifies every agent command into a risk level: Critical (rm -rf, DROP TABLE, force-push), High (chmod 777, package installs), Medium (git reset, docker run), Low (file writes, branch operations), or Safe (read-only commands).

What is the MCP server?

Suvadu includes an MCP (Model Context Protocol) server that lets AI agents query your shell history directly. It provides 11 tools (search, risk assessment, failure analysis) and 5 browsable resources. Auto-configured when you run suv init claude-code or suv init cursor.

How do I track OpenCode commands?

Run suv init opencode. This installs a plugin at ~/.opencode/plugins/suvadu.js that automatically captures every bash command OpenCode executes, including the user prompt.

Can I add support for my own AI tool?

Yes. Go to suv settings → Agents tab and add a detection rule with the tool's name, its environment variable, and executor type (agent, ide, or ci).

Ready to try Suvadu?

Install Now