sparrow-cli 0.9.2

A local-first Rust agent cockpit β€” route, run, replay, rewind
Documentation

🐦 Sparrow

A local-first Rust agent cockpit β€” route, run, replay, rewind.

CI Security Audit Release License: MIT Rust 1.96+ crates.io docs.rs Linux macOS Windows Downloads GitHub stars

One event stream. Terminal UI, WebView cockpit, JSON output, or gateway β€” your choice.

β–Ά Watch the 30-second demo

Quick Start Β· Why Sparrow Β· Commands Β· Architecture Β· Docs Β· Releases


Sparrow is a single-binary CLI agent written in Rust. It routes each task to the cheapest capable model, keeps you in control with Git-backed checkpoints, and makes every run replayable. Local models (Ollama) are always the first hop; cloud providers are explicit fallbacks.

The project focuses on a narrow product promise: a Rust-native local cockpit where every run is visible, replayable, budgeted, and checkpointed.


Qu'est-ce que tu veux faire ? Β· What do you want to do?

N'importe qui peut utiliser Sparrow. Décris ton problème avec tes mots — Sparrow le règle, te montre, et garantit que rien n'est jamais perdu.

sparrow bonjour                 # accueil : Sparrow regarde ton dossier et propose
sparrow fix "mon site plante"   # décris le problème → diagnostic + correction
sparrow explique src/app.js     # comprends un fichier ou une erreur, en clair
sparrow idees                   # tout ce que tu peux faire, par profil
sparrow whatis token            # c'est quoi ce mot ? (dΓ©finition instantanΓ©e)
sparrow annule                  # reviens en arrière — rien n'est jamais perdu

Sparrow te parle en langage simple par dΓ©faut (sparrow mode simple|pro). Pour le dΓ©tail technique complet, tout le mode pro est lΓ  β€” rien n'est retirΓ©.


Why Sparrow vs Claude Code / Codex / Aider

Capability Claude Code OpenAI Codex CLI Aider Sparrow
Single static binary, no Node/Python runtime ❌ ❌ ❌ βœ…
Choose any provider, any model ❌ Anthropic ❌ OpenAI βœ… βœ… 38 providers
Local-first (Ollama OOTB) ❌ ❌ ⚠️ βœ…
Git checkpoints + rewind per run ❌ ❌ ⚠️ βœ…
Budget caps (--max-cost-usd / --max-wall-secs) ❌ ❌ ❌ βœ…
WebView cockpit + TUI + JSON stream ⚠️ TUI only ⚠️ TUI only ⚠️ TUI only βœ… all three
Right-side tools panel (Preview/Diff/Terminal/Files/Tasks/Plan) ⚠️ ❌ ❌ βœ… event-driven
Live app preview embed (port auto-detect) ❌ ❌ ❌ βœ…
MCP server host + client βœ… ⚠️ ❌ βœ…
Drop-in import (~/.claude/, Codex, OpenCode) n/a ❌ ❌ βœ…
Multi-agent swarm (Planner β†’ Coder β†’ Verifier) ❌ ❌ ❌ βœ…
Telegram / Discord / Slack gateways ❌ ❌ ❌ βœ…
Pre-commit secret scanner bundled ❌ ❌ ❌ βœ…
Voice (speak, transcribe) ❌ ❌ ❌ βœ…
Replay & share session as URL/Gist ❌ ❌ ❌ βœ…
Source open, MIT ⚠️ closed ⚠️ closed βœ… βœ…
Zero telemetry by default ⚠️ ⚠️ βœ… βœ…

See docs/comparison/vs-competitors.md for the long form (incl. OpenCode, Hermes, Continue, Cursor).


✨ What's New β€” v0.9 Β« Anyone Β»

Radical accessibility. Anyone should understand and use Sparrow β€” a child, a grandparent, a teacher, a mechanic, an engineer. The engine doesn't change; the surface does. Focus mode for humans, Cockpit for pros. Same power, two depths.

πŸ—£οΈ Zero jargon β€” Mode Simple / Pro

  • sparrow mode simple|pro|auto β€” choose how Sparrow talks to you, persisted in config
  • Every engine Event now has a human-language phrase (FR/EN) β€” no more run a3f2 Β· route Β· tier T1
  • Exhaustive match at compile time: adding a new event without a human phrase fails to compile β€” anti-regression lock

