RACE — Run Anything in Canvas Environment

· RACE

7 min read Original article ↗

macOS · terminal multiplexer

Run Anything 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 5 terminals per canvas and 3 canvases, no time limit.

The canvas itself — panning across terminals, zooming out to the whole session and back down to a single shell.

>_ See it move

One minute of a live session — mirrors, matrix rain, an aquarium and three agents at work. Full walkthrough coming to YouTube.
Pinning — keep a terminal in view while the canvas moves around it.

>_ Why?

Your workspace should hold its own context instead of making you hold it in your head.

  • Twenty terminals. Now what? Tabs hide active work. Panes shrink until nothing has enough room. Mix them together and you're left tracking agents, editors, tests and logs in your head.

    RACE gives every context a visible place on the canvas.

  • You're human, right? Did you know you have awesome spatial memory?

    RACE gives every context a stable place on an infinite canvas. Keep related terminals together and make them distinct with size, font, theme and group color, so you remember where your work is instead of searching for it.

  • What was I doing? RACE gives you utilities to keep track of the whole workspace. Zoom in to focus, zoom out to see agents progressing and tests running, and read terminal activity at a glance. Pin something important to keep it visible while you work elsewhere.
  • We got you covered. I'm using RACE just like you, and there's nothing worse than losing work. RACE keeps each session in a separate PTY host to safeguard as much as possible. Quit RACE before the weekend; resume Monday morning.

>_ 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.

144

Custom rendering engine

You might not care, but if I don't get 144 FPS in my terminal, I get a face itch.

Butter-smooth terminals for you, no face itch for me.

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.

Agents drive it

The bundled race-mcp MCP server exposes 33 tools: list canvases, read what a terminal is showing, type into it, and create, move, resize, group, mirror, pin and theme anything on the canvas. Off by default; toggle it from the About screen.

;)

No AI? Also fine

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.

611 built-in themes

Set a theme per canvas or per terminal. RACE also supports Alacritty themes—put them in <RACE_CONFIG>/themes. Not enough? You can change the terminal highlight color too.

Pinning

Cmd-P fixes a terminal to a place on screen and the canvas moves underneath it. Superpin (Cmd-Shift-P) makes the pin follow the canvas instead. A pin holds the zoom it was made at.

Images on the canvas

Place a picture from a file or the clipboard and it moves, resizes and snaps like a terminal. Keep a diagram or a screenshot beside the shells working on it.
Or put an animated image of a cat, we don't judge.

⌨︎

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.

More details
  • Focus ModeCmd-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.
  • Resize reflows — widening a terminal gives back the slack its scrollback held.
  • Scrollback keys — Home, End, PageUp and PageDown scroll the terminal when no application has taken the keyboard.
  • Window tabsCmd-R names a terminal; title mode shows what the shell reports instead.
  • 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.toml in ~/.config/race/; changes apply without a restart.
  • Everything comes back — canvases, viewports, names, sizes, groups, themes, mirrors, pins, monitor state, the terminal modes an application had pushed, even fullscreen and sidebar width.

>_ Quickstart

Five gestures and you have the whole thing. Watch video tutorials on YouTube.

  1. 1Open a terminal

    An empty RACE canvas, then the same canvas with one terminal on it after Cmd-N
  2. 2Move a terminal

    Three terminals with the red one at the bottom right, then the same canvas with it dragged up beside the others
  3. 3Move the canvas

    Three terminals on the right of the canvas, then the same three on the left after a double-Cmd drag
  4. 4Zoom out to the whole session

    A close-up of three terminals, then the whole session zoomed far out to a small cluster
  5. 5Style terminal

    A terminal, its border menu, then the highlight colour picker and the theme picker with a theme applied

Cmd-? opens the shortcut overlay in the app — everything else is in there.

Some applications hold that combination globally; Option-Cmd-? opens it too.

>_ FAQ

Which platforms does RACE run on?
macOS. Mail me if you want Linux.
How many machines can I use one license on?
Up to three personal computers you own or control. More than that, or use by another person, needs its own license — see the <a href="/terms/">Terms</a>.
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 <em>new</em> 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.
Is RACE an alternative to tmux or iTerm2 split panes?
It solves the same problem — many shells at once — with a different shape. Instead of tiling the screen, RACE places each terminal at its own coordinates on a canvas you pan and zoom, so twenty terminals stay laid out instead of stacked or shrunk. Shells persist across restarts the way a tmux session does.
Can AI agents control RACE?
Yes. RACE bundles a <code>race-mcp</code> MCP server exposing 33 tools — an agent can list canvases, read what a terminal is showing, type into it, and create, move, resize, group, mirror, pin and theme anything on the canvas. It is off by default and toggled from the About screen.
How much does RACE cost?
€29.90 once, for unlimited terminals and canvases on up to three Macs plus a year of updates. The free tier runs indefinitely at 5 terminals per canvas and 3 canvases.
Claude using RACE tools to report 86 open terminals across two canvases

Download

Try RACE free — 5 terminals per canvas, 3 canvases, no time limit.

Download RACE for macOS

RACE.dmg · ~10 MB · open and drag to Applications

or install with Homebrew

brew install --cask exlee/tap/race