Ovvi

Glossary

The words these docs use

WordMeaning
multiplexera 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 TUIherdr's own text interface, run in a terminal app
machine / hosta 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 Macthe Mac the app runs on
sessionone herdr server on a machine (default, pi-herd, …)
spacea 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
pageone 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
windowan Ovvi window. It shows one machine and keeps its own selection; the user can open several
HostStorethe app's live model of one open session, shared by every window that has its page
machine button / space buttonthe title-row button with the machine's icon / the title-row button "‹page title› | ‹space›", shown while the sidebar is collapsed
Open Sessionthe 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 pagethe main area: the selected tab's cards in herdr's layout
tab capsuleone tab in the tab bar
pane cardhow 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
chooserthe list a new pane shows first: Terminal, Agent, Browser, File Explorer, Git and every other plugin with a chooser row
browser panea herdr pane labeled ovvi:browser#<iid> <url>, which the app draws as a web page
plugin pane / default pluginsa 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)
manifestthe ovvi key of a plugin's package.json: its id, name, entry, icon, what it opens, its header, commands and settings
registrythe 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 carda 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 / ovvithe 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 openan 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 pagethe 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 backgroundan 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)
landingthe 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 dotthe dot after a plugin card's title while it has unsaved edits (card.setDirty)
Git homea Git card's first page: the branch, Fetch, Pull, Push, Commit, the changes and the history of every branch
toasta one-line glass capsule at the top of a plugin card with two buttons, for example Reload or Keep Mine
info viewa plugin card's view of a file it does not show: the type's icon, the name, the kind and the size
breadcrumbsA 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 viewan 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 Chatthe button that starts an agent running without Ovvi's flags again with them, in the same session
session titlethe 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 / markerthe 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
adapterone agent's side of the chat view: its launch line, marker, followers, Stop keys and answers (ChatAdapter)
side filesthe hooks' and plugins' small files under ~/.cache/ovvi/ on the pane's machine
pi-ovvithe 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
iida browser or plugin pane's instance id: 6 characters of [a-z0-9] in its label, which names its state file
placeholderthe small script a browser or plugin pane runs in herdr, so herdr's TUI shows what the pane is
keyboard cardthe card that gets typed keys, one per tab; the app's own choice, never herdr's focus
program iconthe icon of the program that runs in a pane, from Ovvi's own catalog; a tab shows a stack of them
hover cardthe panel that shows a tab's panes when the pointer rests on a title-bar tab or an agent row
overviewevery tab of the session as a miniature of its page, drawn from pictures, grouped by space (⌃⌘O)
floating panea pane shown in a small window of its own; herdr keeps it in its tab
ovvi commandthe script at ~/.cache/ovvi/bin/ovvi on each machine, through which an agent asks Ovvi for cards, floats and plugins
agent requestone run of the ovvi command: a file in the machine's mailbox and the ovvi-req token on the asking pane
noticethe short capsule at the bottom of the tab page after a failed action
Glass / Classicthe two interface styles: a window with a behind-window blur / an opaque window
AppearanceAuto, Light or Dark
agent rowan agent pane's one-line row inside its unfolded space row in the sidebar
Archived Sessionsthe 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 Backthe button that moves control of a session to this window, or of a pane to this device
OSC 7501the 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 titlea tab's or pane's title where it cannot dim its second part (⌘K, menus, window titles): the two parts joined by |
badgethe Dock tile's count of the agents that need you
state icona still round icon in the status color: a dashed circle (working), an alert circle (needs you), a check circle (finished); none for idle
state labelan agent state as its icon and its word in the status color
state boxan agent row's state: its icon and time in a box tinted with the status color
status wordworking (blue), needs you (orange), finished (emerald), idle (gray); VoiceOver reads it with every state icon
seenthis 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 statea space row's branch and its ahead and behind counts, from git status on the machine
PTYthe pseudo-terminal a shell runs in; it has one size
frameone message of ANSI bytes from terminal session
control / observethe two stream kinds: control types and resizes; observe only watches
control plane / terminal planerequests and events (herdr's API socket) / terminal streams (terminal session)
split treeherdr's layout: each split cuts a rectangle in two by a ratio
split idsplit_<n>_<path>: n = place in splits[]; path = root or one digit per step (0 = first child, 1 = second)
ControlMasterone shared SSH connection that later ssh commands reuse
relaya small Perl script, sent with each SSH connection and never installed, that carries every run of a remote machine over one SSH session
runthe call the app makes on a machine: run a command and use its stdio
envelopethe base64 wrapper every remote command travels in
terminal_id / pane_idherdr'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 updatethe herdr server stops, its terminals end, and it starts again / a new herdr server takes over the running terminals, which keep running
completion_seqthe 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 checkthe loop, one per open session, that reads session.snapshot every 30 s, every 2 s while it fails
askpassa small program ssh runs to ask for a password
MaxSessionsOpenSSH's limit of sessions on one connection (10 by default)
Simpler choicea shortcut taken on purpose, with when to revisit it