πŸ”§ sparrow fix β€” the universal fixer

  • Paste an error message, describe a problem, or just run sparrow fix β€” it scans your directory, diagnoses in one sentence, and proposes a fix
  • Automatic checkpoint before any change, one-word undo: sparrow annule

πŸ‘‹ sparrow bonjour β€” the warm welcome

  • Detects your context (git conflict, uninstalled project, photo folder) and suggests the best next action
  • No jargon, no flags β€” just "What are we fixing today?"

πŸ’‘ sparrow idees β€” the idea gallery

  • 50+ concrete recipes organized by persona: teacher, grandparent, child, artisan, builder, developer
  • Pick a recipe, press Enter, watch Sparrow work β€” the recipe IS the tutorial

πŸ–₯️ Focus / Cockpit β€” one console, two views

  • Focus (default): one column, large text, three buttons β€” [βœ… Okay] [↩️ Undo] [❓ Explain]
  • Cockpit: full 3-column view with swarm lanes, config, routing β€” zero power lost
  • Right-side tools panel: Preview, Diff, Terminal, Files, Background tasks, Plan β€” every panel fed by real events, never mock data. Opens manually (Ctrl/⌘+Shift+S) or auto-opens on diffs, failed tasks, and plan updates with priority rules that never nag.
  • Live preview detection: probes common dev ports (3000, 4200, 5173, 8080…) and embeds your running app in an iframe β€” or type any URL.
  • Replay, finally one click: β–Έ replay lists your recorded runs and re-renders any transcript β€” no more pasting run IDs.
  • Ghost-text autocomplete: fish-style inline suggestion from your real command history β€” Tab to accept.
  • Rich Markdown in chat: streamed prose renders bold, headings, lists, tables, links, and inline code.
  • Keyboard cheat-sheet: Ctrl/⌘+/ shows every shortcut, grouped and platform-aware.
  • New white theme alongside Captain and Paper β€” clean, high-contrast light UI.

πŸ›‘οΈ Safety net

  • sparrow budget 2€ β€” set spending cap in human language
  • sparrow annule β€” one-word undo, back to last checkpoint
  • Contract displayed before ANY file modification: "I'll modify 2 files. Checkpoint created βœ“. Proceed?"

Install & distribution

  • cargo install sparrow-cli v0.9.2 on crates.io
  • Pre-built binaries for Linux, macOS, Windows on every release
  • sparrow launch β€” zero-question first launch with free/local fallbacks; --pro keeps the expert wizard

What was already here (v0.5.x)

  • Agentic engine with planner β†’ coder β†’ verifier pipeline, swarm orchestrator, git checkpoints + rewind.
  • CLI rich rendering (syntect), streaming + chat composer, TTS/STT, voice commands.
  • Memory CLI + FTS5 session search, encrypted credential store, pre-commit secret scanner.
  • Humanized French errors, VS Code extension, Claude Code drop-in compat.

Why Explore It

Model routing Budget-aware fallback chains across Ollama, NVIDIA, Anthropic, OpenAI-compatible APIs, and 30+ registry entries
WebView cockpit Live route/token/cost/context at http://127.0.0.1:9339/ with drawer panels, premium Timeline/Costs/Roadmap/Releases/Runs panels, slash palette, and agent picker
Terminal-native Animated TUI cockpit, sparrow run, sparrow chat, --json output, replay, memory, gateway
Rollback safety Auto-checkpoint before any mutating action; sparrow rewind <id> to restore
Persistent context SQLite facts + knowledge graph, SOUL-style .agent.md files, guarded skill registry, full transcripts
Browser/computer-use Playwright-backed browser tool and gated screenshot/click/type computer primitive
Gateway Telegram, Discord, Slack, WebSocket API β€” wired with honest errors, not silent failures
Release intel Opt-in public release scanner (sparrow intel scan) with local digests/backlog and no network when disabled

Status

Sparrow is public beta with a green cross-platform CI baseline. The kernel, routing core, console surfaces, replay, checkpoints, and memory are wired and tested; external transports are being validated by early adopters.

