Terminal UI OS (Terminal Multiplexer)
TUIOS is a modern terminal multiplexer and window manager built with Go. It provides a vim-like modal interface with multiple terminal panes, workspaces, BSP tiling, kitty graphics protocol support, and a command palette - all running inside your existing terminal.
Built on the Charm stack (Bubble Tea v2, Lipgloss v2), TUIOS features event-driven rendering for near-zero idle CPU usage, flicker-free kitty image passthrough, and comprehensive keyboard/mouse interaction.
Full documentation is available at tuios-docs (hosted) or in the docs/ folder.
Homebrew (macOS/Linux):
brew tap Gaurav-Gosain/tap
brew install tuiosArch Linux (AUR):
yay -S tuios-binNix:
nix run github:Gaurav-Gosain/tuios#tuios# Quick install script (Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/Gaurav-Gosain/tuios/main/install.sh | bash
# Go install
go install github.com/Gaurav-Gosain/tuios/cmd/tuios@latest
# Docker
docker run -it --rm ghcr.io/gaurav-gosain/tuios:latestGitHub Releases - Pre-built binaries for all platforms.
Updating. If you installed with the quick install script or a release
binary, tuios update fetches the newest release and puts it in place
(tuios update --check just reports). Everything else has a package manager
that owns the binary, so use that instead; tuios update detects which you have
and prints the right command rather than overwriting it.
Requirements: A terminal with true color support. Kitty graphics and sixel support recommended (Ghostty, Kitty, WezTerm).
$PATH plus your installed desktop apps (Alt+Space), ranked by what you actually run. Enter starts it; Tab opens a shell with the command typed but not entered, so you can add arguments. App icons are drawn where the terminal supports kitty graphics.--shared-borders)/, yank with ympv --vo=kitty works (both shm and base64), and youterm works.t=s passthrough for mpv --vo-kitty-use-shma=f frame edits are forwarded to the host, so a program that patches its own image costs a rectangle instead of a whole bitmap. TUIOS also patches guests that only retransmit. Panes are told whether the host carries frame edits through TUIOS_KITTY_ANIMATION, because the host's reply is not relayed back into the pane and a guest cannot find out for itself.tuios layout list, tuios layout delete, tuios layout exporttuios tape exec runs a tape against a running daemon session$PATH, frecency-ranked, with desktop-entry names and iconstuios keybinds doctor and tuios keybinds explain <key> from the shellCtrl+Shift+click to select (docs)tuios-web binary)tuios # Launch TUIOS
tuios --show-keys # Launch with key overlay for learning
tuios --standalone # Launch without the daemon, for this run onlytuios attaches to a daemon-backed session, so the session outlives the
terminal window it started in. New panes are tiled. See
SESSIONS.md to turn either off.
| Key | Action |
|---|---|
| Ctrl+P | Command palette - search and run any action |
| Alt+Space | Launcher - search and start a program (Enter runs it, Tab types it out) |
| n | New pane (Window Management mode) |
| i / Enter | Enter Terminal mode |
| Prefix+Esc or Alt+Esc | Back to Window Management mode (a bare Esc goes to the shell) |
| Prefix+d | Detach in a daemon session, otherwise back to Window Management mode |
| z (WM) or Prefix+z | Toggle pane zoom (fullscreen) |
| Prefix+Space | Toggle BSP tiling |
| Prefix+[ | Enter copy mode (vim scrollback) |
| Prefix+S | Session switcher |
| Prefix+L then l/s | Load/Save layout template |
| Prefix+? | Help overlay |
| Prefix+q | Quit |
The prefix key is Ctrl+B by default (configurable).
tuios new mysession # Create persistent session
tuios attach mysession # Reattach
tuios ls # List sessions
tuios kill-session mysession # Kill session# In-app: Ctrl+B, L, l to load / Ctrl+B, L, s to save
# Or via command palette: Ctrl+P → "Save Layout" / "Load Layout"
# CLI:
tuios layout list # List saved layouts
tuios layout delete mysetup # Delete a layout
tuios layout export mysetup # Export as tape scripttuios config edit # Edit config in $EDITOR
tuios keybinds list # View all keybindingsSee Configuration Guide for all options including show_clock, show_cpu, show_ram, shared_borders, window_button_style, window_button_position, custom themes, and keybinding customization.
TUIOS follows the Model-View-Update pattern on Bubble Tea v2. For details, see Architecture Guide.
Key design decisions:
Core Components:
No open issues yet, or sync has not completed.