runner

run your server's tasks on this machine

Run your Coder server's tasks on your own machine, reached through any tunnel.

runner add <kind> [--name <name>] [--scope <scope>] [--field <field>] [--server <server>] [--yes] [--json]

connect a runner

Connect a runner. Secret fields read environment variables with key=env:VARIABLE. Adding local prints a pairing command.

  • <kind> the runner kind, such as local or http
  • --name <name> runner display name
  • --scope <scope> personal or workspace
  • --field <field> repeat for each field, use env:VARIABLE for secrets
  • --server <server> act on your Coder server, in the saved workspace
  • --yes connect to a server used for the first time without asking
  • --json JSON output

runner default <id> [--server <server>] [--yes] [--json]

set the default in its scope

Use this runner by default within its scope.

  • <id> the runner
  • --server <server> act on your Coder server, in the saved workspace
  • --yes connect to a server used for the first time without asking
  • --json JSON output

runner test <id> [--server <server>] [--yes] [--json]

check a runner connection

Check the runner connection.

  • <id> the runner
  • --server <server> act on your Coder server, in the saved workspace
  • --yes connect to a server used for the first time without asking
  • --json JSON output

runner serve [--url <url>] [--token <token>] [--runner-url <runner-url>] [--port <port>] [--name <name>] [--workspace] [--server <server>] [--yes] [--json] [--cwd <cwd>]

run your server's tasks on this machine

Run tasks on this machine with its own claude and codex logins. Expose the port with any tunnel (cloudflared, ngrok, Tailscale Funnel or a public VS Code port) and pass the tunnel's URL; each start registers the current URL, so a changing tunnel URL is fine. Choose a default with coder runner default. Tasks use their named runner, the agent setting, your default, the workspace default, then the server default.

  • --url <url> the HTTPS address the server reaches this runner at
  • --token <token> one-use pairing token, --url is the Coder server
  • --runner-url <runner-url> public tunnel address when pairing, or CODER_RUNNER_URL
  • --port <port> local port the tunnel forwards to (default 4100)
  • --name <name> shown in the dashboard (default: this machine's hostname)
  • --workspace run every member's tasks, not only yours (owners and admins)
  • --server <server> act on your Coder server, in the saved workspace
  • --yes connect to a server used for the first time without asking
  • --json JSON output
  • --cwd <cwd> workspace directory; default current
cloudflared tunnel --url http://localhost:4100  # expose the port in one terminal
coder runner serve --url https://abc.trycloudflare.com  # then serve through it

runner list [--server <server>] [--yes] [--json]

list your runners and the workspace's

  • --server <server> act on your Coder server, in the saved workspace
  • --yes connect to a server used for the first time without asking
  • --json JSON output

runner rename <id> <name> [--server <server>] [--yes] [--json]

rename a runner

  • <id> the runner
  • <name> its new name
  • --server <server> act on your Coder server, in the saved workspace
  • --yes connect to a server used for the first time without asking
  • --json JSON output

runner remove <id> [--server <server>] [--yes] [--json]

remove a runner

  • <id> the runner
  • --server <server> act on your Coder server, in the saved workspace
  • --yes connect to a server used for the first time without asking
  • --json JSON output