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:

  1. Research and plan in a coding session. Include acceptance criteria, reuse, data flow, permissions, performance, and documentation needs.
  2. Continue that session to implement the agreed scope in its worktree.
  3. Run focused checks with Run Command and retain their results.
  4. Start a fresh read-only review against the exact candidate and requirements.
  5. 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.