English · 中文
A T3 Code-like layout for Herdr App: Lists (Spaces + Agents) or an Inbox sidebar with T3-style Settle, slim tabs and framed panes.
Only want the Settle sidebar? It is also published alone: herdr-t3-focus.
Save human attention.
You can keep adding agents, but your attention doesn't grow with them. Everything in Herdr T3 is designed around this.
It's so nice to have 14 threads running and zero visible. Why let working threads get in the way of things that need your attention?
— Theo
The Inbox follows T3 Code.
- Two sidebars, one key apart (
cmd-shift-b): Lists, or Inbox.- Spaces: repo, branch and ahead/behind only when they're unusual; worktrees folded under their checkout; grouped by machine once there's more than one.
- Agents: grouped by space or by priority, pins, sub-agents nested under their parent.
- Inbox: T3-style Settle. Agents that need you stay up top as cards; finished ones are settled by hand into a quiet list and come back on new work. Busy agents fold into a Working shelf.
- One name everywhere: Inbox cards, the agents list, tabs and pane headers name a terminal the same way: its Pi session, then a tab you named, then a telling terminal title, else the program. Two Pis in one tab read as their own sessions.
- The same status marks everywhere: a spinner while working,
!when blocked or its turn failed, a dot when done. While Inbox shows, a settled agent's done dot leaves the tabs and pane headers too. - Slim tabs, framed panes: 28px pill tabs; rounded panes with a 28px header (name, folder, status; split, zoom and close on hover).
- New: the tab bar's
+opens a terminal tab in the current space; the sidebar's New tab picks a space (or a new one) first. No agent picker: start agents in the terminal.
Ask your Herdr agent to add herdr.dev/layouts/JinJieBeWater/herdr-t3. By hand: copy layouts/herdr-t3.json, layouts/herdr-t3.svg and every mods/t3-* into ~/.config/herdr-app/, merge keys.json into yours. How it should look and behave: RECIPE.md.
- Sidebar: the button at the top right of the sidebar (or
cmd-shift-b) switches between Lists and Inbox; the one next to it hides the sidebar. - Inbox: hover a finished card and click
✓ Settleto put it away; new work brings it back, or click the undo arrow on its row.cmd-shift-ssettles the agent in view, or brings it back if it is settled; withcmd-]you can walk the cards and settle each as you finish it. Drag a card or row, as in T3: move it 6px to lift it; thePinnedandActivelabels open, the lifted row says what letting go will do (Pin, Unpin, Settle, Un-settle) and the list opens a gap where it will land. Pinned keeps your order; Active and Settled keep their own. Esc or leaving the sidebar sideways puts it back; leaving off the top or bottom lands it where the badge says; Working cards don't lift. Press a card's✓ Settle(or a settled row's undo) and move across rows to settle (or bring back) the whole run. The agents list shares these pins. - Focus ring (off by default): in
~/.config/herdr-app/layouts/herdr-t3.json, set the pane'sfocus.colorfrom"background"to"accent"(or any theme color) to ring the focused pane. It applies on save.
The layout's own, in the layout:herdr-t3 section of keys.json (an install merges them):
| Key | Command | Does |
|---|---|---|
cmd-shift-b |
t3-chrome.sidebar |
Switches the sidebar between Lists and Inbox |
cmd-shift-s |
t3-inbox.settle |
Settles the agent in view and moves to the next card, or brings it back if it's settled. Only while Inbox shows; a busy or pinned agent stays |
What I add to the global section:
| Key | Command | Does |
|---|---|---|
cmd-] / cmd-[ |
agent.next / agent.prev |
Walks agents in the Inbox cards' order; settled ones come last |
cmd-p |
mod.open:picker |
The same picker as Inbox's Search |
cmd-shift-r |
mod.open:pulls-review |
Review the focused repo (needs the pulls.review extra) |
Tabs, spaces and panes keep Herdr's own keys. Pinning, dragging and Clear in Inbox are by mouse.
Herdr doesn't update mods or layouts from others, and adding this again would install a renamed second copy (t3-inbox-2), since an install never overwrites. Update by overwriting instead:
- Tell your Herdr agent: "Update Herdr T3 from github.com/JinJieBeWater/herdr-t3: overwrite my installed
mods/t3-*andlayouts/herdr-t3.*with the repo's latest, then runherdr-app checkon each mod." If the first install renamed something because of a clash, overwrite under that name. - By hand: copy the same files over the old ones. Mods reload by themselves on save; no restart.
- Kept: pins, folds, sort, the Settled shelf and settled agents. They live in
data/,shared.jsonand terminal labels, not in the mod folders. Lost: your own edits to the overwritten files, including the focus ring color; set it again after overwriting the layout. keys.jsonand the extras stay as they are; compare them with the repo only if the commit log mentions them. Commits marked!rename things (for examplerefactor!: rename the layout and theme to herdr-t3); follow what they rename.- From before Focus became Inbox (
t3-focus→t3-inbox): renamedata/t3-focustodata/t3-inbox(the cards' order and shelves), inkeys.jsonchanget3-focus.settletot3-inbox.settle, then deletemods/t3-focus. - The agent view is removed (last in commit
a8cbcd4): after overwriting, delete"cmd-shift-a": "t3-tabs.view"fromkeys.json.
t3-spaces: read-onlygit status/git rev-parsein your spaces' folders, watches those repos for changes (watchFolder), andhc machine ls --json. Clicking Connect on a rebuilt machine runshc machine rmandhc machine add.t3-inbox:hc label <agent> settled=<ms>:<turn>when an agent is settled or unsettled.
No network requests.
Not part of the layout and not copied by an install; add them by hand if you want them.
extras/mods/pulls-review/ opens the focused pane's repository in pulls.review: its uncommitted changes when there are any, else what pulls.review opens by default (the current branch against the default branch).
- Needs the CLI from my fork (
multi-repobranch). The mod runspulls.review -d --pwa:-dhands the repo to one background server shared by every repo,--pwaopens the installed pulls.review app instead of a browser tab. Upstream pulls.review has neither flag. - Local folders only: a pane on another machine shows an error.
- Install: copy
extras/mods/pulls-review/into~/.config/herdr-app/mods/, then add a key to theglobalsection of yourkeys.json:"cmd-shift-r": "mod.open:pulls-review". - Runs read-only
git status --porcelainandpulls.review. - This layout's tab bar has no button for it; use the key or the command palette.
extras/themes/herdr-t3.json is the dark theme in the screenshot: canvas and chrome #141418, accent and working #6b93ff, blocked #f0a33a. Copy it into ~/.config/herdr-app/themes/. Named like the layout, it is the layout's own: Settings offers it only while you are in Herdr T3, so pick it there. The rest is in settings.json:
{
"appearance": "dark",
"font": "Maple Mono NF CN",
"ui_font": "Maple Mono NF CN",
"font_size": 12,
"minimum_contrast": 3
}Herdr doesn't ship Maple Mono NF CN: install it, or leave the font lines out to keep Herdr's JetBrains Mono and Geist.
t3-chrome, t3-spaces, t3-agents, t3-tabs, t3-pane, t3-new-menu and the layout start from Herdr App's shipped workspace-chrome, spaces, agents, tabs, pane, new-menu and main. Settle follows T3 Code's design. Apache-2.0, as Herdr App.
- herdr-t3-focus: this layout's Inbox sidebar as a standalone mod.
- herdling: a macOS menu bar companion for Herdr.
- pi-stuff: my Pi extensions and skills.
