# Learn tuios

URL: https://tuios.gaurav.zip/learn

> A hands-on tour that runs the real tuios in the browser, with a pretend shell. Each track is a list of steps: press the keys, and the page checks what tuios did.

## The basics

Windows, typing, the leader key and help. From zero. For: New here. About 4 minutes.

- **Open a window**: `n`. You start in window mode. Keys move windows.
- **Start typing in it**: `i`. i flips to typing mode. Watch the badge.
- **Say hi to the shell**: `neofetch enter`. Your keys go to the program now.
- **Split with the leader key**: `ctrl+b |`. ctrl+b, let go, then a key. It works in any mode.
- **Back to window mode**: `ctrl+b esc`. ctrl+b, then esc. The badge flips back.
- **Hop between windows**: `tab`. The bright border follows you.
- **Close one**: `x`. No prompt, no fuss.
- **Every key, one page**: `? esc`. Forgot a key? It is in here.
- **Or just search for it**: `ctrl+p zoom enter`. The command palette runs anything by name.

## Coming from tmux

Your fingers already know most of it. Here is what changes. For: tmux users. About 4 minutes.

- **New window**: `ctrl+b c`. Same as tmux. A tuios window is a pane you can move.
- **Split right**: `ctrl+b |`. tmux used %. Here it is |, which looks like the split.
- **Split down**: `ctrl+b -`. tmux used ". Here it is -.
- **Move between panes**: `ctrl+b ←`. Same arrows as tmux.
- **Zoom in, then out**: `ctrl+b z ctrl+b z`. Same as tmux.
- **Copy mode, vim keys built in**: `ctrl+b [ / tuios enter q`. tmux used [ too, with emacs keys unless you set mode-keys vi.
- **Meet window mode**: `ctrl+b esc`. New: a mode with no prefix at all.
- **Jump to workspace 2**: `ctrl+b w 2`. tmux's ctrl+b w listed windows. Here w picks one of nine desktops.
- **Detach, same as ever**: `ctrl+b d`. ctrl+b d detaches, like tmux. A daemon keeps every pane running. tuios ls lists sessions, tuios attach brings one back, and ctrl+b S switches between them.

## Coming from zellij

Modes, panes, tabs and floats. Same ideas, fewer menus. For: zellij users. About 4 minutes.

- **Typing is locked mode**: `top enter`. Every key goes to the program, except ctrl+b. No ctrl+g needed.
- **New pane**: `ctrl+b c`. zellij used alt+n. Here alt+n hops to the next pane.
- **Split right**: `ctrl+b |`. zellij used ctrl+p, then r.
- **Move with alt and arrows**: `alt+←`. Same as zellij.
- **Fullscreen, then back**: `ctrl+b z ctrl+b z`. zellij used ctrl+p, then f.
- **Float a pane**: `ctrl+p float enter`. zellij used alt+f. Drag its title bar with the mouse to move it.
- **Scroll and search**: `ctrl+b [ / tuios enter q`. zellij used ctrl+s, then s. Here it is copy mode.
- **Tabs are workspaces**: `ctrl+b w 2`. zellij used ctrl+t, then 2. tuios has nine, each a whole desktop.
- **Sessions and detach**: `ctrl+b d`. zellij used ctrl+o, then d. Here ctrl+b d detaches and a daemon keeps it all running. ctrl+b S is the session manager.

## Layouts

Tiles, a master and a stack, a scrolling strip, and floats. For: Tidy minds. About 5 minutes.

- **Choose where it lands**: `alt+j n`. alt and h, j, k or l picks the side. Then n.
- **Rotate the split**: `R`. Side by side becomes stacked, and back.
- **Swap two windows**: `H`. Capital H, J, K, L push the window that way.
- **Master and stack**: `ctrl+p master enter`. One big window on the left, the rest stacked on the right.
- **Grow the master**: `> >`. > grows it, < shrinks it.
- **The scrolling strip**: `ctrl+p scrolling enter`. Columns on an endless strip. New ones slide in, nothing shrinks.
- **Widen a column**: `> >`. The strip scrolls to keep it in view.
- **Zoom in, then out**: `z z`
- **Let them float, then snap**: `t h`. t turns tiling off. h and l snap to a half. Floating windows can overlap, and the snapped one sits on top.

## Workspaces

Nine desktops in one terminal, and a side rail that shows it all. For: Many projects. About 4 minutes.

- **Visit workspace 2**: `ctrl+b w 2`. Your two windows wait on workspace 1.
- **Make it yours**: `n`. Each workspace has its own windows and layout.
- **Jump straight back**: `alt+1`. alt and a number skips the prefix.
- **Send a window away**: `ctrl+b w #`. Shift and a number moves the window, and you follow it.
- **Open the rail**: `ctrl+b b`. Sessions, windows, agents and files, at a glance.
- **Walk the rail**: `s j j enter`. s steps in. j and k move, enter jumps there.
- **See every workspace**: `ctrl+b W enter`. A picker with a preview of each one.
- **Every session, every machine**: `ctrl+b S`. On your machine the rail lists every session, and sessions on your other machines too. ctrl+b S switches between them.

## Power moves

Palette, launcher, copy mode and the scrollback browser. For: Keyboard fans. About 5 minutes.

- **Show your keys**: `ctrl+b D k`. Every key you press now pops up bottom right.
- **Menus inside menus**: `ctrl+b t esc`. After ctrl+b the panel lists every next key. t opens the window menu.
- **Run anything by name**: `ctrl+p split vertical enter`. No key to remember. Just type.
- **Launch a program**: `ctrl+b a rain enter`. ctrl+b a opens the launcher. alt+space does too.
- **Copy mode with vim keys**: `ctrl+b [ / WebAssembly enter`. hjkl, w, b, gg and G all work. / searches.
- **Select and yank**: `v e y q`. v selects, e stretches it a word, y copies. q leaves.
- **Browse old commands**: `ctrl+b s esc`. Every command and its output, newest first.

## Make it yours

Hundreds of themes, borders, glyphs and a screen saver. For: Ricers. About 3 minutes.

- **Try on a theme**: `ctrl+p theme enter gruvbox enter`. Type to filter, arrows to browse. Watch top change color.
- **Open the settings**: `ctrl+b ,`. Everything in the config file, live.
- **Pick heavy glyphs**: `↓ →`. The shapes tuios draws its frames and marks with.
- **Draw borders with them**: `↓ ← esc`. Set Border style to glyphs and the frames turn heavy. Esc closes, so you can look.
- **Start the screen saver**: `S esc`. It kicks in by itself when you step away. Give it a few seconds, then any key wakes it.
- **Keep it forever**: `i cat .config/tuios/config.toml enter`. Your picks, saved in one file.

## Agents

Run coding agents side by side and never miss a question. For: Agent herders. About 4 minutes.

- **Open the rail**: `ctrl+b b`. Every agent shows up here, with what it is doing.
- **Start an agent**: `claude enter`. A pretend Claude Code. It never leaves this tab.
- **Go do something else**: `ctrl+b w 2`. It will ask you something soon. You will know.
- **Jump to the question**: `ctrl+b j`. The rail turns orange and the dock rings. ctrl+b j takes you there.
- **Say yes**: `y`. y approves. The mark turns green when it is done.
- **Agents that talk**: `ctrl+b M`. On a real machine agents find each other with tuios list-agents, leave messages, and ask you questions. ctrl+b M opens your inbox.
- **One prompt, three agents**: `tuios fan 3`. tuios fan starts the same prompt in several agents, each in its own git worktree and session. Compare them, keep the best.
- **A worktree per agent**: `tuios worktree new`. A worktree is a second checkout on its own branch. One command makes it and a session inside it, and the rail groups them by repo.

## Automation

Tapes that drive tuios, a JSON protocol, and hooks. For: Scripters. About 4 minutes.

- **Read a tape**: `cat demo.tape enter`. A tape is a script of keys and commands.
- **Press play**: `tuios tape play demo.tape enter`. Hands off. tuios types it all.
- **Find more tapes**: `tuios tape list enter`
- **Play the party tape**: `tuios tape play party.tape enter`. Three programs, a zoom and a trip to workspace 2.
- **Drive it with JSON**: `tuios list-verbs`. The daemon speaks JSON lines on its socket. Open windows, type, read panes and wait for output from any script. tuios list-verbs lists it all.
- **Run a command on events**: `tuios list-hooks`. Hooks run your shell commands when a window opens, focus moves, or an agent finishes. Put them in [hooks] in your config.
