Marspot

A terminal for people who keep twenty of them open.

Written in Rust for macOS. Each pane is its own process, nothing animates when nothing changes, and the thing running in a pane is something the terminal knows about rather than text scrolling past.

Build it Guide Releases macOS 14 or newer · Apple silicon · no signed build published yet

Why

It stays cheap when you open twenty panes

Each pane owns its own PTY in its own process. The window process draws and nothing redraws unless something changed. A pane that crashes does not take the window with it, and idle panes cost close to nothing.

It treats a coding agent as a program, not as text

Marspot knows which agent is running where, what it is doing right now, and what it is costing. It can act on that: move a session off an account that has run out of quota and pick the conversation back up, hand work from one agent to another, park a pane that has gone quiet and bring it back on a keystroke.

Speed

Throughput reading a prepared byte stream, MB/s, higher is better. Measured 2026-09-29 on an idle Mac mini, macOS 26.5, every terminal driven through its own interface in one sequential cycle so each number is that terminal against an otherwise quiet machine.
streamMarspotGhostty 1.3.1iTerm2 3.7.3Terminal 2.15
ASCII128.097.084.243.2
mixed128.088.924.136.0
CJK133.3118.510.035.6
emoji128.0110.30.538.6

What this measures, and what it does not.

It measures how fast a terminal reads and parses a pseudo-terminal. It says nothing about frame rate or about the delay between a keystroke and a character appearing. A terminal that combines several updates into one frame does less drawing work here, and that is a reasonable design choice rather than cheating.

One run, one machine, one day. Repeatability has not been established, and three of the four numbers landing on exactly 128.0 says the timer's resolution is the limiting factor at these speeds.

The harness is in the repository. A benchmark you cannot re-run is a marketing claim, so the intention is that you re-run it.

Keys

Everything else goes to the program in the pane, unchanged.

⌘NNew window
⌘CCopy the selection
⌘VPaste
⌘FSearch this pane's scrollback
⌘BShow or hide the sidebar
⇧⌘CAgent usage for this account
⌘WClose the panel that is open
EscClose the panel that is open; three times in five seconds ends a stuck agent session

Not yet

Pre-1.0, and used daily by the people writing it. These are the things you would hit in the first hour, listed because finding them yourself is worse.