Area Status Evidence
CI / Rust build βœ… Stable Ubuntu Β· macOS Β· Windows; fmt, clippy -D warnings, check, release builds
Test suite βœ… Stable Full cargo test green on current master
Security audit βœ… Stable rustsec/audit-check on all three platforms
Engine loop βœ… Stable Event stream, task classification, fallback execution, auto-checkpoint, auto-compaction
WebView console βœ… Stable Full cockpit β€” rail/drawer, typed event stream, compact highlighted code cards, themes, composer, approval modal
TUI cockpit βœ… Stable Animated cockpit, swarm lanes, checkpoint/diff/cost panels, @ picker, history
Plan mode / slash βœ… Stable sparrow plan, /plan, built-in commands, user/project Markdown discovery
Permissions / hooks βœ… Stable 6 permission modes; Pre/Post lifecycle hooks for run/tool/checkpoint/compact
Declarative agents βœ… Stable SOUL TOML + Markdown frontmatter; agent run, agent mention, CRUD
Skills / plugins βœ… Stable Progressive references + templates; plugin manifests; CLI install/list/remove
Toolsets βœ… Stable Toolset/risk/auth/mutation/network/exec metadata; surface filtering
Browser / computer-use πŸ”Ά Alpha Playwright driver, screenshot blocks, click/type, Linux bwrap wrapper when available
Security audit CLI βœ… Stable sparrow security audit [--json], WebView /security
Sandbox policy βœ… Stable Protected paths, env allowlist; Docker/SSH/Worktree backends; honest vendor errors
Media tools βœ… Stable vision, image_generate, text_to_speech, transcribe; WebView upload/artifacts
GitHub Action βœ… Stable action.yml, sample workflow, sparrow github review/status/logs, --dry-run
Context / compaction βœ… Stable ContextMeter, engine auto-trigger at 120k chars, durable HandoffDoc
Gateway βœ… Stable /status roundtrip on port 9338; run registry with real abort
Replay / memory βœ… Stable Recorder, checkpoint, rewind, SQLite facts, knowledge graph, optional Neo4j sync, bounded MEMORY.md, session search
Provider routing πŸ”Ά Alpha Ollama + NVIDIA tested locally; 92 NVIDIA models discovered
First-run setup βœ… Stable Zero-question default launch, readable config, expert wizard behind sparrow launch --pro
Telegram / Discord / Slack πŸ”Έ Partial Transport implementations exist; E2E token validation pending
Extra transports πŸ§ͺ Experimental WhatsApp, Signal, Email, Feishu, WeCom, QQ, Teams adapters present
Cloud sandboxes πŸ§ͺ Experimental Modal, Daytona, Vercel, Singularity β€” placeholder entries
Cross-platform release βœ… Stable Linux Β· macOS Β· Windows pre-built binaries on every tag

See docs/AUDIT.md for module-by-module proof.


Quick Start

Available today β€” same sparrow binary either way:

# Universal (Rust toolchain) β€” published on crates.io
cargo install sparrow-cli

# macOS / Linux β€” one-liner (pulls the latest GitHub release)
curl -fsSL https://raw.githubusercontent.com/ucav/Sparrow/master/install.sh | sh

# Windows β€” PowerShell one-liner
irm https://raw.githubusercontent.com/ucav/Sparrow/master/install.ps1 | iex

Or grab a prebuilt binary directly from the latest release (Linux x86_64, macOS arm64, Windows x86_64).

Package managers (manifests ready, publishing in progress):

# macOS β€” Homebrew
brew install ucav/tap/sparrow

# Windows β€” Scoop
scoop bucket add ucav https://github.com/ucav/scoop-bucket && scoop install sparrow

# Windows 11 β€” winget
winget install ucav.Sparrow

Then:

sparrow launch       # first-run prepares a free/local fallback, opens Focus cockpit
sparrow run "explain this repo and write TODO.md"

That's the 60-second tour. No API key required β€” first launch prepares a free/local fallback and lets you start from the prompt. Use sparrow launch --pro if you want the detailed provider wizard.

Launch Sparrow:

sparrow launch

sparrow launch prepares Sparrow silently when needed, then opens the WebView Focus cockpit on http://127.0.0.1:9339/. Use sparrow launch --tui for the terminal cockpit, or sparrow launch --pro for the expert setup wizard.

Build from source:

