> ## Documentation Index
> Fetch the complete documentation index at: https://docs.avibe.bot/llms.txt
> Use this file to discover all available pages before exploring further.

# The Agent Harness

> Durable primitives that let your agent work on its own timeline — schedule, wait, run in the background, and report back.

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](/concepts/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](/concepts/philosophy): 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](/concepts/workbench).

## Reference

Full CLI for each primitive is in [Commands](/reference/commands): `vibe agent`, `vibe task`, `vibe watch`, and `vibe runs`.
