hobhob

hob CLI

Look up the commands people and agents use to arrange work, read results, coordinate, and automate in hob.

The hob CLI connects the work people and agents share: projects, panes, conversations, commands, and the results they produce. Agents receive its guidance through managed instructions; use this reference to understand their actions, script supported operations, and look up what a command will change.

Namespace index

NamespacePurposeReference
hob appInstallation, updates, repair, and licenseRun and license hob
hob listCurrent working layout and callerOrient and arrange
hob paneOpen, configure, and read panesArrange, read
hob messageDeliver input to a pane or manage an existing deliveryDeliver and collaborate
hob open, hob closePanels, views, and filesOrient and arrange
hob workspace, hob environment, hob worktreeWorkspaces, snapshots, and checkoutsOrient and arrange
hob search, hob conversationFind and read saved conversationsRead and recover
hob attention, hob walkthrough, hob annotatePoint, guide, and leave markersDeliver and collaborate
hob feedbackPrepare feedback for human reviewBoundaries
hob git, hob issue, hob prReview and record work with provenanceRecord and review
hob automationDefine, validate, run, and inspect workflowsAutomate
hob webhookHosted webhook endpoints that start automationsWebhooks
hob skillCreate, check, list, show, render, and import skills; request reviewsSkills
hob trust listRead organizations, trusted publishers, tracked skills, and approvalsSkills
hob settingsDiscover, read, and change ordinary app preferencesChange app preferences
hob agent verifyVerify the caller's live agent capabilityChoose the command context

Choose the command context

A project directory identifies the work. A live hob connection and, for agent-only operations, a pane capability determine what the caller can do.

Where the command runsAvailable operations
Ordinary shellApp/license commands, hob connection management, and native/headless launch. Issue and PR commands can use their git-platform integration; local hob issues need the live project connection. Non-commit hob git subcommands pass through to Git. hob settings list --defaults discovers settings offline.
Shell with hob's live project connection, such as a hob terminalProject operations including local issues, hob environment list, and automation list/init/show/apply/validate/inspect/run/runs/logs. This does not grant agent-only pane controls.
hob-launched agent or inheriting subprocessAgent-only layout, pane, conversation, attention, walkthrough, annotation, feedback, commit-provenance operations, and current settings reads/writes, subject to the live pane capability and target requirements.

User Commands

Start with hob app --help, hob issue --help, or hob pr --help in an ordinary shell. Use --project-dir /path/to/project for project-aware commands. That flag selects a project; it does not create a connection or grant agent authority.

Agent commands

hob agent verify --json succeeds only with current agent authority. A hob terminal or automation shell step fails this check; an automation agent step receives its own capability. HOB_PANE_ID identifies a pane, but its presence alone is not proof of authorization.

Top-level help hides the agent-context namespaces when no pane context is present. Managed guidance normally arrives at agent launch through Settings → Agents → Agent instructions → hob instructions for agents, without editing repository files. See Working with your agent.

Run and license hob

Launch hob

CommandBehavior
hob /path/to/projectSubmit a native project-open request to the elected Host.
hob --detach /path/to/projectOpen the native presentation without keeping the launching shell attached.
hob --headlessEnable headless service mode and stay attached. In a terminal it asks for a license key when none is active, then runs guided pairing for the desktop app. Ctrl-C requests Host shutdown.
hob --headless --pairRun guided pairing again, also against a Host that runs in the background.
hob --headless --detachEnable the daemon service, print the ready lines, and return to the shell.
hob --headless --port <port>Save the port that desktop connections and the Web IDE use, then start. The Host must be stopped to change it.
hob --config-dir <dir> ...Use another config directory, and so another Host, for this launch or command. See Run more than one Host on a computer.
hob service install, hob service status, hob service uninstallRun the headless Host as an operating-system service that starts it again after a restart. install --replace-running moves a Host that already runs to the service. See Run hob as a service.
hob app path status, hob app path addCheck whether a new login shell finds hob, or add hob's folder to PATH in the shell's startup file (bash, zsh, or fish).
hob connection desktop [off|localhost|lan]Show or set which computers' desktop app can connect to this Host. hob connection access is its older name.
hob connection web-ide [off|localhost|lan]Show or set which browsers can open this Host's Web IDE. It shares one listener port with desktop connections.
hob app versionPrint the installed version.
hob app update, hob app repairUpdate or repair the installation; check subcommand help for options.
hob app uninstallRemove the installation through the uninstall flow.

