A macOS terminal multiplexer built with SwiftUI and SwiftTerm.
Organize your work into separate environments, each with its own set of up to 8 terminal sessions displayed in a grid layout. Switch between environments from the sidebar to keep different projects or workflows isolated.
Create reusable command buttons that appear on every terminal header. Define a title, pick a color, and set the prompt text — then tap the button to instantly send that command to the terminal. Buttons are saved across sessions and shared across all terminals. Expand or collapse the buttons bar independently on each terminal.
custom.prompts.mov
Stay on top of your AI agents and long-running tasks. CodeStation notifies you when:
- A command finishes running — no need to keep watching the terminal
- A terminal is waiting for input — know immediately when your AI agent needs assistance
The sidebar badge for each environment turns red when a terminal transitions from cooking to ready or waiting, so you can spot activity at a glance even while working in a different environment. The badge clears automatically when you switch to that environment.
Configure notification sounds and toggle individual notification types from Settings.
In grid layout (5+ terminals), drag terminals to rearrange them. Drop a terminal onto an empty slot to move it there, or onto another terminal to swap their positions.
drag_terminals.mov
Drag the dividers between terminals to resize them. Double-click any divider to snap all panels back to equal sizes:
- Vertical dividers — double-click to equalize column widths
- Horizontal divider (grid layout) — double-click to reset the 50/50 row split
| Shortcut | Action |
|---|---|
| ⌘ N | New terminal (new environment if current is full) |
| ⌘ W | Close focused terminal |
| ⌘ 1–8 | Focus terminal by number |
| ⌘ ← / → | Focus previous / next terminal |
| ⌘ ↑ / ↓ | Switch to previous / next environment |
| ⌘ + / − / 0 | Zoom in / out / reset |
- Custom terminal emulators — Choose your preferred terminal (e.g. iTerm2, Alacritty, Kitty) instead of the built-in one
- Dragging files to the terminals

