A terminal window manager that knows what your agents are doing
Tile panes across nine workspaces in the terminal you already use. A daemon keeps sessions running when you detach and reaches your other machines. The coding agents in your panes report what they are doing, and one Inbox holds everything they are waiting on.
Loved by engineers at
- Microsoft
- IBM
- ByteDance
- Intel
- Red Hat
- Alibaba
- Meituan
- Nvidia
- Amazon
- Huawei
- Tencent
- SAP
- Apple
- Meta
- Oracle
- Shopify
- Salesforce
- Adobe
- Spotify
- Cloudflare
- Uber
- Datadog
- Discord
- Dropbox
- Tesla
- Baidu
- Grafana
- Tailscale
- DigitalOcean
- Accenture
- Zendesk
- 01
Your terminal
tuios runs inside the terminal you already use. It writes one frame to it, like any program.
- 02
Chrome
The dock and the sidebar are layers too. tuios draws them last, over everything else.
- 03
A floating window
Press Ctrl+B g and a scratch terminal floats over the tiles. Press it again and it hides.
- 04
Panes
Each pane is its own layer, with its border and title. A BSP tree places them side by side.
- 05
Cells
Each pane has its own terminal emulator and keeps a grid of cells. The marked cell holds
lin green (ANSI 2). - 06
The daemon
The daemon owns every PTY and the programs in them. Close the terminal and they keep running. Attach again later.
A window manager inside your terminal
Panes, floating windows and chrome, stacked by depth and drawn as one frame. The daemon keeps it all running when you close the terminal.
tuios with four tiled panes and a scratch terminal floating over them: nvim on a Go file, a git diff and two agents, with the dock on top and the sidebar on the right. The picture comes apart into six layers: the host terminal, the dock and sidebar, the scratch terminal, the four panes, the cells of one pane, and the daemon that owns the programs.
What it does
A multiplexer, a desktop and a desk for your agents
Agents you can see
tuios detects Claude Code, Codex and other harnesses in a pane and shows whether each is working, waiting or done, in the sidebar and on the pane's title.
One Inbox
Approvals, questions and failures from every session in one list. Answer, snooze or dismiss them, and undo a slip.
Review and fan
Read an agent's diff and send it notes. Fan one prompt out to several agents and keep the best, or hand out work as cards on a task board.
Tiling or floating
BSP splits, master-stack or scrolling columns, or tiling off and windows you drag with the mouse.
Sessions that stay
A daemon owns the panes. Detach, close the terminal, and attach again later from here or over SSH.
Other machines
tuios hosts setup links a machine in one command. Then attach to its sessions, run one pane on it, or copy files with tuios cp.
Settings you can search
Every option on one searchable page, with a dot on what you changed. Pick a theme, a background for panes and chrome, borders and glyphs.
Scriptable
Drive a session with send-keys, capture-pane, wait-for and a JSON control protocol, or replay a tape.
Also: kitty graphics passthrough, a vim-style copy mode, a command palette, 340+ themes, and a browser terminal.
Get started
Install it, run it, press n
Install
$ brew install tuiosStart a session
Run tuios. It starts the daemon if it is not running and attaches you to a session.
Learn eight keys
The table has the ones you need on day one. The keybindings page lists the rest, or run tuios keybinds list. Or learn them hands on, in your browser, before you install anything.
default keys
- n
- New window
- iorEnter
- Enter terminal mode
- Ctrl+BthenEsc
- Back to window mode
- t
- Toggle tiling
- Ctrl+P
- Command palette
- Ctrl+Bthend
- Detach, keep running
- ?
- Help
- a key that is still loading
- You can never learn enough
From the blog
All postsA picture on a terminal that cannot show pictures
tuios already drew a sixel picture as block characters on a terminal without graphics. A kitty graphics picture got nothing, so chafa -f kitty printed no picture in VS Code. Now tuios assembles the kitty upload, decodes it and draws it through the same block glyph path, and the picture scrolls and clears with the text.
One ssh login per link, not one a minute
A 1Password user got a prompt to approve their ssh key every few minutes, for a host that tuios said had no daemon. The link logged in, saw no daemon, hung up and tried again, forever. Now it keeps the one ssh connection and asks again over it.
Colour emoji in a screenshot, from three font tables
tuios screenshot drew every emoji as a blank. A colour emoji font keeps its emoji as pictures, not outlines, in tables the Go font package does not read, and a flag or a family is one picture that only the font's own ligature table can find. shot reads sbix, CBDT and morx or GSUB now.