Headless mode does not accept a project path. Choose the project from the connected desktop app or the Web IDE. Headless mode covers shutdown, the service, SSH, and the lifetime of the elected Host.

License activation

Use hob app license activate, hob app license status, or hob app license deactivate on the machine running hob. For non-interactive activation, supply the key on standard input:

printf '%s\n' "$HOB_LICENSE_KEY" | hob app license activate --key-stdin

Orient and arrange

CommandUse it to…
hob listRead panels, pane types, caller identity, the panes in your workspace and the Dock with their spatial relationships, and one line per workspace with its pane counts. --all lists the panes in every workspace.
hob pane listRead only the pane listing, with the same scope and --all.
hob pane list --unplacedInclude project-owned panes without a workspace/Dock placement. A caller that is itself unplaced, such as a background automation agent, always gets these panes, marked by automation run.
hob pane details --jsonInspect the caller pane's metadata and backend conversation identity.
hob pane rename "Review the counter"Keep the pane title aligned with its task; --id targets another pane.
hob pane open <type>Open agent, terminal, selection, render, web, issue, or pr; choose --workspace, --surface dock, and --focus as needed. A pr pane shows a pull request on the project remote: hob pane open pr --number 373 or --url <pr-url>.
hob pane set --id <pane-id> …Change typed settings such as model, effort, account, permission mode, working directory, or render file. It does not expose arbitrary pane state.
hob pane move <pane-id> --from <source> --to <destination>Move one placement between a workspace and the Dock, leaving other placements intact.
hob pane close [pane-id]Close the caller or a named pane.
hob workspace list, hob workspace details <target>Inspect workspace IDs, environments, panes, and layout.
hob workspace new --name "Counter review"Create a workspace in the caller's checkout; add --focus to switch to it.
hob workspace open <target>, hob workspace rename, hob workspace set, hob workspace closeNavigate or configure a workspace; targets accept a number, name, or ID where supported.
hob workspace stop <target>Stop every agent, terminal, and web preview process in a workspace, then end strays that escaped those stops. The panes stay open and are ready again when shown; the calling agent is skipped.
hob worktree list [--json]List open and closed worktrees with their IDs, managed status, branch, and path. Deleted worktrees drop out.
hob worktree delete <environment-id-or-branch> --yes [--force]Permanently delete a managed checkout, keeping its branch and conversation history. Requires explicit permission to delete; --force also acknowledges uncommitted file loss. See Worktree cleanup.
hob workspace save, hob workspace saved, hob workspace restoreSave, list, and restore named layouts. update-saved and delete-saved manage them. See Saved.
hob environment list --jsonList live checkout environments and their root paths.
hob open panel <name>, hob close panel <name>Show or close a tool panel: home, files, issue, history, automations, bookmarks, shares, sourcecontrol, or pulls.
hob open view automations, hob open view stats, hob open view skills, hob open view issuesOpen the singleton full-page view; hob close view <name> closes it.

An agent pane can choose --backend, --model, --effort, and supported --fast/--no-fast options. Models must be configured picker values; a started conversation cannot move to a different backend. See Parallel agents and Accounts and profiles.

For workspace creation, --environment <id> selects a live checkout; --worktree <branch> uses an existing branch, while --new-branch --start-point <ref> creates a branch and managed worktree. See Projects and workspaces for parallel writers.

Dock placement for cross-workspace work

Use hob pane open render --file notes/roadmap.md --surface dock --focus or hob pane move --to dock; specify --from if the pane has multiple placements. See Dock placement.

Read and recover

