tm2027 · HERDR FEATURES — how each would look on the deck

Every capability herdr already serves that the deck does not yet surface, sketched in the deck's own world — engraved tree, watch bands, mounted glass, Hack in the panes. Where a feature has a real fork, both variants are drawn; marks the recommended one. Everything below rides the existing run_herdr_cli path, so it works on local, WSL, and SSH alike.

WATCH & AGENTS

Answer a blocked agent without attachingagent prompt

The strongest item on the list. Today a NEEDS YOU row costs a full attach; the whole point of the watch is to spend seconds, not context switches.

★ V1 INLINE COMPOSER — Enter on the row opens a reply line
NEEDS YOU · 2
kimi нужен ключ geonode-unlimited или пропустить?wsl·botv8
пропусти, ключа пока нет ENTER sends · ESC closes · TAB attaches instead
claude Атрибуция неотправленных файловwsl·r1

The row is already the control; Enter turns it into a one-line composer. The reply goes through agent prompt, the row re-bands on the next poll. Attach stays one Tab away.

V2 PEEK + REPLY — the question above the answer
NEEDS YOU · 2
kimi нужен ключ geonode-unlimited или пропустить?wsl·botv8
Прокси-провайдер geonode отвечает 402. ? Нужен ключ geonode-unlimited, или пропустить этот источник и продолжить со scraperapi?
пропустиENTER sends

Same composer, plus the last lines of the agent's terminal via agent read — the question and the answer share one glance. Costs a taller row and one more round-trip per open.

Peek at an agent's output without attachingagent read

On its own, apart from the composer: any watch row unfolds to its tail.

SPACE UNFOLDS THE TAIL — a fold, not a hover
WORKING · 7
omp π › Synthesize requestwsl·crawling
transport layer merged, 214 tests green $ cargo test --package transport Finished in 3.4s · running batch 7/12
prime-agent prime-agent - game11wsl·game11

Space (or click on the fold) unfolds five tail lines, read once — not a live stream, honest about its moment: a QUIET-style fold, consistent with how the deck already discloses. Hover-tooltips die on a surface where the pointer is always travelling.

Be called when an agent needs youagent wait

The watch that watches back — even when tm2027 is minimized behind three terminals.

★ V1 ONE STANDING RULE — the band is the setting
NEEDS YOU · 0 NOTIFY · ON
Nobody needs you. The deck will say so when that changes.
TM2027 · WSL HERDR / UBUNTU
kimi needs you
нужен ключ geonode-unlimited или пропустить? · wsl·botv8
REPLY…OPEN PANEMUTE 1H

One toggle on the NEEDS YOU band: every arrival into it raises a Windows toast with REPLY (V1 composer in a box), OPEN PANE, and MUTE. One rule to understand, zero per-agent bookkeeping.

V2 PER-AGENT WAIT — a verb on the row
WORKING · 7
omp π › Implement transport dataCALL ME · DONEwsl·crawling
prime-agent prime-agent - game11CALL MEwsl·game11

Arm a single agent: "call me when this one is done or blocked". Precise, but it grows a verb on every row and a list of armed waits to remember. Better added later, on top of V1, if wanted.

Turn a shell into an agentagent start

A pane that is just a shell can become a supervised agent in place, with herdr's own integration.

A VERB ON THE SHELL ROW, THEN A PICKER
$ alexio@ALEXIO: ~/reposSTART AGENTATTACH
START AGENT IN THIS PANE
c claude herdr integration
k kimi
g grok
ENTER starts · the pane keeps its cwd and history

Only shell panes (the $ chip) carry the verb. The picker lists what herdr integration reports as available. The pane keeps its cwd — that is the point.

GLASS

Zoom a panepane zoom

The server already understands zoom — the deck even honors it when drawing — it just never offers it.

DOUBLE-CLICK THE TILE · THE FLAG SAYS WHY THE OTHERS HID
ZOOM · DBL-CLICK RESTORES
Готово: транспортный слой смержен $ cargo test --package transport Finished in 3.4s · 214 green
Pane w2T:p8 - frame 61ZOOMEN142 × 38

Double-click zooms, double-click restores; Ctrl+Shift+Z for the keyboard. The flag on the glass and the word in the status bar both name the state — a hidden neighbour must never be a mystery. Zoom is the server's own state, so every attached client agrees.

Resize a split by its seampane resize

The mounted tiles of #37 made the seam visible; now it earns a verb.

DRAG THE SEAM — it lights when grabbed, and names the split
62 / 38
Штатно: 25 загрузок разбор с фиксом при аномалиях
$ htop CPU 34% MEM 61%

Grab anywhere on the 6px seam; while held it wears the focus blue and a fraction chip. Release sends one pane resize; the grid re-measures on the next frame. No handles, no buttons — the seam itself is the control.

