Skip to main content
Most AI tools only act when you type. The Agent Harness gives your agent its own timeline: a small set of durable primitives it can combine to start work, wait for the right moment, run in the background, and come back with results — without you babysitting a terminal.

The primitives

  • Run — execute one Agent job now. Synchronous when you want an answer, or --async to run in the background.
  • Task — a time trigger. “Every weekday at 9am”, “tonight”, “once after lunch.” Recurring (--cron) or one-off (--at).
  • Watch — a condition trigger. Wait for a PR review, a CI result, a deployment, a file, a log line, or a long-running process — then act.
  • Runs — the history. Inspect what happened, continue from a run, or cancel work when the situation changes.
All four share one run record, so a scheduled task and a watched condition produce the same kind of inspectable Agent Run.

Ask in plain language

You don’t memorize flags. Ask your agent:
  • “Watch this PR and come back when there’s actionable review feedback.”
  • “Run the deployment check every weekday morning and post the summary here.”
  • “Start a separate investigation session for this incident, but report the conclusion to this channel.”
  • “If CI fails, summarize the logs; if it passes, tell me whether the PR is mergeable.”
The agent composes the Harness commands behind the scenes.

Sessions and delivery

A Harness run can continue the conversation it came from — same thread, same context — or fork a fresh session for an independent investigation. When it finishes, it reports back where you want it: the originating thread, a parent channel, or the Workbench Inbox. That’s what lets an agent leave the current turn, work on its own schedule, and still land its results in the right place. For CLI-driven branching, use vibe agent run --fork-session <session-id>. Avibe creates a new Agent Session and asks the native backend to fork the source context. The fork keeps the source backend; --agent, --model, and --reasoning-effort are allowed only as same-backend overrides.

Why it matters

This is the concrete, shipped step toward tension-driven agency: an agent that can leave the current chat turn, wait, return, branch, and keep records — instead of only reacting to your latest message. Self-initiated turns show up live in the Workbench.

Reference

Full CLI for each primitive is in Commands: vibe agent, vibe task, vibe watch, and vibe runs.