CommandUseful selectors and behavior
hob pane view <pane-id>Read an open pane with typed bounds: text --lines 10:30, PDF --pages 1:2, agent --blocks 1:5 (an agent pane gives the same output as hob conversation show), web --nodes 1:50.
hob pane view <terminal-id> --cmd <command-id>Read a specific command's output. --wait waits silently; --watch streams retained output/deltas through completion.
hob search conversations "character counter"Search saved turns in this project; use --any, --role, --agent-type, --since, --until, or --limit. The caller is excluded unless --include-self is supplied.
hob conversation listList saved conversations; filter by agent type or time.
hob conversation show <pane-or-session-id>Read any agent conversation, open or closed, including when the backend transcript is gone. By default it prints the newest 20 blocks, then the recorded topics with their block ranges, then the next command (--before <block-id> reads the page before). Use --blocks, --around <block-id> -C 3, --role, or --topics for the full topic index.
hob pane view <render-pane> --sheet <name> --cells A1:C9 [--json]Read live spreadsheet cells, including unsaved edits.
hob attention pane:<pane-id> --location block:<block-id>Create a recovery link to the matching turn. When played, it can restore a closed pane and focus its workspace.

Terminal --watch subsumes --wait, conflicts with --json, and marks gaps caused by bounded retention. Interactive/TUI commands report unavailable live output and fall back to waiting. See Terminals.

For search grammar, snippets, and the recovery workflow, see History. Preserve the returned IDs for later commands rather than identifying a pane by a guessed title.

Deliver and collaborate

CommandWhat the person sees
hob pane input <pane-id> <text> --appendA visible draft, extended with the text. Without --append, it replaces the draft. Nothing is delivered.
hob message --pane <pane-id> --text <text>An attributed agent message or an executed terminal command block. Terminal sends accept --wait or --watch; --raw sends PTY bytes.
hob message --pane <agent-id> --text <text> --nowExplicit steering during a running turn. The backend determines when it can incorporate the message; see queue and steering.
hob message now <receipt>Deliver an existing queued message during the agent's current turn, without sending a duplicate.
hob message replace <receipt> --text <text> [--now]Replace a queued message. Use the returned successor receipt for later actions.
hob message cancel <receipt>Cancel a queued message. A dispatched message cannot be recalled.
hob message status <receipt>Check delivery state. Dispatched means sent, not processed.
hob pane open agent --task <text>A new agent with its assignment delivered in one operation. Use --task --stdin for exact multiline text.
hob open file <path> --line <n>The file beside the work. Optional --placement right, left, above, or below controls where it opens.
hob pane open web --file index.html --watch style.css,app.jsA live-reloading HTML preview. Inside the project hob serves it, with saved data (page=served); outside, it opens sandboxed (page=artifact). URL/server recipes use --url, --command, --cwd, and optional --start; see Browser previews.
hob serve start <folder> [--entry <file>]A web pane that serves a project folder with saved data and live reload. hob serve list shows served pages; stop, restart, and clear take a pane ID.
hob attention <target> --message <text>Immediately reveal one target with a spotlight and optional card; retain a marker. The returned link replays it.
hob walkthrough search <topic>, hob walkthrough create --items <json>A library guide or a new ordered tour. hob walkthrough targets discovers valid UI targets.
hob revision create <old_file> <new_file> [--expected-fingerprint <value>]Save both versions and install the result at the original path. See saved file revisions; sending markup creates no revision.
hob revision list <file> / hob revision restore <revision-id>List or restore retained file versions. Restore keeps the replaced bytes as another revision.
hob annotate --items <json>A link applying durable markers to one file/pane content surface. See Mark up and annotate.
hob feedback --note <text>A locally stored feedback draft for the person to review and submit. --problem marks a problem; --screenshot <path> attaches an existing image.

New messages use --pane to select the destination. Actions on an existing agent message take its receipt: message status, cancel, replace, or now. New messages and replacements both accept --text <text>, --text-file <path|->, or --stdin. Replacement returns a successor receipt for later actions.

A web node belongs to one snapshot. Use the node and fingerprint returned by the read together; substitute actual values for these illustrative placeholders:

hob pane view web_123
hob attention pane:web_123 --location node:n7 --fingerprint 'returned-fingerprint'

