Agent View — Liu Terminal

Liu Terminal Agent View. See which AI agent runs in each split pane, what it is working on, and whether it is busy — from the tab strip.

Liu tracks the foreground agent of every pane, not just of every tab. The tab strip and the panel that drops out from under it answer three questions without switching tabs: who is in this tab, what are they working on, and are they busy right now.

In the tab strip

A tab running an agent names itself after the chat, not after the shell. The title comes from the chat title the tool writes into its own session store, so a tab reads "Fix the resize crash" rather than "claude".

  • Each pane running an agent contributes its logo to the tab pill, so a split shows two icons.
  • Two or more agents in one tab collapse to a count — "2 agents", or "3 agents working" — because a pill that narrow cannot name them all, and naming only the last-clicked one is what made the strip lie.
  • An activity bar sweeps under the tab while any of its panes is producing content. Its speed follows the output rate, so a fast generation reads differently from a slow one.

Hover preview

Rest the pointer on a tab that is running an agent and, after 0.55 s, a panel drops out from under it: one row per pane, with the agent icon, its name, the chat topic underneath, and a status pill reading "working 1m 12s" or "idle 40s". The pane you are typing into carries an accent hairline.

  • Sliding onto a neighbouring tab glides the panel across instead of re-opening it — no second dwell.
  • A plain shell tab never opens it. The preview is gated on an agent being present, not on it being busy, so an idle agent is still listed.
  • Up to 6 panes are listed; the rest fold into a "+N more panes" line.

The done notice

When a pane's agent finishes a stretch of work, a card drops in with its icon, the chat it was working on and how long the stretch lasted, plays the completion sound and dismisses itself after 7 s. A countdown bar along its bottom edge shows the time left.

  • It never steals a preview you are reading — the sound still plays and that pane's row flips to "idle" in place.
  • Only stretches of at least 1.5 s fire one, and at most one per pane every 12 s — a burst of short replies does not become a burst of cards.
  • The sound obeys your notification settings: muted notifications stay muted, the completion event can be switched off on its own, and a per-tool sound assigned in Settings is the one you hear.

How "working" is decided

The signal is content produced, not bytes received: the emulator counts writes that actually changed the grid, so a repainting TUI does not read as progress. The count decays continuously, and crossing the threshold holds the "working" state for 2.5 s more — long enough that token gaps, thinking pauses and tool calls do not blink it off.

  • Typing is not work: output that lands within 150 ms of a keystroke is treated as echo.
  • Grok is counted as present but never as working: its full-screen TUI repaints while idle, so its output volume says nothing about progress.

What it costs

Nothing is probed while drawing. The per-pane state is maintained by the session poll that already runs, and the panel only reads it: no terminal grid is walked and no process is inspected to paint a frame. Process and chat-title lookups are throttled and staggered per pane — about every 0.75 s and 2.5 s for the focused tab, 2 s and 8 s for background tabs — and a pointer crossing the strip costs two comparisons per frame.

  • Tabs & splits - where the panes the agent rows describe come from.
  • Agent History - the same chats, after they end: browse and resume them.
  • Notifications - the sound rules the done notice follows, and how to change them.

Next SSH sessions →

Documentation

Getting started

Guides

Reference

Other languages

Türkçe · 简体中文 · 한국어 · Español · Deutsch · Italiano · Français · 日本語 · العربية