macOS · terminal multiplexer
RACE
Run Agents in Canvas Environment
A terminal multiplexer built as an infinite, zoomable canvas. Terminals are windows you place, resize, group and pan around — not tiles in a grid.
Try before you buy — up to 3 terminals per canvas and 3 canvases, no time limit.
>_ See it move
A canvas full of terminals is something you have to see panning.
One minute of a live session — mirrors, matrix rain, an aquarium and three agents at work. Full walkthrough coming to YouTube.
>_ Features
Infinite canvas
Terminals live at real coordinates on a surface you pan and zoom — from inside one terminal out to the whole session. Multiple canvases in a sidebar, each with its own working directory and viewport that survive a restart.
Terminals as windows
Cmd-N opens a terminal at the pointer. Drag to move, borders to resize, with alignment guides and snapping. Cmd-H/J/K/L focuses the nearest terminal in that direction; add Shift to spawn one there instead.
Shells outlive RACE
Every shell runs in its own detached PTY host. Restart RACE and each terminal gets its screen, scrollback and a replay of exactly the output it missed — no gap, no duplication. Crash recovery adopts orphaned shells.
AI? We got you covered
Watching multiple agents work across a canvas is just great — and
the bundled race-mcp MCP server lets them list canvases,
read what terminals are showing, rearrange them and type into them.
Off by default.
No AI? Intelligent choice!
RACE is a backronym — at its core it's a terminal runner, and a canvas of persistent terminals earns its keep whether the things typing into them are agents or just you.
Mirrors
A second live window on the same shell — it shows everything the shell prints and sends everything you type. Send one to another canvas and keep a build or log in view from wherever you work.
Groups
A dashed, tinted frame around related terminals. Cmd-drag the frame and everything inside moves along; resize it to change membership. Cmd-F zooms straight to it.
Inactivity monitor
Watch a terminal for you: after it goes quiet, its border blinks in its highlight color until output resumes. A finished build stands out across a wide canvas.
16 themes, 3 levels
Night Owl-inspired default, Catppuccin, Tokyo Night, Solarized, Dracula, Nord, Gruvbox, Matrix and more. A theme colors the whole app, and can be set per application, per canvas or per terminal — plus a per-terminal highlight color.
Full keyboard fidelity
Kitty keyboard protocol — Shift-Enter, Ctrl-Enter, Alt-Backspace and all F-keys reach the application. Fully keyboard-driven menus and a Cmd-? overlay with every shortcut.
And the details that add up…
- Custom renderer — damage-driven redraws, glyphs cached on demand, stable grids while zooming. Fonts go below 4 points for dense zoomed-out layouts.
- Focus Mode — Cmd-F zooms the selection to fill the view; a second press restores where you were.
- Double-Cmd pan — tap Cmd, then hold it, and the pointer drags the canvas without clicking.
- Wheel goes where you look — scrolls the terminal under the pointer, focused or not; over empty canvas it pans.
- Smart selection — copying a soft-wrapped line yields the logical line, no hard breaks. Cmd-click opens links, including wrapped URLs and OSC 8 hyperlinks.
- Honest resize — widening a terminal gives back the slack its scrollback held instead of leaving mangled wrapping.
- JetBrains Mono by default — any installed family via config, with system fallback, fitted box drawing and color emoji.
- Live configuration — override any subset of
config.tomlin~/.config/race/; changes apply without a restart. - Everything comes back — canvases, viewports, names, sizes, groups, themes, mirrors, monitor state, even fullscreen and sidebar width.
>_ FAQ
- Which platforms does RACE run on?
- macOS. Interested in Linux? Drop me a line!
- What happens when my year of updates ends?
- Your license keeps working indefinitely for every release published within its window. You only buy again if you want newer builds.
- What happens to a big layout if my license lapses?
- It comes back whole. Restoring never destroys anything — only creating new terminals and canvases beyond the free caps is refused.
- Do my shells die when RACE quits or crashes?
- No. Each shell runs in its own detached PTY-host process. On restart you get a gapless reattach; after a crash, Restore Terminals adopts the orphaned shells.
Ready to spread out?
Try RACE free — 3 terminals per canvas, 3 canvases, no time limit.
Download RACE for macOS