# tuios > tuios is a terminal window manager with tiling, sessions that keep running when you detach, and one Inbox for what the coding agents in your panes are waiting on. tuios is written in Go and MIT licensed. Source: https://github.com/Gaurav-Gosain/tuios The latest release is v0.11.1, from 2026-10-26. Release notes: https://tuios.dev/releases/v0-11-1.md. Install: https://tuios.dev/docs/getting-started.md ## Docs - [Introduction](https://tuios.dev/docs.md): TUIOS is a terminal multiplexer and window manager with workspaces, tiling, persistent sessions and a vim-style modal interface. - [Getting Started](https://tuios.dev/docs/getting-started.md): Install TUIOS, open your first windows, and learn the keys you need on day one. - [Keybindings](https://tuios.dev/docs/keybindings.md): Every default key in TUIOS for window mode, terminal mode, prefix commands, copy mode and the mouse, grouped by the config section that owns it. - [Hints](https://tuios.dev/docs/hints.md): Put a short label on each URL, path, hash, address and number in a pane, then type the label to copy, paste or open the text. - [Finding a pane](https://tuios.dev/docs/find-a-pane.md): Jump to a pane by its label, or find any pane in any session by its name, folder, command or screen text. - [Links](https://tuios.dev/docs/links.md): Open a link in a pane with Ctrl+click, choose the click and the opener, and see which terminals pass the click to TUIOS. - [Paste buffers](https://tuios.dev/docs/paste-buffers.md): Keep your recent yanks, paste one again with Ctrl+B ], choose one from a list, and use the same buffers from the CLI and the tmux shim. - [TUIOS vs Others](https://tuios.dev/docs/comparison.md): How TUIOS compares with tmux, zellij, herdr, GNU screen and the splits in WezTerm, kitty and Ghostty, and when to pick one of them instead. ## Docs: Windows and Layout - [Layout Modes](https://tuios.dev/docs/layout-modes.md): Floating, BSP, master-stack, scrolling columns and zoom, and how to switch between them. - [BSP Tiling](https://tuios.dev/docs/bsp-tiling.md): Tile windows with binary space partitioning, and switch to the master-stack or scrolling layouts. - [Session Rail](https://tuios.dev/docs/session-rail.md): The sidebar that lists sessions, machines, panes, files, agents and git state. - [Themes and Appearance](https://tuios.dev/docs/themes.md): Colour themes, custom and imported themes, chrome colours, glyph sets, spacing, dimming and the spotlight. - [Omarchy](https://tuios.dev/docs/omarchy.md): On Omarchy, tuios uses the Omarchy theme and changes with it when you switch the theme. - [Neovim](https://tuios.dev/docs/neovim.md): Two community plugins connect Neovim to tuios. One moves between splits and panes. One gives Neovim the colours of your look. - [Images Without Graphics](https://tuios.dev/docs/images-without-graphics.md): How TUIOS shows sixel images as block characters on kmscon, the Linux console and other terminals without graphics. - [Configuration](https://tuios.dev/docs/configuration.md): Every table and option in the TUIOS config.toml, with defaults and how changes apply. - [Split the Config](https://tuios.dev/docs/config-files.md): Keep the TUIOS config in more than one file with include lists and config.d, and see which file sets each key. ## Docs: Sessions and Machines - [Sessions & Daemon Mode](https://tuios.dev/docs/sessions.md): Persistent sessions that survive detaching, shared sessions, and what comes back after a restart. - [Restarting the Daemon](https://tuios.dev/docs/daemon-restart.md): Move the daemon to a new tuios build with tuios restart-server or from the app. tuios shows what stops first, and every attached client comes back by itself. - [Remote Hosts](https://tuios.dev/docs/remote-hosts.md): Open sessions on other machines in your own client, run panes on another machine, and script across hosts. - [SSH Agent](https://tuios.dev/docs/ssh-agent.md): Let the panes of a session use the ssh agent of the client you attached from, on this machine and on remote hosts. - [Web Terminal](https://tuios.dev/docs/web.md): Use TUIOS from a browser with tuios-web, a separate server binary. - [Phones](https://tuios.dev/docs/phones.md): Pair a phone with tuios pair, stream panes to it, and send it Inbox items by Web Push. ## Docs: Agents - [Agents](https://tuios.dev/docs/agents.md): Track what coding agents in your panes are doing, get alerted when one needs you, and let agents drive TUIOS. - [Inbox and Review](https://tuios.dev/docs/agent-inbox.md): One list of everything your agents are waiting on, a view of every agent with its conversation and the forms it showed you, answers from wherever you are, safer approvals, replies queued for a busy agent, and a review of what an agent changed. - [Starting an Agent](https://tuios.dev/docs/new-agent.md): The New agent sheet in the agents view starts an agent with a task. Pick the agent, the model, the machine and where it works, and ask for up to 8 attempts. - [Agent Messaging](https://tuios.dev/docs/agent-messaging.md): Let agents in different panes find each other, leave messages, ask questions and hand over files. - [Program Status](https://tuios.dev/docs/program-status.md): Let any program in a pane report what it does with one escape sequence, OSC 7501, and see it in the rail and the Inbox. - [Worktrees](https://tuios.dev/docs/worktrees.md): One session per git worktree, and one prompt fanned out to several agents at once. - [Checkpoints](https://tuios.dev/docs/checkpoints.md): TUIOS saves an agent's work tree at the end of each turn, so you can read what one turn changed and undo it. - [Ship](https://tuios.dev/docs/ship.md): Take an agent's work from its worktree to a merged change. Commit it, merge it, push it and open a pull request, with your own git identity. - [Push Notifications](https://tuios.dev/docs/push-notifications.md): Get an Inbox item on your phone through ntfy, Pushover or a webhook, and open the Inbox on it from the notification. - [Turn Off Agent Features](https://tuios.dev/docs/agents-off.md): One switch, agents.enabled, turns off every agent feature and keeps only the multiplexer. ## Docs: Scripting - [Control Protocol](https://tuios.dev/docs/control-protocol.md): Drive a TUIOS daemon from scripts and programs with line-delimited JSON on its socket. - [Plugins](https://tuios.dev/docs/plugins.md): Install plugins from git and pin them in plugins.lock. Run herdr plugins unchanged, and native plugins that say which grants they need. - [herdr Compatibility](https://tuios.dev/docs/herdr-compatibility.md): Use tools built for herdr, such as Collie and herdr plugins, with TUIOS through herdr's socket API. - [tmux Shim](https://tuios.dev/docs/tmux-shim.md): Run tools that drive tmux, such as Claude Code agent teams and fzf --tmux, inside TUIOS. Their panes open as TUIOS panes. - [Hooks](https://tuios.dev/docs/hooks.md): Run shell commands when windows, workspaces, sessions and agents change. - [Tape Scripting](https://tuios.dev/docs/tape-scripting.md): Script TUIOS with .tape files, and build project layouts with .tuios.tape. - [Project Tapes](https://tuios.dev/docs/project-tapes.md): A .tuios.tape file that builds a project's session and layout when you cd into it, after you review and trust it. ## Docs: Recording - [Tape Recording](https://tuios.dev/docs/tape-recording.md): Record what you do in TUIOS into a tape you can edit and replay. - [Screenshots](https://tuios.dev/docs/screenshots.md): Capture a pane, a region or the whole screen as a styled PNG, SVG, HTML or text file. - [Showkeys Overlay](https://tuios.dev/docs/showkeys.md): Show the keys you press on screen, for demos, screencasts and teaching. ## Docs: Reference - [CLI Reference](https://tuios.dev/docs/cli-reference.md): Every tuios command and flag, with examples. Sessions, windows, input and output, agents, remote hosts, tapes, environment variables and exit codes. - [Versions](https://tuios.dev/docs/versions.md): Every config key, command, keybinding action and protocol verb, listed by the tuios version that added it. - [Architecture](https://tuios.dev/docs/architecture.md): How TUIOS is built, for contributors and the curious. The client and daemon split, the package map, rendering, graphics, the SSH server, tapes and tests. - [Contributing](https://tuios.dev/docs/contributing.md): Build TUIOS from source, run the tests, and send a pull request. ## Docs: Go Libraries - [Go libraries](https://tuios.dev/docs/libraries.md): Parts of tuios that you can use in your own Go programs, each a Go module of its own under a tuios.dev import path. - [progstatus](https://tuios.dev/docs/libraries/progstatus.md): A Go package for the Program Status Protocol, OSC 7501. Write a report from a program, or read reports in a terminal. - [vt](https://tuios.dev/docs/libraries/vt.md): A terminal emulator in Go. Feed it what a program prints, and read the screen, the scrollback and the modes. - [swatch](https://tuios.dev/docs/libraries/swatch.md): A Go library that reads the desktop's colour theme as a palette with semantic roles, and follows it while your program runs. The first source is Omarchy. - [shot](https://tuios.dev/docs/libraries/shot.md): A Go library that renders a terminal screen to PNG, SVG, HTML, ANSI or text, with an optional window frame. - [tml](https://tuios.dev/docs/libraries/tml.md): The TML language as a Go library. Parse, print and validate documents for terminal surfaces, evaluate their bindings, run local actions and apply JSON Patch to their state. - [loom](https://tuios.dev/docs/libraries/loom.md): Draw TML documents into terminal cells. Flex layout, theme roles at every colour depth, redraws of only what a patch changed, and local keys and clicks. - [plot](https://tuios.dev/docs/libraries/plot.md): Bar, line, area, sparkline, gauge, histogram, heatmap, pie, mirrored and inline bar charts and a world map as terminal cells, in braille, block elements or ASCII, with theme roles in place of colours. - [sketch](https://tuios.dev/docs/libraries/sketch.md): Mermaid diagrams as SVG, PNG and box-drawing text, in pure Go. A port of pele by kepano. - [Diagram types](https://tuios.dev/docs/libraries/sketch/diagram-types.md): Every diagram type sketch draws, as a picture, as text and as Mermaid source. - [sketch playground](https://tuios.dev/docs/libraries/sketch/playground.md): Type Mermaid and see sketch draw it as you type. sketch runs in your browser as WebAssembly. - [Library Usage](https://tuios.dev/docs/library.md): Embed TUIOS in your own Bubble Tea program with the pkg/tuios Go package, or serve it over SSH or in the browser. ## Blog - [An agent writes markup, and tuios draws it](https://tuios.dev/blog/an-agent-writes-markup-and-tuios-draws-it.md): TML lets a script, a plugin or a coding agent show a small UI inside tuios. It writes a document, tuios checks it and draws it in your theme, and the answer goes back to the program. How the markup, the renderer and the rules around it fit together, with the costs. - [Mermaid diagrams in the terminal](https://tuios.dev/blog/mermaid-in-the-terminal.md): tuios mermaid draws Mermaid diagrams right in your terminal, as a picture or as text. It runs on sketch, a pure Go port of pele by kepano. Here is how the port stays faithful to pele, how the text drawings work, and what a perf pass against ondine bought. - [Plugins that ask before they act](https://tuios.dev/blog/plugins-that-ask-before-they-act.md): tuios now installs plugins from git with one command and pins them in plugins.lock. A native plugin says which grants it needs, and the daemon holds every process it starts to them. Here is how that works, what it costs, and where the limits are. - [Restarting the daemon without losing your place](https://tuios.dev/blog/restarting-the-daemon-without-losing-your-place.md): Moving the tuios daemon to a new build used to mean detach, kill-server, start again, and attach every other client by hand. Now tuios restart-server shows what stops, restarts on the newest build, and every client comes back by itself. How the restart picks a binary, survives killing its own pane, and tells a restart from a stop. - [A rice gallery that bots can't spam](https://tuios.dev/blog/a-rice-gallery-bots-cannot-spam.md): The tuios.dev gallery has no form, no upload and no account system. GitHub comments are the queue, one reaction is the approval, every image is re-encoded, and applying a stranger's config is a layer you can take off. Here is how it works, and the ways review found to sneak an image past the approval. - [Making an idle multiplexer actually idle](https://tuios.dev/blog/making-an-idle-multiplexer-idle.md): An idle tuios client woke about 20 times a second to write nothing, and an idle daemon ran five polling loops. Ten pull requests later the client sleeps until something happens, and the daemon does 1 to 2 context switches a second. - [A terminal cannot paste an image, so tuios carries it to the agent](https://tuios.dev/blog/pasting-images-into-a-coding-agent.md): Coding agents want screenshots and long logs, and a terminal paste is text. How the tuios reply editor hands a paste or an image to six different harnesses, and the edges on the way. A named pipe called shot.png, a 160 KB PNG that wanted 138 MB, and a kitty size that divided by zero. - [Why nord turned teal on 256-colour terminals](https://tuios.dev/blog/why-nord-turned-teal-at-256-colours.md): At 256 colours, nord's grey ground #2e3440 came out as index 23, a teal, and Catppuccin Latte's red came out grey. The step-down picked from the colour cube by channel thresholds. The fix moved it to OKLab with a rule for neutrals, a test over all 344 bundled themes went from 339 wrong colours to 0, and one light theme is still not right. - [Most of the page was four fonts](https://tuios.dev/blog/most-of-the-page-was-four-fonts.md): A first visit to a sip page moved 11.7 MB. Most of it was four TTF files that nobody had compressed. WOFF2 and gzip took it to 4.4 MB, and dropping a fallback that no browser could reach took the binary from 30.1 MB to 24.6 MB. - [The shell exited, and Firefox opened a new one](https://tuios.dev/blog/stop-sending-after-the-fin.md): Over WebTransport, a sip session that the program ended came back as a fresh shell in 4 runs of 6. The server's last frame was a STOP_SENDING that one of my own September fixes had added, and Firefox threw away the close message it had already received. - [The daemon sent a client an older state after a newer one](https://tuios.dev/blog/the-daemon-sent-an-older-state-last.md): A flaky tuios test turned out to be the daemon delivering session state out of order. The first fix ordered by the state Version, and the review found the one kind of change that never moves the Version. The second fix counts every change. - [The Option key meant two things, and tuios only knew one](https://tuios.dev/blog/the-option-key-meant-two-things.md): On macOS, tuios read a composed • as opt+8 and switched workspaces, and on French AZERTY Option and the 1 key moved a window to workspace 7. Both came from tables that assumed a US keyboard. The fix took four commits, and two of them undid choices the first one made. - [A reattach lost the state that no cell shows](https://tuios.dev/blog/the-reattach-lost-what-no-cell-shows.md): One CI failure, "scrollback differs on 2 of 396 lines, first at column 37", was a pane snapshot that forgot a wrap was pending. Its review found five more pieces of terminal state a snapshot dropped, and the fix for one of them broke the character sets of a program that had already quit. - [Two reads of one transcript took the daemon down](https://tuios.dev/blog/two-reads-of-one-transcript.md): A tuios daemon on Windows died twice in one afternoon, with every pane in it. The trace ended inside encoding/json. Two goroutines were reading one agent transcript through one buffer, because stopping a timer does not stop a callback that has already started. - [A wait that made the pane 197 times slower](https://tuios.dev/blog/a-wait-that-made-the-pane-197-times-slower.md): An agent that waits for output with tuios wait-for made a flooding pane three times slower. I fixed how often the wait looked. On the libghostty-vt backend the same test still said 197 times, because each look read the history one cell at a time. - [One fuzz failure was the test, one was the emulator](https://tuios.dev/blog/one-fuzz-failure-was-the-test.md): Two fuzz targets failed in tuios on the same evening. The kitty graphics target had an oracle that an allocator change left behind, and my first fix made it too lenient. FuzzModel found a real bug, a cut-off UTF-8 rune that ate the escape after it. - [Why your link click did nothing](https://tuios.dev/blog/why-your-link-click-did-nothing.md): The hover label in tuios said shift+click to open a link, and in most terminals shift+click never reached tuios. The fix moved the click to ctrl, sent every link to the outer terminal as OSC 8, and then got the Mac wrong once before it got it right. - [460 characters that draw nothing](https://tuios.dev/blog/460-characters-that-draw-nothing.md): tuios fences the text other programs write before an agent reads it. The fence removed 22 invisible characters. Tag characters, variation selectors and the line separator went through. What it removes now, and the one joiner it keeps. - [Crush reports to herdr, so tuios answers as herdr](https://tuios.dev/blog/crush-reports-to-herdr-so-tuios-answers-as-herdr.md): Crush tells herdr when it works, waits and finishes, and Collie drives herdr through its socket. Neither knows tuios. How every tuios pane came to answer herdr's protocol, and what that cost. - [Three flaky tests, and what they were hiding](https://tuios.dev/blog/three-flaky-tests-and-what-they-were-hiding.md): Nine tests failed now and then on CI in the last days of September. Two were product bugs, and the work turned up a third. A hook that waited on itself, a broken pipe that should have been an error, and a command line the shell echoed twice. - [tuios v0.8.0](https://tuios.dev/blog/tuios-v0-8-0.md): The first release in six months. tuios now knows what the coding agents in your panes are doing, keeps your sessions in a daemon that brings them back, and runs panes on other machines. - [A window named db](https://tuios.dev/blog/a-window-named-db.md): An end-to-end test lost an agent's state about twice in a hundred runs. It was not a race. The pane was named db, db is hex, and -w tried a window id prefix before an exact name. - [Making the binary smaller, and the idea that made it bigger](https://tuios.dev/blog/making-the-binary-smaller.md): Seven commits took the tuios release binary from 30.0 MB to 23.8 MB. A plan to leave screen saver data out of the binary made it 23.5 KB larger instead. - [TERM=dumb followed the session](https://tuios.dev/blog/term-dumb-followed-the-session.md): A session created by a command with no terminal of its own gave every pane TERM=dumb for its whole life. A screenshot test found it by failing on CI with the same numbers every time. - [Tests that could not fail](https://tuios.dev/blog/tests-that-could-not-fail.md): A resize fuzzer whose only screen check sat behind a constant false, a palette test that measured the length of a fixed-size array, and a pinned repro that lost one byte to encoding/json. All three were green, and none of them could go red. - [Deleting two thirds of the unit tests, then putting a third back](https://tuios.dev/blog/deleting-two-thirds-of-the-unit-tests.md): In one day I cut the tuios unit tests from 4,239 to 1,470 under a strict rule, then restored 1,395 of them. The rule asked what kind of test it was. The review asked whether a bug gets past the E2E suite without it. - [The background vanished under a tab](https://tuios.dev/blog/the-background-vanished-under-a-tab.md): Under tmux, a few cells beside the Inbox title showed the terminal's own background instead of the panel's. The bytes tuios sent were right. bubbletea moved the cursor with a hard tab, and tmux 3.6 and later keep that tab as one cell that a later write breaks. - [A full scrollback cost 232MB per pane, twice: once in the daemon and once in each client](https://tuios.dev/blog/48mb-per-pane-twice.md): A 112-byte cell made every scrollback line cost the full pane width. Packing cells, then storing lines as text, took a full ring from 232MB to 2.2MB. - [Agents drive tuios through one-shot commands, so the event bus could not reach them](https://tuios.dev/blog/a-bus-is-not-a-mailbox.md): A hub only reaches whoever is subscribed right now, and agents almost never are. How tuios got a mailbox, ask-agent and an inbox for the person. - [The pane ran on another machine, and ctrl+D waited for the next keypress](https://tuios.dev/blog/a-pane-on-another-machine.md): tuios daemons now talk to each other over one ssh link per machine. It shipped in stages, and each stage had a bug that taught me something. - [A PTY has one size, and two clients had two opinions about it](https://tuios.dev/blog/a-pty-has-one-size.md): Two clients on one session each laid the panes out around their own chrome and fought over the shared shells. The fix, and the harness that found the rest. - [A session switch forgot my column widths](https://tuios.dev/blog/a-session-switch-forgot-my-column-widths.md): Switching sessions and back reset a widened column in the scrolling layout and split stacked panes apart, because the session state saved the strip's offset and not its columns. The same gap had two clients on one session drawing different widths. - [Most of a scroll was spent on blank cells](https://tuios.dev/blog/most-of-a-scroll-was-blank-cells.md): A ten-character line scrolling off a 207-column screen walked the whole row twice. One int per row cut the short-line scroll from 1,120 ns to 240 ns, measured on a machine that would not sit still. - [Nothing failed, so nothing was fixed](https://tuios.dev/blog/nothing-failed-so-nothing-was-fixed.md): A whole-codebase audit of tuios found a flag nothing set, an interface with one implementation behind 140 call sites, and copies of code that had quietly drifted apart. Dead code survives because nothing fails when it is wrong. - [Session state was saved every 30 seconds and never read back](https://tuios.dev/blog/sessions-come-back.md): tuios wrote every session to disk from April and no daemon ever loaded it. Wiring up the read side, and then making reattached panes redraw correctly. - [The one moment an agent needed you was the one moment tuios could not see](https://tuios.dev/blog/the-moment-nothing-could-tell-them.md): A coding agent blocked on a permission prompt paints it once and goes silent. How tuios learned to tell that silence apart from a finished turn. - [The underline depended on which code drew it](https://tuios.dev/blog/the-underline-depended-on-which-code-drew-it.md): A focused tuios pane dropped SGR underline, and some unfocused panes dropped almost every attribute. tuios had five ways to draw a pane and only one kept everything, so the text changed when focus moved. - [The screenshot cell was half measured and half guessed](https://tuios.dev/blog/the-cell-was-half-measured.md): Pane screenshots came out stretched. Two rounds of font maths got the cell shape wrong. The fix asks the host terminal for its real cell size in pixels. - [The renderer was drawing a backlog it had caused](https://tuios.dev/blog/drawing-the-backlog.md): A flooded tuios pane kept painting 1.2 s after its source exited. The client's own renderer caused the backlog, and pacing by queued bytes halved the tail. - [The fuzzer that found nothing, and the two questions that found everything](https://tuios.dev/blog/the-fuzzer-that-found-nothing.md): 590,000 fuzz runs against the tuios terminal emulator found nothing, because they checked that the screen was well formed, not that it was right. Two properties that compare the emulator with itself found two real bugs. - [A fifth of every frame went to changing nothing](https://tuios.dev/blog/a-fifth-of-every-frame-went-to-changing-nothing.md): A profile put 19.8% of the tuios client in lipgloss.Wrap, rewrapping pane text already the right width. Skipping it was easy. Proving the skip safe was the work. - [My differential tests passed and the screen was pink](https://tuios.dev/blog/my-differential-tests-passed-and-the-screen-was-pink.md): A style cache keyed by recycled libghostty-vt style IDs painted ls output hot pink, and a differential test suite that compared once, at the end, missed it. - [The daemon said yes to an option that did not exist](https://tuios.dev/blog/the-daemon-said-yes-to-an-option-that-did-not-exist.md): Driving the tuios control socket the way a program would found a command that lost its spaces, a parameter that was silently dropped, and 88 settings of which six applied live. - [My multiplexer lied about what it could do](https://tuios.dev/blog/a-terminal-that-lied-about-what-it-could-do.md): kitty icat drew nothing when tuios ran in a browser client, because the graphics passthrough said yes to file transmission without asking the host. - [My fuzzer was optimising for my own bug](https://tuios.dev/blog/fuzzing-a-terminal-test-harness.md): A flaky TUI fuzz suite came down to a PTY line discipline I never configured, and a shrinker that minimised straight toward the race. - [The benchmark said 27x faster. It felt worse.](https://tuios.dev/blog/measuring-before-optimising.md): Fixing pane resize lag in TUIOS with Go benchmarks and pprof. Two of four theories were wrong, and the benchmark measured the wrong thing for three rounds. - [Three terminal bugs in one month turned out to be one bug](https://tuios.dev/blog/nobody-was-listening.md): Terminals answer queries like OSC 11 and CPR. Three bugs in three codebases were one bug: the reply was dropped, sent to the wrong place, or echoed back. - [I dragged one divider and five windows moved](https://tuios.dev/blog/one-divider-five-windows.md): Dragging one divider in the tuios tiling layout moved five windows. It was three defects: neighbours found by geometry, a restarting ease, a truncated ratio. - [The bug I closed three times: a speckled sprite in a WebGL terminal](https://tuios.dev/blog/the-bug-i-closed-three-times.md): A speckled sprite in the tuios browser terminal. Three wrong closures, a test suite blind by construction, and a browser that salted its own pixel readback. - [I ported a correct emoji width table and it fixed nothing](https://tuios.dev/blog/the-width-table-that-changed-nothing.md): Emoji widths were wrong in the tuios browser client. I ported ghostty's per-codepoint width table and nothing changed, because a terminal gives width to grapheme clusters, not to codepoints. - [I shipped three fixes for a bug I had not found](https://tuios.dev/blog/three-fixes-for-a-bug-i-had-not-found.md): A tuios pane went blank on focus changes. I shipped three real fixes for other bugs before I reproduced it, and the cause was a window width read from its first line. ## Releases - [v0.11.1](https://tuios.dev/releases/v0-11-1.md): Fixes three security problems that @Gsirawan reported: GHSA-5q2q-f2hv-wf4h, GHSA-qcx6-vr32-xr8q and GHSA-5cvj-c8rj-c749. Also a new worktree key, the gilt theme, Mermaid in TML surfaces, tuios tml render, calmer dim and borders with no theme, and an opt-in worker engine for tuios-web. - [v0.11.0](https://tuios.dev/releases/v0-11-0.md): The Inbox becomes a cockpit for every agent on every machine, with real threads, diffs, artifacts and fans of attempts. Agents read the mail other agents send them. Lock mode gives every key to the pane. Plugins install from git and run only after you approve them. sketch draws all 33 Mermaid types of pele 1.9.0, and sketch, tplot and tml ship as commands of their own. Fixes GHSA-78rj-pghh-vh42. - [v0.10.1](https://tuios.dev/releases/v0-10-1.md): A reply editor with line breaks, long pastes and images, and an agents view of every agent you run. A theme editor, light and dark theme pairs, styles for every part of the chrome, tuios look for shared setups, and keybind presets for tmux, screen and zellij. An idle tuios now runs no timer. - [v0.10.0](https://tuios.dev/releases/v0-10-0.md): A feature release. tuios follows the Omarchy theme live, and uses it when no theme is set. The emulator is now the tuios.dev/vt library, tuios.dev/swatch reads desktop themes, and host links reconnect after sleep. - [v0.9.3](https://tuios.dev/releases/v0-9-3.md): A feature release. tuios cp copies files between machines, popups and image paste work on hosts, window_size defaults to latest, and each client keeps its own rail. Panes split when you drop one on an edge. - [v0.9.2](https://tuios.dev/releases/v0-9-2.md): A security release. It updates Go and x/net for HTTP/2 advisories, adds keyboard_layout and option_glyphs for macOS Option and non-US layouts, lets links use an open ssh master, and keeps your screen when you quit. - [v0.9.1](https://tuios.dev/releases/v0-9-1.md): A fix release. It fixes a daemon crash on agent transcripts, races in the daemon client state, a scrollback line that broke after a reattach, and a theme from a config file that missed the panes. tuios-web moves to sip v0.8.5. - [v0.9.0](https://tuios.dev/releases/v0-9-0.md): Any program can now tell tuios what it is doing, your config can live in more than one file, and yanks stay around as paste buffers. You can take a session for yourself with attach -d, your ssh agent follows you into your panes, and images show up even on a terminal with no graphics at all. - [v0.8.5](https://tuios.dev/releases/v0-8-5.md): tuios 0.8.5 makes tiling more configurable and lets herdr plugins run in a tuios pane. It adds a tmux-style size policy for sessions with more than one client. Scrollback keeps its text when you resize a pane. - [v0.8.4](https://tuios.dev/releases/v0-8-4.md): tuios 0.8.4 is a fix release. It repairs the default mode of tuios xpanes and removes more invisible characters from untrusted text. It also fixes the Homebrew cask warning and a race in the herdr socket. - [v0.8.3](https://tuios.dev/releases/v0-8-3.md): tuios 0.8.3 turns the scratch terminal into a layout of its own. It adds picture-in-picture, pane history across a daemon restart, sixel images, image paste, tuios xpanes and herdr's socket API. It also brings the fixes merged since v0.8.2. - [v0.8.2](https://tuios.dev/releases/v0-8-2.md): tuios 0.8.2 adds the scratch terminal and command keys. It also brings file editing and file search in the sidebar, hints on all panes and the fixes merged since v0.8.1. - [v0.8.1](https://tuios.dev/releases/v0-8-1.md): A security release. tuios ssh and tuios-web are safer to expose, and a pane and its output can do less outside the pane. It also adds hints mode, multi copy mode and the fixes merged since v0.8.0. - [v0.8.0](https://tuios.dev/releases/v0-8-0.md): tuios now knows what the coding agents in your panes are doing, with an Inbox for everything they wait on and a review of what they changed. Sessions live in a daemon that brings them back, panes run on other machines, a full scrollback costs a tenth of the memory, and the interface was redrawn for every colour depth and for light themes. - [v0.7.0](https://tuios.dev/releases/v0-7-0.md): Video playback in a pane, the kitty keyboard protocol, a rebuilt copy mode with a real scrollbar, a command palette, and the hundred fixes it took to make graphics passthrough honest. - [v0.6.0](https://tuios.dev/releases/v0-6-0.md): Experimental Kitty graphics support, prefix-free window cycling in terminal mode, and a real terminal cursor with vi-mode shapes. - [v0.5.0](https://tuios.dev/releases/v0-5-0.md): Persistent sessions backed by a daemon, multi-client attach over SSH, a remote control CLI, and BSP tiling with manual splits. - [v0.4.0](https://tuios.dev/releases/v0-4-0.md): The web terminal moves out into the sip library, tape scripting gets a recorder and a manager UI, and a ShowKeys overlay draws your keypresses for recordings. - [v0.3.0](https://tuios.dev/releases/v0-3-0.md): Bubble Tea v2 with keyboard enhancements, configurable tiling layouts, theming turned opt-in, and a scrollback rewrite. - [v0.2.0](https://tuios.dev/releases/v0-2-0.md): 340 color themes that restyle the UI and the terminal palette together, a new PTY layer, and windows that can no longer leave the screen. - [v0.1.0](https://tuios.dev/releases/v0-1-0.md): The first tagged release. A floating and tiling terminal window manager with a vim-style copy mode, scrollback, a TOML config with rebindable keys, and packaging for most platforms. ## Optional - [Full docs text](https://tuios.dev/llms-full.txt): Every docs page as one file - [Blog feed](https://tuios.dev/blog/atom.xml): Every post with its full text, as Atom - [Releases feed](https://tuios.dev/releases/atom.xml): Every release note with its full text, as Atom