Glossary
The words these docs use
| Word | Meaning |
|---|---|
| multiplexer | a program that keeps terminals alive in panes, tabs and spaces, such as herdr or tmux. The app talks to one through the Multiplexer interface |
| herdr TUI | herdr's own text interface, run in a terminal app |
| machine / host | a computer that runs herdr: This Mac or an SSH host. Each machine has its own icon and one entry in the machine list. Its sessions share one SSH connection |
| This Mac | the Mac the app runs on |
| session | one herdr server on a machine (default, pi-herd, …) |
| space | a group of tabs in a session, one row in the sidebar, as the herdr TUI calls it. herdr's API and CLI say workspace (workspace_id, workspace.*, herdr workspace), and so does the app's code |
| page | one session's page in the sidebar. A window shows only the sessions the user opened in it; pages swipe sideways. Its title is the session's name, or the machine's name for default |
| window | an Ovvi window. It shows one machine and keeps its own selection; the user can open several |
HostStore | the app's live model of one open session, shared by every window that has its page |
| machine button / space button | the title-row button with the machine's icon / the title-row button "‹page title› | ‹space›", shown while the sidebar is collapsed |
| Open Session | the panel that adds a session to the window as a page: it creates a session, starts a stopped one or opens a running one (⌥⌘T) |
| tab page | the main area: the selected tab's cards in herdr's layout |
| tab capsule | one tab in the tab bar |
| pane card | how the app draws one herdr pane: a header plus content. A browser's, a plugin's or an agent's header has a second row for its kind's controls |
| chooser | the list a new pane shows first: Terminal, Agent, Browser, File Explorer, Git and every other plugin with a chooser row |
| browser pane | a herdr pane labeled ovvi:browser#<iid> <url>, which the app draws as a web page |
| plugin pane / default plugins | a herdr pane labeled ovvi:<id>#<iid> <arg> that the app draws with a plugin's page / the two plugins that come with the app: File Explorer and Git |
| plugin (package) | a folder with a package.json whose ovvi key is the manifest, its source and its own node_modules, built by its own build script (Plugins) |
| manifest | the ovvi key of a plugin's package.json: its id, name, entry, icon, what it opens, its header, commands and settings |
| registry | the app's list of every pane kind it draws over a placeholder: the browser and each plugin package |
| plugins folder | ~/.config/ovvi/plugins/, where Ovvi installs plugin packages |
| confirmation (plugin) | the question a plugin asks once before its code or build script first runs: Install or Cancel, with a warning that plugins run code as you |
| web card | a browser or plugin card, whose content is a web view of its own; a plugin's page comes from its package's build |
| picture (card) | a card's last image at 1x, shown in place of a dropped web card until the card made again has loaded, and in its overview tile |
plugin API / ovvi | the typed object a plugin's page calls: files, git, run, state, the header, opens, toasts; behind it, the bridge's messages to the app |
| linked open | an open from a plugin card in a new herdr tab right after its card's tab (⌘-click), or in a pane to its side (⌥-click) |
| kept page (plugin) | one of the last five places a plugin card showed, kept hidden in its page so Back and Forward show it at once, as the user left it (ovvi.pages) |
| kept tab page | the page of one of the 8 tabs shown last, kept made and hidden under the shown one, so a switch to it builds nothing and its cards keep their state |
| in the background | an open in a new tab or a side pane that leaves the selected tab and the keyboard where they are (a ⌘- or ⌥-click in a plugin card) |
| landing | the line, diff file or row an open scrolls to, once, on the page's first load |
| Back and Forward (plugin) | a plugin card's own list of the places it showed, walked from row 2 or with ⌃- ⌃⇧- |
| Edited dot | the dot after a plugin card's title while it has unsaved edits (card.setDirty) |
| Git home | a Git card's first page: the branch, Fetch, Pull, Push, Commit, the changes and the history of every branch |
| toast | a one-line glass capsule at the top of a plugin card with two buttons, for example Reload or Keep Mine |
| info view | a plugin card's view of a file it does not show: the type's icon, the name, the kind and the size |
| breadcrumbs | A file card's path in row 2, from its repository's root, else ~, else /; File adds the symbol at the caret: repo › … › file › {} symbol |
| chat view | an agent pane drawn as messages with a reply box, for agents Ovvi started with its flags. The card's Chat | TUI switch flips between it and the agent's TUI (its own terminal interface) |
| Relaunch with Chat | the button that starts an agent running without Ovvi's flags again with them, in the same session |
| session title | the name an agent keeps for its session (Claude Code, Codex and OpenCode make one; pi's /name sets one), shown as the agent pane's name unless the pane has a herdr label |
| launch line / marker | the command and flags the chooser types to start an agent with a chat / the part of it (a UUID in an argument) by which the app knows the pane again |
| adapter | one agent's side of the chat view: its launch line, marker, followers, Stop keys and answers (ChatAdapter) |
| side files | the hooks' and plugins' small files under ~/.cache/ovvi/ on the pane's machine |
| pi-ovvi | the small pi extension that ships inside Ovvi and reports pi's session, tree moves, dialogs and phase |
| live terminal (drawer) | the pane's terminal at the bottom of a chat card while the agent asks something the chat cannot answer |
| iid | a browser or plugin pane's instance id: 6 characters of [a-z0-9] in its label, which names its state file |
| placeholder | the small script a browser or plugin pane runs in herdr, so herdr's TUI shows what the pane is |
| keyboard card | the card that gets typed keys, one per tab; the app's own choice, never herdr's focus |
| program icon | the icon of the program that runs in a pane, from Ovvi's own catalog; a tab shows a stack of them |
| hover card | the panel that shows a tab's panes when the pointer rests on a title-bar tab or an agent row |
| overview | every tab of the session as a miniature of its page, drawn from pictures, grouped by space (⌃⌘O) |
| floating pane | a pane shown in a small window of its own; herdr keeps it in its tab |
ovvi command | the script at ~/.cache/ovvi/bin/ovvi on each machine, through which an agent asks Ovvi for cards, floats and plugins |
| agent request | one run of the ovvi command: a file in the machine's mailbox and the ovvi-req token on the asking pane |
| notice | the short capsule at the bottom of the tab page after a failed action |
| Glass / Classic | the two interface styles: a window with a behind-window blur / an opaque window |
| Appearance | Auto, Light or Dark |
| agent row | an agent pane's one-line row inside its unfolded space row in the sidebar |
| Archived Sessions | the folded shelf at the sidebar's foot: the closed sessions of Claude Code, Codex, Pi and OpenCode on the machine, read from their own stores; a click resumes one |
| Take Back | the button that moves control of a session to this window, or of a pane to this device |
| OSC 7501 | the Program Status Protocol: an escape sequence a program writes to its terminal to report idle, working, blocked, done or error. herdr does not read it, and the app reads status only from herdr |
| plain-text title | a tab's or pane's title where it cannot dim its second part (⌘K, menus, window titles): the two parts joined by | |
| badge | the Dock tile's count of the agents that need you |
| state icon | a still round icon in the status color: a dashed circle (working), an alert circle (needs you), a check circle (finished); none for idle |
| state label | an agent state as its icon and its word in the status color |
| state box | an agent row's state: its icon and time in a box tinted with the status color |
| status word | working (blue), needs you (orange), finished (emerald), idle (gray); VoiceOver reads it with every state icon |
| seen | this device has shown the agent's last finish to the user: its pane had the keyboard on the page in view of the last key window, and the user left it |
| git state | a space row's branch and its ahead and behind counts, from git status on the machine |
| PTY | the pseudo-terminal a shell runs in; it has one size |
| frame | one message of ANSI bytes from terminal session |
| control / observe | the two stream kinds: control types and resizes; observe only watches |
| control plane / terminal plane | requests and events (herdr's API socket) / terminal streams (terminal session) |
| split tree | herdr's layout: each split cuts a rectangle in two by a ratio |
| split id | split_<n>_<path>: n = place in splits[]; path = root or one digit per step (0 = first child, 1 = second) |
| ControlMaster | one shared SSH connection that later ssh commands reuse |
| relay | a small Perl script, sent with each SSH connection and never installed, that carries every run of a remote machine over one SSH session |
| run | the call the app makes on a machine: run a command and use its stdio |
| envelope | the base64 wrapper every remote command travels in |
terminal_id / pane_id | herdr's id of a terminal process / of a pane slot; the pane id changes on a move to another space, the terminal id on a cold restart |
| cold restart / live update | the herdr server stops, its terminals end, and it starts again / a new herdr server takes over the running terminals, which keep running |
completion_seq | the number of an agent's last finish (working or blocked → idle), from one counter per herdr server. herdr sets it back to null at the agent's next status change. It restarts at 0 when herdr restarts |
| health check | the loop, one per open session, that reads session.snapshot every 30 s, every 2 s while it fails |
| askpass | a small program ssh runs to ask for a password |
MaxSessions | OpenSSH's limit of sessions on one connection (10 by default) |
| Simpler choice | a shortcut taken on purpose, with when to revisit it |