Continue reading that snapshot with --nodes and --fingerprint. Stale or missing elements degrade honestly. Annotations stay within one content surface; walkthroughs can mix surface types but use at most one web pane per set. See Working with your agent for what these interactions look like.

Record and review

CommandResult and provenance
hob git status, hob git diff, hob git logStandard Git inspection through hob's wrapper. Other non-commit Git arguments pass through too.
hob git commit -m "Add note character counter" --link-pane <reviewer-id>Make the commit and link it to the current turn; repeat --link-pane for contributing panes. Standard amend/pathspec forms are supported.
hob issue create --local --title <title> --body <markdown>File a local issue immediately and return its project-bound link. --labels a,b gives it labels. Agent-created issues retain origin-turn provenance; --link-pane adds contributors.
hob issue list, hob issue start <id>, hob issue complete <id>Find and track local work. hob issue list --label <name> keeps the issues with that label. hob issue start --remote <number> (or --url) marks a connected issue In Progress at its source.
hob issue edit --local <id>, hob issue edit <number-or-url>Edit a local or connected issue while preserving omitted fields. Both take --labels, --add-label, and --remove-label; a local issue takes any label name. Both take --in-progress true or --in-progress false, which changes only the status. Connected issues also take --assignees, --add-assignee, and --remove-assignee; @me names the account the source's token signs in as.
hob issue view --local <id>, hob issue view <number>, hob pr view <number>Show one item with its exact hob link on the Link line; remote issues can use --source <source>, and a Linear key such as ENG-123 names its team.
hob issue list --remote, hob issue view <number>Search remote issues before you file a new one, and read one issue's state, labels, and description. Add --local to view a local issue.
hob issue create, hob issue comment, hob issue closeCreate or update git-platform issues. Destructive deletion requires explicit --local or --remote scope. hob issue close <ref> --moved-to <url> closes an issue that was written up again elsewhere as Moved, not as done; add --local <id> for a local issue.
hob issue move <ref> --to <source>, hob issue move --local <id> --to <source>Move an open issue to another source as it is, with its labels and status. --to local moves a remote issue to local issues. The old issue closes as Moved.
hob pr list, hob pr view <number>Find remote PRs and read one PR's state, branches, and description.
hob pr create, hob pr edit, hob pr comment, hob pr closeWork with the current branch's PR or a specified platform PR; use subcommand help for required fields. Each records the current turn; --link-pane adds contributors.
hob link commit <revision>, hob link issue <number>, hob link pr <number>, hob link annotations <id>, hob link walkthrough <id>Link the current turn, and any --link-pane panes, to an existing artifact without changing it. hob link issue --local <id> targets a local issue.

Inside hob, prefix every Git command with hob. Run commits from the repository you intend to change, including nested repositories. Provenance links help you return to the conversation that produced something; they do not verify correctness. See Commits and artifacts and Issues.

Automate

CommandPurpose
hob automation list, hob automation show <id-or-name>Find registered workflows and their bundle paths.
hob automation run <id-or-name> --waitStart a new execution.
hob automation runs [id-or-name], hob automation logs <run-id>Read run status and output.

Use paths returned by init/show; do not invent registry paths. Linked builder agents may omit the automation ID for supported show/apply/inspect operations. The Automation reference owns complete flags, YAML, expressions, environments, and run-history contracts. hob open view automations opens the human-facing builder and run view.

Change app preferences

Use these commands for clear requests to change running hob preferences. The /settings prefix is an optional helper. Scope defaults to global; --scope project targets the calling agent's project where supported. See Settings for the request and review workflow.

CommandPurpose
hob settings list [filter] [--json]Discover keys, descriptions, types, scopes, defaults, values, and restrictions
hob settings list --defaultsDiscover the catalog offline, without current values
hob settings get [key] [--json]Read a key or all ordinary preferences in the selected scope
hob settings set <key> <value>Set one typed value; use JSON for booleans, numbers, arrays, and objects
hob settings reset <key>...Remove global overrides or restore project inheritance
hob settings patch <json> or hob settings patch --stdinApply {"updates":{"key":"value"},"unsetKeys":[]} atomically in one scope

