Run local commands and coding-agent phases on a device connected through the Desktop App Companion.
| Node | ID | Use |
|---|---|---|
| Run Command | rollout.client.shell |
Run local shell commands, tests, and repository operations |
| Claude Code | rollout.client.claude_code |
Plan, implement, or continue a Claude Code task |
| Codex | rollout.client.codex |
Execute a Codex task or review a candidate |
Status: Alpha. These nodes provide bounded local execution. Production validation of the complete autonomous SDLC pilot is pending.
Before running
Install the provider's CLI on the device and sign in through that CLI. A subscription session uses the installed provider's account and limits; Rollout does not convert it into a managed API account. Keep provider credentials in the provider's own login mechanism. An Online device or a detected CLI does not prove that sign-in, model access, or capacity is ready.
Enable the required capability in the desktop app and under Resources → Devices. A private workflow can use its owner's eligible private device. Shared workflows need device access appropriate to their audience; they do not inherit the owner's private device access.
Set Working Directory to the assigned repository or worktree. Use an
isolated worktree for implementation and keep one writer for that worktree.
Local client nodes operate on the device's files; the git.* nodes operate on
the workflow runtime's workspace.
Device, approval, and time limits
| Setting | Behavior |
|---|---|
| Target Device | Choose the user's default device, any available shared device, or a specific device |
| If No Device Available | Fail immediately, or queue within the command's bounded wait |
| Approval Required | Device approval is required by default; configure the policy for the intended automation |
| Approval Message | Operator-authored description shown with the requested action |
| Timeout | 10–600 seconds, default 300 seconds, for a finite command phase |
| Approval Timeout | Optional separate approval wait, up to 600 seconds; zero shares the command timeout |
The node's execution timeout and the workflow timeout also apply. Set them to cover the intended phase and any separate approval wait. Split longer work into phases and continue the recorded session. The desktop's internal 30-minute ceiling does not raise the workflow command limit or provide a durable background job.
Continue a coding session
Both coding nodes return session_id. To continue related work, wire that
output to the next node's session_id input and use the same device and
working directory. Codex continuation uses Exec mode and requires an
explicit session ID and working directory; it never chooses the most recent
session implicitly.
A useful sequence is:
- Research and plan in a coding session. Include acceptance criteria, reuse, data flow, permissions, performance, and documentation needs.
- Continue that session to implement the agreed scope in its worktree.
- Run focused checks with Run Command and retain their results.
- Start a fresh read-only review against the exact candidate and requirements.
- Return accepted findings to the implementation session. Recheck changed code before publication.
Record the session ID with the worktree and task. A provider session is not a Rollout workflow run or an AI Agent memory thread. Switching provider requires a handoff of the requirements and artifacts.
Independent review and structured results
Codex Review mode starts a fresh read-only review. Supply the requirements in Prompt and select the candidate through the configured base or supplied diff. Do not pass an implementation session ID to Review. Forking a session also retains its history and does not provide independent review context.
Review returns a structured findings list and derives has_issues from that
list. A valid empty list means no findings. Missing or malformed output,
schema failure, provider failure, and nonzero exit are errors, not a clean
review. Text such as “No issues found” is not a structured verdict.
For a richer report, use a fresh Exec node with the Read-only sandbox and declare the required fields under Outputs → Model produces. Declared fields are validated before they reach downstream nodes. Invalid JSON, missing required fields, or incompatible field types fail the node. Codex also supports a JSON schema file through Output Schema; that path must exist on the selected device.
A clean code review does not establish that tests or performance checks ran. Bind those artifacts and the review to the exact commit or candidate digest. Missing required evidence must keep the delivery gate incomplete.
Results, questions, and recovery
Coding nodes expose the final result, session identity, bounded stdout and
stderr, exit_code, duration, and available provider metadata. Failed or
incomplete provider turns do not become successful results. Keep full logs
and test artifacts outside the bounded console output, and inspect actual
command outcomes before routing to publication.
Failed client commands keep their captured session ID, device, working directory, exit code, and duration in the step error's details when available. Claude turn-limit failures report the provider reason rather than only a generic exit status. Preserve the session and reconcile the phase before an explicit follow-up; a failed phase does not produce a successful report.
For Claude Code, placing mcp__* in Disallowed Tools also prevents inherited
MCP servers and Chrome integration from starting for that command. This uses
the installed CLI's strict MCP configuration without changing its subscription
login. A conflicting managed MCP policy fails the command at startup. Denying
only selected MCP tools does not disable all configured servers.
Use Human Input for an owner decision that research cannot resolve. Keep these gates at the top level for the supervised pilot; nested child suspension is not yet a supported SDLC recovery contract.
Cancellation, timeout, and disconnection attempt to stop local execution. They do not undo files, commits, pushes, or other effects already produced. Before resuming or assigning another writer, confirm the local process state and reconcile the worktree and any external result. Do not blindly retry a mutation after losing its response. These nodes do not promise exactly-once execution across disconnects or crashes.
If subscription capacity is exhausted, preserve the session and worktree and wait for capacity or an owner decision. Changing billing mode or account is a separate choice.