NATIVE RUST · GPU-RENDERED · macOS

The code editor that works with your agents.

Claude Code, Codex, OpenCode or any OpenAI-compatible model work in their own copy of your project. Every turn is checkpointed, every line remembers the prompt that wrote it, and you always see what it cost.

Zumba with a Rust file open and an agent task beside it: a three-step plan, four tool calls, a summary and the cost line $0.07 · context 18k/200k.
Any agentClaude Code · Codex · OpenCode · ACP · OpenAI-compatible
Every turncheckpointed, rewindable, forkable
Every linetraceable to the prompt that wrote it
Every pluginsandboxed WebAssembly with explicit permissions

01 / AGENTS

Talk to it like a chat. It works like a colleague.

Ask for anything, from a question to a refactor. The agent works in its own git worktree, so it never trips over your unsaved edits. When its turn ends, the changes land in your files through a three-way merge that keeps whatever you typed meanwhile.

  • Undo last turn takes the agent's changes back out of your files.
  • Rewind or fork from any earlier turn.
  • Review by file or hunk when you'd rather apply by hand.
fetch_user times out under load. Add retries with backoff.
☑ Find where users are fetched
☑ Retry timeouts and 5xx with backoff
☑ Check it builds
✎ Edit src/client.rs ✓
$ cargo check ✓
Applied: 1 written · checkpoint saved

02 / RACE & TEAM

One prompt, several agents. Keep the best.

Race gives the same task to Claude Code and Codex side by side, then lets you take the winner, or mix them file by file. Team has a lead agent split a bigger goal into parts that several agents build at once, each knowing what its teammates own.

Claude Codechecked_add
Codexwrapping_add
Qwen (Ollama)saturating_add

Compare → take lib.rs from Claude Code, extra.rs from Codex

03 / PROVENANCE

“Why is this here?” has an answer.

Lines you apply from an agent remember which agent wrote them and for which prompt. Put the cursor on one and the end of the line tells you; click it to open the conversation at that moment. Lines no agent touched show git blame instead.

34 let mut delay = Duration::from_millis(200);
35 for attempt in 1..=3 { ✎ Claude · “Add retries with backoff” · 2 min ago
36 match self.http.get(&url).send().await {
37 Ok(res) if res.status().is_server_error() …

04 / TOKENS

Spend fewer tokens, and always see the bill.

  • Lean rules keep agents terse: search before reading, read only the lines they need, keep command output short.
  • Editor tools over MCP: agents ask Zumba for a file's outline, where a symbol is defined, its references and your diagnostics instead of reading whole files.
  • Handoff: when an agent hits a rate or usage limit, another one picks up in the same worktree with a summary, the plan and a log of why each decision was made.
  • Cost on every task: reported by the agent, or estimated from your own prices per model.
$0.07
context 18k / 200k
.zumba/decisions.md
- Retry only fetch_user — list_users is cheap
- 3 attempts, 200 ms doubling — matches the API's rate limit

05 / ANY MODEL

Bring your own agent, or your own model.

Claude Code, Codex and OpenCode work out of the box with your own sign-in and settings. Add any agent that speaks ACP, or point Zumba at an OpenAI-compatible endpoint (Ollama, LM Studio, OpenRouter, Groq, vLLM) with a few lines of config. Keys stay in your environment.

# ~/.config/zumba/settings.toml
[[agents]]
name     = "Qwen (Ollama)"
base_url = "http://localhost:11434/v1"
model    = "qwen3-coder"

[[agents]]
name    = "Gemini"
command = "gemini"
args    = ["--experimental-acp"]

06 / AN EDITOR FIRST

Fast without agents, quiet when you want it.

Native and GPU-rendered

Written in Rust on GPUI. Opens big files and keeps typing smooth.

Language servers

Diagnostics, go to definition, references, rename and format on save.

Minimap

The shape of the whole file beside the editor; click or drag to jump.

Terminal with blocks

Each command gets a gutter bar colored by how it ended.

Git, with history

Blame, side-by-side diffs, file history and a time-lapse you can export as a GIF.

Live preview

Markdown, HTML, SVG and Mermaid render as you type; links open in the editor.

Vim mode

Normal, insert and visual, when you want them.

Quiet mode

One shortcut hides every agent panel, hint and live edit.

07 / PLUGINS

Plugins that can't surprise you.

Plugins are WebAssembly components with limits on time, memory and work, and only the permissions they ask for: you see the list before installing. Install from a folder or a git URL, or write your own in Rust.

Ships with Smart Paste, HTTP Client, Text Tools, TODO Finder, JWT Decoder, Generators, Bookmarks and Regex Tester.

Bookmarks 0.1.0
✓ commands
✓ panels
✓ fs:read
✓ fs:write
✗ http · clipboard · editor:write

Zumba is in early access.

It runs on macOS. Want to try it?

Request early access