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#
| Inspect | Take over | |
|---|---|---|
| The agent | Keeps working | Is stopped, and the task is held (not dispatched) |
| Workspace (Docker) | Mounted read-only | Writable, the real workspace |
| Workspace (Cloudflare) | A throwaway copy, discarded on close | Writable, the real workspace |
| Network | None | The project's network policy |
| On close | Nothing to save | Your commits are saved to the task branch, and the task can be dispatched again |
- Take over
Choose Take over. SI Fabrik stops the agent and holds the task.
- Work in the workspace
Fix what the agent got stuck on, run tests, and commit on the task branch. Uncommitted changes aren't saved.
- 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.
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.