simul n. A chess exhibition where one player walks a ring of boards and moves wherever someone's waiting.

One player, many boards.

Simul is a small Mac app for running Claude Code, Codex, OpenCode and plain shells side by side, each in a real Ghostty terminal. When an agent finishes or asks you something, its card lights up, and you go make your move.

Source on GitHub Build it yourself

› Make the checkout tests pass again

● Reading tests/checkout.spec.ts

● The price fixture still uses the old currency format

A mock of the app, not a recording. Click a session or press 1–4.

What's in it

Real terminals
Each session is a Ghostty terminal running the agent's own CLI, with your login, config and MCP servers. Fonts and colors come from your Ghostty config.
Who needs you
A light circles a working agent's tile. A badge, and a macOS notification, when it finishes or asks something. The menu bar counts who's waiting.
Resume
Reopening a session continues that exact conversation (claude --resume <id>, codex resume <id>), not whichever was last in the folder.
Folders, sleep
Group related sessions with ⇧⌘N or by dragging. Put one to sleep to stop it; selecting it wakes it where it left off.
Limits
Claude's and Codex's usage windows at the bottom of the sidebar, asked of the CLIs themselves.
Keys
⌘1…⌘9 switch, ⌃⇥ back to the last one, ⌘N new, ⌘B sidebar, ⌘W close.
Nothing else
No account, no analytics, no API keys. Your session list is one JSON file in ~/Library/Application Support/Simul.

Build it

There's no signed download yet. Building takes a few minutes with Apple's Command Line Tools, no Xcode. macOS 14+, Apple Silicon.

$ git clone --recursive https://github.com/bernatixer/simul.sh && cd simul.sh
# Zig 0.16.0, the exact version Ghostty needs
$ curl -fsSL https://ziglang.org/download/0.16.0/zig-aarch64-macos-0.16.0.tar.xz | tar xJ -C Vendor
$ mv Vendor/zig-aarch64-macos-0.16.0 Vendor/zig
$ scripts/build-ghostty.sh && scripts/build-app.sh && scripts/install.sh