Skip to content
Agent Orchestration
Skill

/tuios

Drive tuios from inside one of its panes. Find out where you are running, read and write other panes, run work and wait on it instead of polling, report your own state so the person sees it, and talk to the other agents and the person safely. `tuios --skill <topic>` prints the

BOOST
From plugin
tuios
5k1 skill
Install
$ npx -y skills add Gaurav-Gosain/tuios --skill tuios --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/tuios

Context preview

The summary Claude sees to decide when to auto-load this skill.

Drive tuios from inside one of its panes. Find out where you are running, read and write other panes, run work and wait on it instead of polling, report your own state so the person sees it, and talk to the other agents and the person safely. `tuios --skill <topic>` prints the

SKILL.md

tuios.SKILL.md
name: tuios
description: "Drive tuios from inside one of its panes. Find out where you are running, read and write other panes, run work and wait on it instead of polling, report your own state so the person sees it, and talk to the other agents and the person safely. `tuios --skill <topic>` prints the rest: fleets of agents, turn checkpoints, shipping a worktree, the Inbox and approvals, push notifications, mail, other machines, clients, events, MCP, the tmux shim, herdr's command line, pane grants, configuration, agent features off, errors and recipes."

Driving tuios from a pane

tuios is a terminal window manager with a daemon. Sessions hold windows, each window owns one pane, and windows are grouped into numbered workspaces. The `tuios` command talks to the daemon over a unix socket, so everything here works from inside a pane, from a plain shell and from a script.

This is the core of the skill: the loop almost every agent uses. It is printed by `tuios --skill` and ships inside the binary, so it always describes the tuios you are running. The rest is in topics, listed at the end. Print one with `tuios --skill <topic>`, or everything with `tuios --skill all`.

Am I inside tuios

[ "$TUIOS_ENV" = "1" ] || echo "not in a tuios pane"

A daemon-managed pane has these set:

TUIOS_ENV=1
TUIOS_PANE_ID=98db8226-1829-468e-89a8-41a2baa0ddab
TUIOS_WINDOW_ID=98db8226-1829-468e-89a8-41a2baa0ddab
TUIOS_SESSION=work
TUIOS_SOCKET=/run/user/1000/tuios/tuios.sock
TUIOS_HOST=laptop
TUIOS_PANE_TOKEN=3f9a...
TUIOS_PANE_GRANTS=admin

`TUIOS_PANE_ID` is your own window, and `TUIOS_WINDOW_ID` is the same uuid. Pass it to `-w` whenever you mean yourself rather than whatever is focused. It is also your address when another agent wants to reach you. The CLI presents `TUIOS_PANE_TOKEN` where the daemon needs it; never pass it by hand.

`TUIOS_SOCKET` names the daemon that runs your pane. Setting it does not send a command to another daemon: `XDG_RUNTIME_DIR` chooses the daemon, and a command refuses when `TUIOS_SOCKET` names a socket where nothing listens. For a throwaway daemon of your own, set `XDG_RUNTIME_DIR` and `XDG_STATE_HOME` to fresh directories.

`TMUX` and `TMUX_PANE` are not set in a tuios pane, even when tuios runs inside tmux, so do not drive panes with `tmux` here: use the tuios verbs. A tool that only knows tmux can run under the shim (`tuios --skill tmux`).

A pane restored after a daemon restart has `TUIOS_RESTORED=1`: it is a new shell in the old place. A pane whose process runs on another machine has `TUIOS_PANE_HOSTED=1` and no `TUIOS_ENV` (`tuios --skill hosts`). A standalone `tuios` has no daemon and no socket, so guard on `TUIOS_ENV` and degrade quietly when it is unset.

What your pane may do

tuios pane-grants
Pane 98db8226 in session work holds admin (the default of [agents.permissions], mode open).

Mode `open` is the default, and there a pane holds `admin`. Under mode `strict` a pane holds `read`, `write` and `fan` unless the person set other grants. The grants are `read`, `write`, `fan`, `respond` and `admin`. A call your grants do not cover fails with `forbidden`, does nothing, and names the grant it needed. That is the person's decision about your pane: do the work inside what you hold, or ask the person. Do not look for another verb or process that does the same thing, and do not try to raise your own grants. `tuios --skill grants` has the whole model.

Addressing things

Sessions are addressed by name with `-s`. Omit it and the most recently active session is used, which is a guess when several are live. Inside a pane, pass `-s "$TUIOS_SESSION"`.

Windows are addressed with `-w`, which takes, in order: the full uuid, the index `list-windows` prints (all digits), the exact window name (a name you gave, before a program's title), or a unique id prefix. A name wins over a prefix, so a pane called `db` is never mistaken for a pane whose id starts with `db`. An ambiguous name or prefix is an error, never a guess. The index shifts when an earlier window closes, so a script holds the id or the name.

A pane running an agent is a window like any other and is addressed the same way. `HOST:SESSION` and `HOST:SESSION:WINDOW` reach another machine (`tuios --skill hosts`).

Seeing and reading

tuios ls
tuios list-clients
tuios list-windows -s work
tuios list-agents -s work
tuios capture-pane -s work -w build --scrollback --lines 40

The listing commands take `--json` when you want to parse rather than read. `capture-pane` without `--scrollback` is the visible screen, which ends in the blank rows below the cursor. `--lines` counts from the last line with content. Leave `--ansi` off when you match text.

Drive other windows: open, address, send keys, check

Open a window per job with a name, run the program with `send-text`, wait for it to draw, then send keys to it by name and read the screen back:

tuios new-window -s "$TUIOS_SESSION" docs --cwd ~/dev/docs --no-focus
tuios send-text -s "$TUIOS_SESSION" -w docs 'glow -t README.md
'
tuios wait-for window-idle -s "$TUIOS_SESSION" -w docs --idle 1000
tuios send-keys -s "$TUIOS_SESSION" -w docs Down --repeat 5
tuios send-keys -s "$TUIOS_SESSION" -w docs PageDown
tuios capture-pane -s "$TUIOS_SESSION" -w docs
  • **Always pass `-w`.** With `-w`, keys go to that window's program whatever

the person has focused. Without it they go to the person's client as if the person pressed them, which is the focused window (often your own) or the window manager.

  • `new-window` prints `3a42ab8f docs`: the short id and the name. Either one

is a `-w` target. `--print-id` prints only the full id, for `id=$(tuios new-window ... --print-id)`. A name you give beats any window's title; two windows with one name are an error that lists both.

  • Key names: `Up` `Down` `Left` `Right` `PageUp` `PageDown` `Home` `End`

`Enter` `Escape` `Tab` `Space` `Backspace`, one character (`q

Read more
Ships withtuios

A terminal window manager that knows what your agents are doing. Tiling panes, workspaces, sessions that survive restarts, and one Inbox for every coding agent.

Get the whole plugin
Stats
5,010
Stars
223
Forks
Active
Maintenance
Go
Language
MIT
License
7m ago
Last commit
1y ago
Created
13h ago
Added

Repo: Gaurav-Gosain/tuios