π¦ Sparrow
A local-first Rust agent cockpit β route, run, replay, rewind.
One event stream. Terminal UI, WebView cockpit, JSON output, or gateway β your choice.
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 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
Eventnow has a human-language phrase (FR/EN) β no morerun 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:
βΈ replaylists 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 β
Tabto 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 languagesparrow 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-cliv0.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;--prokeeps 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
# macOS / Linux β one-liner (pulls the latest GitHub release)
|
# Windows β PowerShell one-liner
|
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
# Windows β Scoop
&&
# Windows 11 β winget
Then:
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 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:
Run the WebView cockpit:
# β open http://127.0.0.1:9339/
Routing smoke test:
List detected providers and models:
Force a specific route:
# Local Ollama first
# Explicit NVIDIA route
# Coding / reasoning route
First Configuration
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
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:
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.