sparrow-cli 0.10.0

A local-first Rust agent cockpit β€” route, run, replay, rewind
docs.rs failed to build sparrow-cli-0.10.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: sparrow-cli-0.9.2

🐦 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 βœ… βœ… 30+ registry ΒΉ
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 ❌ ❌ ❌ πŸ”Ά alpha Β²
Pre-commit secret scanner bundled ❌ ❌ ❌ βœ…
Voice (speak, transcribe) ❌ ❌ ❌ πŸ”Ά alpha Β²
Replay & share session as URL/Gist ❌ ❌ ❌ βœ… replay Β· πŸ”Ά share Β²
Source open, MIT ⚠️ closed ⚠️ closed βœ… βœ…
Zero telemetry by default ⚠️ ⚠️ βœ… βœ…

ΒΉ Static registry of ~34 keyed providers; Ollama and NVIDIA are the routes verified end-to-end today β€” others depend on your credentials and provider availability. See the status table. Β² βœ… = implemented and tested at the kernel level. πŸ”Ά alpha = code is present and exercised by unit tests, but not yet end-to-end validated with live accounts. Labels are kept honest against the status table, not marketing.

See docs/comparison/vs-competitors.md for the long form (incl. OpenCode, Hermes, Continue, Cursor). This table reflects capabilities that exist in Sparrow today β€” it is a feature comparison, not a claim that Sparrow is universally "better" than mature tools.


✨ 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, the GitHub Action, and most provider routes are alpha β€” present and unit-tested, but not yet end-to-end validated with live accounts.

Safety model (read before granting autonomy):

  • Local-first, zero telemetry by default β€” nothing leaves your machine unless you call a cloud provider.
  • Credentials stay local β€” OS keychain β†’ encrypted auth.enc β†’ env vars; never written to config or HTML in plaintext, redacted from logs/transcripts/model context.
  • Checkpoints before mutating actions, one-word sparrow annule / sparrow rewind to restore.
  • Autonomy gates: Supervised (asks before exec/mutate), Trusted, Autonomous. ⚠️ The current default is Trusted, which auto-runs exec and network tools (you are notified but not prompted); Destructive actions always ask. Set Supervised in config if you want a prompt before every command.
  • Sandbox: local-hardened confines the working directory to your workspace and blocks known secret paths (.ssh, .env, …). On Linux it additionally wraps commands with firejail/bwrap (FS scoped to workspace, network denied) when those tools are installed; otherwise it falls back to in-process path checks. For strong isolation use the docker or ssh sandbox backend. See SECURITY.md.
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 πŸ”Ά Alpha vision, image_generate, text_to_speech, transcribe; WebView upload/artifacts β€” unit-tested, not E2E with live provider media APIs
GitHub Action πŸ”Ά Alpha action.yml, sample workflow, sparrow github review/status/logs, --dry-run; install command fixed, no live E2E run yet
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

Trust note. Piping a script to sh/iex runs code from the network. Read install.sh / install.ps1 first if you prefer. The installers verify the release SHA256 against the .sha256 published with each release, install to a user directory, print the exact binary path, and do not auto-launch β€” run sparrow launch yourself when ready (--launch / -Launch to opt in).

Or grab a prebuilt binary directly from the latest release (Linux x86_64, macOS arm64, Windows x86_64) β€” each ships a matching .sha256.

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
crates/sparrow-core/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)

Known limitations

Sparrow is honest about its edges:

  • Provider routes other than Ollama and NVIDIA depend on your credentials and the provider's availability β€” they are implemented but not yet end-to-end verified.
  • Gateways (Telegram/Discord/Slack) and the GitHub Action are alpha: the code paths exist and are unit-tested, but live token/account round-trips are not yet part of CI.
  • Cloud sandboxes (Modal, Daytona, Vercel, Singularity) are experimental placeholders; for real isolation use the docker or ssh backend.
  • WebView and TUI cockpits are evolving; expect rough edges on less common terminals.
  • Default autonomy is Trusted β€” it runs exec/network tools without prompting. Switch to Supervised if you want a gate before each command.
  • Package-manager installs (Homebrew/Scoop/winget) and crates.io/docs.rs availability may lag a release β€” if a badge or command doesn't resolve yet, use the release binary or --from-source.

Support & Sponsors

Sparrow is built in the open under MIT. If it helps you, the best support is trying it, filing precise issues, and contributing.

If you'd like to fund the work, GitHub Sponsors will be the only official sponsorship channel once the profile is active (see .github/FUNDING.yml). There are no crypto wallets, no private payment flows, and no third-party funding links β€” ignore anyone who asks you to send money any other way.

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.