your code editor is mostly decoration.

zero is what’s left.

A 14MB macOS code editor built around running coding agents: a terminal that takes the whole width, projects as tabs, git worktrees down the side, 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

or download the dmg

Open source, MIT — all 21,596 lines of it on GitHub.

Apple Silicon · macOS 26 · no network code in the app

61×
smaller on disk
14MB
860MB
21×
sooner to a window
0.38s
8.16s
7.4×
lighter with four projects open
243MB
1,803MB

The bright bar is zero; the long one is Cursor — method and scripts →

The whole interface: projects across the top, their files one row down, a tree at the side, and a terminal that takes the full width. The ring on a project is its session — sweeping while something’s working, a closed circle when it’s done and waiting on you. No chrome; the buttons only appear when your pointer goes looking for them.

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 note you meant, and recording again folds the new thoughts in. Four minutes of rambling, one document you’d actually show someone.

Transcription is macOS 26’s own, on this Mac; one claude -p pass makes the concise version. Audio, transcripts and document all land in .zero/memos/.

it’s barely even there.

14MB on disk. A window in 0.38s. A quarter of a gigabyte with four projects open. 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.

benchmarks

Same machine, same project, both editors, three launches each, median reported. M3 Max · 36GB · macOS 26.5.1 · Cursor 3.15.6. In every graph: zero is the bright mark; the long grey one is Cursor.

on disk

61×
14MB
860MB

And 5 files in the bundle, against 17,035 — 3,407× fewer.

shipped JavaScript

183×
1.4MB
256MB, in 12,021 files

Drawn to scale, by area. The bright square is the entire frontend.

launch

21×
first window, cold start 0.38s 8.16s
ready to work, warm start 2.39s 6.59s
0s3s6s9s

Two different finish lines: a window on screen first, ready-to-work second. A cold zero puts its window up before a warm Cursor does — 0.38s against 1.14s.

memory, as projects open

up to 7.4×
0 1GB 2GB 1,803 ≈2.5GB at six zero: 143–420, noise 1 2 3 4 5 6

MB of phys_footprint, one through four projects measured, the dashed part extended on Cursor’s own slope — a window per project, ~360MB and three processes each. zero opens a tab instead; its per-project cost is below its own noise floor, which is why its line won’t sit still.

ships with

0
bundled extensions Cursor: 116
∞ fewer
0
bundled runtime — system WebKit Cursor: 259MB of Electron
∞ less

The whole bundle is five files. There is nothing to update, nothing to sync, and nothing to disable.

idle CPU

2.4×
1.10%
2.66%

Of one core, while doing nothing.

terminal frame rate

2.1×
125fps
59fps, stock WebView

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.

what’s in it

projects are tabs

Each keeps its own terminals, sidebar and files. Switching is instant, because nothing re-renders.

the terminal is the point

Full width, splits in any direction, no chrome. Buttons appear when the pointer comes looking.

worktrees, not branches

Every worktree down the sidebar with its changes, staging and commit box.

bars for what you changed

Every uncommitted line gets a bar — in the gutter, beside the scrollbar, and up the file tree.

getting around

⌘P fuzzy-opens anything git admits to. ⌘⇧F searches in Rust, quicker than ripgrep. ⌘-click jumps to a definition, and file.ts:42 in the terminal opens on the line.

it opens how you left it

Projects, splits, tabs — restored. claude --continue does the rest.

what’s not in it

An extension marketplace. A sign-in. A welcome tour. A chat panel you can’t close. Network code of any kind.

Apple Silicon only. macOS 26 only.

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 14MB and why it opens in 0.38s.

install

brew install --cask zero-editor/tap/zero

Or download the dmg and drag zero to Applications. Apple Silicon, macOS 26, git — nothing else.

The whole thing is open source on GitHub — 21,596 lines of MIT. Read it in an afternoon, or build it yourself in about a minute.