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.
π¦ 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 | β | β 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
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, 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 rewindto restore. - Autonomy gates:
Supervised(asks before exec/mutate),Trusted,Autonomous. β οΈ The current default isTrusted, which auto-runsexecand network tools (you are notified but not prompted);Destructiveactions always ask. SetSupervisedin config if you want a prompt before every command. - Sandbox:
local-hardenedconfines the working directory to your workspace and blocks known secret paths (.ssh,.env, β¦). On Linux it additionally wraps commands withfirejail/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 thedockerorsshsandbox 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
# macOS / Linux β one-liner (pulls the latest GitHub release)
|
# Windows β PowerShell one-liner
|
Trust note. Piping a script to
sh/iexruns code from the network. Readinstall.sh/install.ps1first if you prefer. The installers verify the release SHA256 against the.sha256published with each release, install to a user directory, print the exact binary path, and do not auto-launch β runsparrow launchyourself when ready (--launch/-Launchto 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
# 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 |
|---|---|
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
dockerorsshbackend. - WebView and TUI cockpits are evolving; expect rough edges on less common terminals.
- Default autonomy is
Trustedβ it runsexec/network tools without prompting. Switch toSupervisedif 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:
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.