Write directly when the supported key and value are clear. Otherwise use list for discovery; it already includes current values. Read object values first: a replacement does not merge with the existing object. Current reads and writes require a live agent capability. Credentials and managed state retain dedicated operations. Writes return saved effective values and their sources for the affected keys, including inheritance after a project reset. Report that result without a separate read-back call. Saving a preference does not apply effects that require a restart. Clear follow-up requests do not need a /settings prefix.

Command boundaries

BoundaryContract
Draft vs deliverypane input edits a draft; message delivers a message or executes a command.
Queue vs steeringAgent sends queue by default until the turn ends. message --now explicitly steers ongoing work; it is agent-only and cannot be combined with terminal --raw, --wait, or --watch.
Links vs navigationAttention, walkthrough creation, annotation, feedback, and issue creation/linking print exact deep links to include unchanged in the reply. Attention presents immediately and its link replays the pointer. Walkthrough and annotation links wait for a click. Issue creation files the issue immediately; feedback stores a draft.
Readingpane view is read-only and bounded. Typed unavailable content exits 3; it is not an empty successful result. Web nodes need their matching snapshot fingerprint.
DelegationUse pane open agent --task in one call. open followed by input leaves an unsent draft.
Agent repliesThe recipient sends its final answer to the source pane with message. The sender does not poll or read the recipient merely to retrieve the answer.
Human choiceOpen an issue or PR pane only when requested. Walkthroughs and annotations are opt-in; use walkthrough play only when the person explicitly asks to start it now.
Feedbackfeedback stores a draft; it cannot send feedback or make the person's diagnostic-sharing choices.
Worktreesworktree delete needs --yes, a managed worktree, and an agent outside that worktree. --force never overrides live automation runs or remaining open panes.
SettingsAgents can act on clear settings requests. /settings is an optional guidance helper. Credentials and managed state are excluded from ordinary settings writes.
Automation trustThe CLI can request a shared run but cannot approve it. Report pending human approval; do not retry to bypass it. See Trust.
Skill reviewskill review, skill install, and skill update <name> only request a review and print its link. They exit 4 when a person must act. The CLI cannot approve skills or import into personal skills. See Skills.

Compose a small workflow

These examples run from a hob agent. IDs below are illustrative: use the actual pane IDs from hob list, command ID returned by the terminal send, and the pane that sent the assignment. Run the example check only with Node installed.

Ask the terminal, read the result, reply

hob message --pane terminal_123 --text "node --check app.js" --wait
hob pane view terminal_123 --cmd 42
# Reply only after reading the actual result; use the source agent's pane ID.
hob message --pane agent_456 --text "The JavaScript syntax check passed. Behavior still needs review."

That final message assumes the check passed. If it failed, send the actual failure and relevant output instead. A syntax check does not verify guestbook behavior; Testing supplies the next checks.

Orient, open, point

When the person asks to see how the guestbook stores notes:

hob list
hob open file app.js --line 3 --placement right
hob attention file:app.js --location line:3 --message "This key keeps guestbook notes in this browser's local storage."

Line 3 is the storage key in the unmodified example; verify the line if the file has changed. Include the exact attention link printed by the last command in your reply, with a descriptive label, so the person can select it.

Options and agent-readable docs

OptionMeaning
--help, -hShow command/subcommand help without carrying out the operation.
--jsonStructured output for supported commands; terminal --watch is incompatible.
--debugConnection/resolution details for supported commands.
--project-dir <path>Select the project for project-aware commands. Issue/PR resolution tries this first, then the current Git root and HOB_PROJECT_DIR.
--stdinSupply the command's specified payload from standard input. Pair it with the payload flag where required: --task --stdin, --body --stdin, or --message --stdin.

Pane input, terminal commands, and initial agent tasks preserve literal text. For long multiline payloads, use a single-quoted heredoc and the supported stdin form. Never treat an unset project/window or unavailable content as permission to guess a target; inspect the error and resolve the context first.

Every guide has Copy Markdown and an Open menu for its .mdx URL. Give an agent the page relevant to the task; the prose and examples are available without downloading screenshots.

Next

On this page