Agents

Terminal: inspect and take over

Open a shell where the agent runs, to look around while it works or to take over the task yourself.

Open Terminal in Sandbox gives you a shell inside the task's sandbox, with the same image and workspace the agent uses. You choose between looking around while the agent keeps working, and stopping the agent to work in its place.

Open a terminal#

Open it from any of these:

  • the terminal button on a running agent in Live Agents;
  • a task's context menu on the Board: Open Terminal in Sandbox…;
  • Terminal in a task's Workspace section, or on a row in the Workspaces tab;
  • the deep link harness://terminal/<project>/<task>.

Then pick a mode and press Open Terminal. The terminal opens in a sheet titled Terminal · <task>, with the mode shown as a pill.

Modes#

InspectTake over
The agentKeeps workingIs stopped, and the task is held (not dispatched)
Workspace (Docker)Mounted read-onlyWritable, the real workspace
Workspace (Cloudflare)A throwaway copy, discarded on closeWritable, the real workspace
NetworkNoneThe project's network policy
On closeNothing to saveYour commits are saved to the task branch, and the task can be dispatched again
  1. Take over

    Choose Take over. SI Fabrik stops the agent and holds the task.

  2. Work in the workspace

    Fix what the agent got stuck on, run tests, and commit on the task branch. Uncommitted changes aren't saved.

  3. Close the terminal

    When the session ends, the sheet says Close to save the branch and let the agent resume. Closing saves the task branch into the project repository and releases the task, so the next poll can dispatch it again. The agent picks up from your commits.

Note

For projects that run agents on the host (no sandbox), the terminal is a shell on your Mac, and the sheet says so. For projects on a harnessd server, the terminal runs in the server's sandbox over a WebSocket; the server and the app ping each other every 20 seconds, so an idle terminal stays open, even behind a load balancer.

Terminal containers#

In Docker, the terminal is its own container (role terminal), with the same isolation as the agent: no capabilities, a read-only root filesystem and pid and memory limits. A take-over terminal joins the task's own network, and opening one never interrupts running agents. Closing the sheet removes it. Terminal containers left over from a crash are removed when SI Fabrik starts.

See also#