v0.3.6 · Open Source · MIT · Local-first

Stop renting
your agents.
Start owning them.

Sparrow is a single-binary, Rust-native agent cockpit for builders who refuse to be locked in. One CLI. Git-backed checkpoints. Budget-aware routing. Every run is visible. Replayable. Yours.

⚓ Install Sparrow → View on GitHub ↗
~/projects/sparrow · sparrow run "ship the launch page"
sparrow run "ship the launch page"
[routing] classifying task → build/web · low cost
[hop 1] ● local qwen2.5-coder:7b · $0.00 · 312ms ✓
[plan] 4 steps · est. $0.04
[checkpoint] abc123 snapshot saved (1.2 MB)
[step 1/4] writing index.html ok
[step 2/4] inlining assets ok
[step 3/4] ● cloud fallback → claude-sonnet-4.5 · $0.02 · for the headline copy
[step 4/4] ok

total: $0.02 · 4.1s · ● local-first
rewind available: sparrow rewind abc123
// the problem

You shipped a prompt.
They shipped a leash.

Every agent framework out there is someone else's product strategy in disguise. Cloud-only. Closed weights. Pricing tiers behind your work. Your repo, their rules.

Your agent is a SaaS subscription

API keys, rate limits, surprise invoices, model deprecations. Switch provider, lose your memory.

Every run is a black box

You can see the input and the output. The middle? Pray and diff. Roll back? Hope you have a commit.

"Local" means "bring your own 32GB of VRAM"

And your own streaming setup. And a doctorate in llama.cpp flags.

The "agent" dies with the session

Restart tomorrow, teach it everything again. No memory. No continuity. No identity.

// how sparrow routes a single request
local
qwen2.5-coder:7bhandles it cleanly
$0.00
local
ollama auto-fallbackstandby
$0.00
→ resolved in 312ms · spent $0.00
// the four pillars

An agent that respects the four things you actually own.

Your code. Your data. Your tokens. Your time. Sparrow is built around all four.

01 / code

Git is the memory

Every mutating action snapshots a checkpoint. Roll back the workspace with one command. No mystery state. No "what just happened".

sparrow rewind <id> · restores the exact tree
02 / data

Local-first, period

SQLite facts. Local knowledge graph. SOUL files. Your context lives in ./.sparrow/. Cloud is an explicit fallback, never a default.

o llama first · ☁ cloud by choice
03 / tokens

Budget-aware routing

Each task is classified and routed to the cheapest capable model. Same answer, fractions of the cost. Set a per-run cap. Watch it in real time.

avg run: $0.02 · vs ~$0.18 industry
04 / time

Every run, replayable

Full transcript. Tool calls. Token counts. The exact model that answered. Replay any past run, tweak the input, diff the output.

sparrow replay <run-id>
// what's in the box

A full cockpit. Not a chat box.

Sparrow ships with the surfaces real agents need — terminal, web, gateway — not just a CLI that pretends an LLM is a coworker.

// cli

Terminal-native

Animated TUI cockpit. sparrow run, sparrow chat, --json for CI, NDJSON streams for hooks.

// web

WebView cockpit

Live route / token / cost / context at http://127.0.0.1:9339/. Drawer panels, slash palette, agent picker.

// safety

Sandbox backends

Linux bwrap wrapper, Docker, SSH, or Git worktree. Pick the blast radius. Permissions, not promises.

// memory

Persistent context

SQLite facts + knowledge graph. .agent.md SOUL files. Guarded skill registry. Full transcripts retained.

// browser

Playwright + computer-use

Browser tool baked in. Gated screenshot, click, type. The web is the filesystem, when you need it.

// gateway

Multi-channel gateway

Telegram, Discord, Slack, WebSocket API. Honest errors, not silent failures. Your agent, where you are.

// docs that answer back

Searchable docs. Runnable examples.

Sparrowdev.com is the public documentation surface: quick answers, CLI examples, tool API references, and short video tutorials in one static page.

First run

Configure providers, then run a routed task with full transcript and cost tracking.

sparrow setup
sparrow run "explain this repository and list the risky files"

Rollback after edits

Every mutating batch creates a checkpoint, so recovery is a command instead of a panic.

sparrow checkpoint list
sparrow rewind abc123

Knowledge graph

Persist entities and relationships locally, then optionally sync them to Neo4j.

sparrow memory graph upsert-node project:sparrow Sparrow --kind project
sparrow memory graph search sparrow

Browser/computer-use

Install the Playwright runtime and let gated tools screenshot, click, type, and inspect.

npm install
npm run browser:install
sparrow run "open the local webview and take a screenshot"

CLI API