Move focus, swap panespane focus · pane swap

Both are chords over the same geometry the sheet already knows.

ALT+ARROWS MOVE THE LIGHT · ALT+SHIFT+ARROWS MOVE THE PANE
$ tail -f herdr.log
claude · думает
Alt+← → ↑ ↓ focus neighbour · Alt+Shift+arrows swapEN

Focus walk = pane neighbor + the click's own path, so the veil and frame move without the mouse. Swap = one pane swap; the frames travel with their panes because each tile re-attaches by pane id, not by position. No drag-and-drop of tiles: dragging is selection's verb on this surface.

TREE VERBS

Rename a pane, tab, or workspacepane/tab/workspace rename

Agents live in spaces called w4M; the watch chips deserve better heads.

★ V1 F2 IN THE TREE — the row becomes the field
crawling-backend #2 · 2 tabs · 3 panes
1 2 panes
o omp π › Synthesize requestATTACH

F2 (or a slow second click) swaps the label for a field in place — the tree's own row, no modal, Enter commits through rename, Esc restores. Works identically on workspace, tab, and pane rows because they already share row anatomy.

V2 RENAME THROUGH THE SWITCHER — one field for every name
RENAME · wsl·crawling
crawling-backend
ENTER renames the workspace · the fleet re-reads on the next poll

A summoned mini-surface like the settings. Honest, but it adds a floating layer for something the row can do in place — the deck already prefers rows that are their own controls.

Close a tab or workspacetab close · workspace close

The deck closes panes; the two levels above still require the keyboard inside a pane.

A QUIET VERB THAT ARMS — two clicks, one row, no dialog
dog-runtime #2 · 1 tab · 1 pane ● IDLECLOSE
dgxs #3 · 1 tab · 1 paneCLOSE — SURE? 3s

First press arms the verb in the danger red with a three-second word; the second press within it closes. The pattern the deck already trusts for destructive acts: no modal, the row itself asks. Counts in the armed state name what dies with it.

A shell pane tells its real placepane process-info

Shell rows repeat their window title; the process knows its cwd.

THE CWD IS THE WORK — drawn in the work slot, tilde-folded
$ ~/repos/fusion-panelATTACH
$ D:\dgxs\tm2027ATTACH
o omp π › dog-runtime · pid 4812ATTACH

For a shell pane the working directory replaces the repeated title in the work slot, in the mono face because it is a path. Polled lazily with the snapshot, never per-frame. Pid stays out of the row except where an agent row already shows metadata.

SPACES

New space from a branchworktree create / open / remove

Herdr can mount a workspace on a fresh git worktree — one agent per branch, no checkout wars.

NEW SPACE GROWS A SECOND ANSWER — the branch palette
NEW SPACE ON WSL HERDR / UBUNTU
glass
glass-world → worktree ../tm2027-glass-worldFROM BRANCH
glass-notify FROM BRANCH
+ Empty space named "glass" PLAIN
ENTER creates the worktree and lands in it · branches read from the workspace's repo

NEW SPACE stays one button; with a repo underfoot it opens this palette instead of acting blindly — type to filter branches, Enter mounts a worktree-backed space via worktree create and auto-attaches. The plain empty space is always the last row, so the old behaviour is one arrow away. worktree remove rides the armed CLOSE verb above.

SYSTEM

Update without dropping the sessionupdate --handoff

THE OFFER LEARNS ONE MORE WORD
WSL HERDR / UBUNTU7S 7ALIVE
UPDATE HERDR TO 0.8.0 · LIVE HANDOFF, PANES SURVIVE

Same offer row, one honest clause: with --handoff the running server hands its panes to the new binary instead of serving stale until restart. The clause appears only when the server's version supports it.

Herdr's own notifications, and why an agent is not an agentnotification show · agent explain

BOTH LAND WHERE THEIR KIND ALREADY LIVES
herdr: session botv8 reached 90% scrollback capEN
$ claude-code (not detected)WHY?ATTACH
agent explain: process matched "claude" but the integration marker file was not found in the pane env. start it via START AGENT to get lifecycle reporting.

Server notifications take the status bar — the deck's one line for passing facts. WHY? on a shell row that smells like an agent prints agent explain as a fold, and its last line points at the fix.

WHERE I WOULD START

Three PRs, in this order: ① the inline composer + band notify (V1 + V1 — they share the "NEEDS YOU is actionable" muscle and together they make the watch a place you answer from, not just look at); ② zoom + seam-drag + focus/swap chords — one "glass verbs" PR, all riding geometry the sheet already owns; ③ F2 rename + armed CLOSE + cwd rows — one "tree verbs" PR. The worktree palette is the biggest single win after those but deserves its own PR with real branch listing. Handoff-update and the explain fold are cheap riders that can join any of the three.