Marspot
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.
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.
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.
| stream | Marspot | Ghostty 1.3.1 | iTerm2 3.7.3 | Terminal 2.15 |
|---|---|---|---|---|
| ASCII | 128.0 | 97.0 | 84.2 | 43.2 |
| mixed | 128.0 | 88.9 | 24.1 | 36.0 |
| CJK | 133.3 | 118.5 | 10.0 | 35.6 |
| emoji | 128.0 | 110.3 | 0.5 | 38.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.
Everything else goes to the program in the pane, unchanged.
| ⌘N | New window |
| ⌘C | Copy the selection |
| ⌘V | Paste |
| ⌘F | Search this pane's scrollback |
| ⌘B | Show or hide the sidebar |
| ⇧⌘C | Agent usage for this account |
| ⌘W | Close the panel that is open |
| Esc | Close the panel that is open; three times in five seconds ends a stuck agent session |
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.