The commands agents and humans call most often.

  • sparrow run <task> route and execute a task
  • sparrow plan <task> produce a read-only plan
  • sparrow memory graph ... manage graph nodes/edges
  • sparrow console --port 9339 open the WebView cockpit

Tool API

Core tool names and capabilities exposed to the engine.

  • browser navigate, screenshot, extract, click, type, evaluate
  • computer screenshot, click, type, press with Exec gating
  • knowledge_graph upsert/search/neighbors/export/sync_neo4j
  • exec, fs_read, edit, git

WebView API

Local HTTP endpoints used by the cockpit and slash palette.

  • GET /commands slash commands with descriptions and usage
  • POST /run submit a task to the active engine
  • POST /cli run non-interactive Sparrow commands
  • GET /memory, /tools, /models, /status

First launch in 5 minutes

Install, run setup, add providers, and start the WebView cockpit.

00:00 install · 00:06 setup · 00:12 cockpit · 00:18 first run
Read transcript

Safe edits and rewind

Permissions, checkpoints, diffs, and restoring the workspace after a bad batch.

00:00 autonomy · 00:06 checkpoint · 00:12 diff · 00:18 rewind
Read transcript

Memory graph + browser-use

Create graph entities, inspect neighbors, then use Playwright-backed browser actions.

00:00 graph · 00:06 neighbors · 00:12 Neo4j · 00:18 click/type
Read transcript
// the loop

Engine, not magic. Auditable, not mystical.

A sparrow doesn't guess. It routes, plans, executes, observes, and emits. You can read the whole loop.

.sparrow/runs/2026-06-04-001.toml
# every run is a file you can grep, diff, and replay
[run]
id = "spar_01HX9P3K..."
task = "ship the launch page"
started = "2026-06-04T17:44:51Z"
budget_usd = 0.50
checkpoint = "abc123"

[routing]
classifier = "build/web"
chain = ["qwen2.5-coder:7b", "claude-sonnet-4.5"]
resolved_on = "qwen2.5-coder:7b"
cost_usd = 0.00
latency_ms = 312

[[steps]]
i = 1
tool = "fs.write"
path = "site/index.html"
bytes = 18432
status = "ok"

[[steps]]
i = 3
tool = "llm.fallback"
reason = "headline copy needs a stronger model"
resolved_on = "claude-sonnet-4.5"
cost_usd = 0.02

[summary]
total_usd = 0.02
total_ms = 4102
local_share = 0.94  # 94% of tokens stayed on your machine

→ .sparrow/ is just files. Grep them. Commit them. Back them up.

// the road

Where we've been. Where we're going.

Sparrow v0.3.6 is shipping today. Here's the path that got us here — and the next 90 days.

v0.1 — jan 2026

The shell loop

Rust binary. Ollama routing. sparrow run. The barest proof that local-first was possible.

shipped
v0.2 — mar 2026

Checkpoints & rewind

Git-backed snapshots. Replayable runs. The first time "sparrow broke my repo" was followed by "sparrow rewind abc123" and laughter.

shipped
v0.3 — may 2026

WebView cockpit & gateway

Live dashboard on :9339. Telegram, Discord, Slack, WebSocket. Browser & computer-use tools. The cockpit became a real surface.

shipped
v0.4 — jul 2026

Swarm mode

Multiple sparrows, one task graph. Specialists that hand off context. .agent.md packs you can install from a URL.

next
v0.5 — q3 2026

Long-running agents

Background processes that survive reboots. Scheduled plans. Cross-project memory that actually makes the second project easier than the first.

soon
"Sparrow is what happens when someone who actually maintains a repo at 2am builds an agent. Every feature is a scar from a real failure. That's why it works."
// the sparrow team, slightly tired
// one binary. thirty seconds.

Install it. Own it.

No account. No API key required. Bring your own models, or use the cloud as a fallback when you choose to. The whole thing is MIT.

$ — one-click install — 92×24 copy
# Windows PowerShell
irm https://raw.githubusercontent.com/ucav/Sparrow/master/install.ps1 | iex
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/ucav/Sparrow/master/install.sh | sh
# download pre-built binary
# or from crates.io
cargo install --git https://github.com/ucav/Sparrow sparrow-cli
# or from source
git clone https://github.com/ucav/Sparrow && cd Sparrow && cargo build --release
# then
sparrow launch # zero-question setup, then Focus cockpit
sparrow run "hello, world"

Pre-built binaries for Linux / macOS / Windows · Source fallback requires Rust 1.96+ · Optional: Ollama, Docker, Playwright

Fly your own agent.

One star helps a lot. A "ship-it" issue helps more. And if Sparrow saves your repo at 2am — tell someone.

★ Star Sparrow on GitHub Read the docs →