your code editor is mostly decoration.
A 20MB macOS code editor built around running coding agents: a terminal that takes the whole width, projects as tabs, git worktrees down the side, a record button that turns four minutes of rambling into a prompt you can hand any AI, and an editor for when you actually need to read one of your files. That’s it — on purpose. It opens in 0.38s and has never once asked about your onboarding journey.
brew install --cask zero-editor/tap/zero Open source, MIT — all 42,956 lines of it on GitHub.
Apple Silicon · macOS 26 or later · no telemetry, no account
The bright bar is zero; the long one is Cursor — method and scripts →
The whole interface: project tabs on a bare top bar, and below them every pane is a card floating on the window — sidebar, editor with its own file tabs, each terminal — parted by gaps instead of seams. The ring on a project is its session: sweeping while something’s working, a closed circle when it’s done and waiting on you. From macOS 26 the window is liquid glass by default — one translucent tone per card, your desktop showing through the gaps; a solid mode sits in preferences for anyone who’d rather not.
you always know what’s running.
Every project is a tab, and the ring on it is that project’s pulse — sweeping while something is running, a closed circle once it’s waiting on you. One look across the top and you know where everything stands.
Read from each shell’s process tree and how long the pty has been silent, once a second. Nothing to configure.
press record, ramble, press stop.
Talk at your project instead of typing at it. Your Mac writes down what you said, claude tidies it into the prompt you meant — ready to hand to any AI, or keep as the note — and recording again folds the new thoughts in. Four minutes of rambling, one document you’d actually show someone.
Transcription is the system’s own (macOS 26 and later), on this Mac; one claude -p pass makes the concise version, so Claude Code’s CLI is the one thing it needs. Audio, transcripts and document all land in .zero/memos/.
it’s barely even there.
20MB on disk. A window in 0.38s. 594MB with four projects open, and a third less CPU than Cursor to draw the same four agents talking. Your RAM goes to the work, not to the app it runs in.
Numbers below, method in BENCHMARKS.md, scripts in bench/ to run on your own machine.
Same machine, same project, both editors, three launches each, median reported. M3 Max · 36GB · macOS 26.5.1 · zero 0.25.0 · Cursor 3.17.19 (cold launch: the original 0.1.0-vs-3.15.6 run — it needs a fresh boot). Disk and JavaScript re-measured on zero 0.58.4. In every graph: zero is the bright mark; the long grey one is Cursor.
And 7 files in the bundle, against 17,021 — 2,432× fewer.
Drawn to scale, by area. The bright square is the entire frontend.
Two different finish lines, not two clocks on one race: first a window on screen, then the app actually ready. Warm, zero’s window is up in 0.53s to Cursor’s 1.08s — starting cold adds nothing to zero and seven seconds to Cursor.
MB of phys_footprint, one through four projects measured, the dashed parts extended on each editor’s own slope — Cursor opens a window per project, ~330MB and three processes each. zero opens a tab: ~60MB, no new processes, and five steady-state samples within 17MB of each other.
The whole bundle is seven files. There is nothing to update, nothing to sync, and nothing to disable.
Of one core: the editor’s own cost of drawing four terminals streaming 25 lines/s each. And zero starts from an idle floor a third of Cursor’s — 3.42% against 11.35% with four projects open.
The one graph where longer is better. zero on a ProMotion display against WKWebView’s default 60fps clamp — Safari was the control, so the machine was never the limit.
Each keeps its own terminals, sidebar and files. Switching is instant, because nothing re-renders. A project can be several folders, for code split across repositories.
Full width, splits in any direction, no chrome. Buttons appear when the pointer comes looking.
Every worktree down the sidebar with its changes, staging and commit box.
Every uncommitted line gets a bar — in the gutter, beside the scrollbar, and up the file tree.
⌘P fuzzy-opens anything git admits to. ⌘⇧F searches in Rust,
quicker than ripgrep. ⌘-click jumps to a definition.
⌘-click file.ts:42 and it opens on the line, even when the agent named it
from three folders down. A folder opens in Finder, PR #732 on GitHub,
ECL-260 in Linear. Hover says where first.
Projects, splits, tabs — and the shells in them. Restart or update zero and every terminal comes back mid-sentence, Claude sessions included. Quitting still takes them with it.
Your Linear issues down the rail, sorted by urgency — each row also saying what the checkout knows: whether the branch exists, whether it is in a worktree, whether the pull request is open or merged. Press play on a group or a row and a terminal opens with claude on a prompt about exactly those.
Talk at it and a written-up document comes back. Transcribed on the machine, tidied by the agent you already pay for. Say more later, or type a follow-up, and it merges in.
⌘⌥N opens a note that renders its markdown as you write — headings,
checkboxes that tick, tables as tables — and takes the terminal out of anything pasted
in. Its Run button hands the whole note to claude.
A new version downloads in the background. The restart waits for your click, and your terminals are still there after it.
Memos, notes, Linear and search are switches in settings. Off means off — the icon goes, and so does anything that was listening.
An extension marketplace. A sign-in. A welcome tour. A chat panel you can’t close. Telemetry, analytics, or an account of any kind. zero talks to exactly two things, and only one by default: GitHub, to ask whether there is an update, and Linear, if you connect it.
Apple Silicon only. macOS 26 or later.
zero is purpose-built for exactly one platform. No Intel branch, no Electron, no compatibility ballast for a MacBook from 2017 — and it leans on macOS for everything macOS is already good at: the WebView, the transcriber, the fonts. Building for one machine instead of every machine is why the whole app is 20MB and why it opens in 0.38s.
brew install --cask zero-editor/tap/zero
Or download the dmg
and drag zero to Applications. Apple Silicon, macOS 26 or later, git — nothing else.
The whole thing is open source on GitHub — 42,956 lines of MIT. Read it in an afternoon, or build it yourself in about a minute.