git clone https://github.com/ucav/Sparrow.git
cd Sparrow
cargo build
cargo test --all-targets

Run the WebView cockpit:

cargo run -- launch
# β†’ open http://127.0.0.1:9339/

Routing smoke test:

cargo run -- --json run "how does Sparrow choose the best model?"

List detected providers and models:

cargo run -- model --list

Force a specific route:

# Local Ollama first
cargo run -- --local run "summarize this repo"

# Explicit NVIDIA route
cargo run -- --model nvidia:meta/llama-3.1-8b-instruct run "explain routing"

# Coding / reasoning route
cargo run -- --model nvidia:deepseek-ai/deepseek-v4-flash run "refactor this function"

First Configuration

cargo run -- setup

Useful environment variables:

NVIDIA_API_KEY=...
ANTHROPIC_API_KEY=...
OPENAI_API_KEY=...
GROQ_API_KEY=...
OPENROUTER_API_KEY=...
OLLAMA_HOST=http://127.0.0.1:11434

Config lives in the platform config directory (e.g. %APPDATA%\sparrow\config.toml on Windows). Sparrow never needs API keys in the repository.


Provider Routing

Sparrow keeps a static provider registry and expands it with live model discovery when credentials are available. Stored credentials added with sparrow auth add nvidia are used for discovery, so sparrow model --list can populate the NVIDIA catalog even when NVIDIA_API_KEY is not exported.

Default NVIDIA chain:

Model Use case
meta/llama-3.1-8b-instruct Fast general chat and cheap smoke tests
stepfun-ai/step-3.5-flash Fast backup route via NVIDIA NIM
nvidia/nemotron-3-super-120b-a12b Stronger fallback for heavier tasks

sparrow model --set nvidia resets an older pinned config back to this chain.


Common Commands

sparrow setup                      # first-run configuration
sparrow import auto                # migrate from claude-code / codex / opencode
sparrow plan "propose an approach" # read-only plan mode
sparrow console                    # launch WebView cockpit
sparrow run "fix the failing test"
sparrow --json run "summarize"     # NDJSON output for CI/hooks
sparrow chat                       # interactive session
sparrow model --list               # discovered providers & models
sparrow gateway start              # start gateway (Telegram/Discord/WS)
sparrow gateway status
sparrow gateway stop
sparrow replay <run-id>            # replay a past run
sparrow checkpoint list
sparrow rewind <checkpoint-id>     # restore workspace
sparrow memory list
sparrow memory graph search routing
sparrow security audit
sparrow doctor

Custom slash commands can be declared as Markdown files in .sparrow/commands/*.md or %APPDATA%\sparrow\commands\*.md. User-level commands override project and built-in ones by name. Skills are also exposed as slash commands.


Architecture

              user task
                  β”‚
       routing-need classifier
                  β”‚
      budget-aware fallback chain
                  β”‚
                Engine
      think β†’ tool β†’ observe β†’ emit
                  β”‚
       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
      CLI        TUI       WebView
      JSON     Gateway    Recorder

Load-bearing contracts:

File Role
src/event.rs Canonical event stream
src/provider/mod.rs Brain abstraction
src/router/mod.rs Model ranking and fallbacks
src/engine/mod.rs Agent loop
src/tools/mod.rs Tool contracts
src/gateway/mod.rs External message routing

Docs

Document Topic
docs/AUDIT.md Module-by-module proof
docs/architecture.md System architecture
docs/cli-reference.md Full CLI reference
docs/routing.md Routing and provider chains
docs/autonomy.md Permission modes and hooks
docs/sandboxing.md Sandbox policy and backends
docs/browser-computer.md Playwright browser and computer-use tools
docs/replay.md Replay and checkpoints
docs/swarm.md Multi-agent swarm
docs/keyboard.md Keyboard shortcuts
docs/configuration.md Configuration reference
assets/brand/ Brand assets (SVG, HTML, ASCII)

Contributing

Before opening a PR:

cargo fmt --all -- --check
cargo clippy --all-targets -- -D warnings
cargo test --all-targets

Keep docs honest: mark features as Stable, Alpha, Partial, Experimental, or Planned based on tests and runnable examples. See CONTRIBUTING.md.


License

MIT β€” see LICENSE.