Feature · Platform

Runners

On macOS, work on your runner runs in a sandbox. It can write only its own task folder and reach only the model vendor and allowed package registries.

Last changed

Generated from commit be57775 ·

How it works

Where work happens

Each task gets its own folder under ~/.agent-runner/sandbox. For code work, the runner clones the repository there with your own git access and removes the clone's remote. Work comes back to Agent as a diff. The runner never pushes, opens a pull request or changes a tracker. Agent checks the diff, then applies, verifies and delivers it.

The macOS sandbox

On macOS, the CLI and everything it starts run in a sandbox that denies by default:

  • It writes only the task folder and the CLI's own login location.
  • It cannot change the clone's .git folder or your settings.
  • Its only network is the runner's proxy. The proxy reaches the CLI's vendor and, when the repository allows installs, the package registries Agent names.
  • It keeps only the environment variables its CLI needs. Your other tokens stay out.
  • It cannot use the keychain or other secret stores, except Claude Code's own sign-in item.

Shell commands

A runner started with --allow-shell lets work use the CLI's shell. Where there is no sandbox, such as Linux, such a runner takes no shell work. See Runner platforms.

A result with a secret in it

When a result contains something shaped like a token, the whole result is refused. Only the reason goes back.

From the help article The runner's sandbox, checked against the product on .

What you can do

The operations this feature's screens call. Each one is POST /api/<name>, and the badge says who may call it.

  • listLocalRunners

    Member

    Lists local runners.

    Types: ListLocalRunnersRequest returns LocalRunnerListDto

  • listRunnerTasks

    Member

    Lists runner tasks.

    Types: ListRunnerTasksRequest returns RunnerTaskListDto

  • getPlanUsage

    ViewerNo API tokens

    Gets plan usage.

    Types: GetPlanUsageRequest returns PlanUsageDto

  • getLocalRunnerSettings

    Viewer

    Gets local runner settings.

    Types: EmptyRequest returns LocalRunnerSettingsDto

  • revokeLocalRunner

    MemberNo API tokens

    Revokes the local runner.

    Types: LocalRunnerIdRequest returns LocalRunnerDto

  • updateLocalRunnerSettings

    AdminNo API tokens

    Updates local runner settings.

    Types: UpdateLocalRunnerSettingsRequest returns LocalRunnerSettingsDto

  • createLocalRunner

    MemberNo API tokens

    Creates a local runner.

    Types: CreateLocalRunnerRequest returns CreateLocalRunnerResult

  • createRunnerTask

    MemberNo API tokens

    Creates a runner task.

    Types: CreateRunnerTaskRequest returns RunnerTaskDto

  • getRunnerTask

    Member

    Gets the runner task.

    Types: GetRunnerTaskRequest returns RunnerTaskDetailDto

  • cancelRunnerTask

    Member

    Cancels the runner task.

    Types: RunnerTaskIdRequest returns RunnerTaskDto

  • getHostLoginSettings

    Viewer

    Gets host login settings.

    Types: EmptyRequest returns HostLoginSettingsDto

  • updateHostLoginSettings

    AdminNo API tokens

    Updates host login settings.

    Types: UpdateHostLoginSettingsRequest returns HostLoginSettingsDto

  • listMembers

    Viewer

    Lists members.

    Types: EmptyRequest returns ListMembersResponse

Screens

What it records

The feature writes these events to the audit log, the permanent record of what happened.

  • Policy changed
  • Connector run reported
  • Connector run started
  • Delegate ended
  • Vendor trigger fired
  • Vendor trigger removed
  • Vendor trigger saved

Generated from code at commit be57775 ·

Turn the numbers into shipped work.

Agent runs these choices for you: a persistent AI worker with memory and rules, on your Claude and Codex subscriptions.