Local Runner

The Local Runner is a persistent CLI process that turns your machine into a task runner for Shipchart delegations. Plan features in the web UI, delegate to "Local Runner," and tasks execute directly on your machine using your own Codex or Claude Code installation.

Why use it

  • Zero compute credits — runs on your machine, not Shipchart infrastructure
  • Full environment access — your database, your test suite, your tools
  • Uses your own auth — no API keys to configure in Shipchart
  • Concurrent tasks — run multiple tasks simultaneously with git worktree isolation
  • Automatic PRs — changes are committed, pushed, and a PR is opened via GitHub CLI

Prerequisites

  • Shipchart CLI installed and authenticated (shipchart auth login)
  • Project linked via .shipchart.yml (shipchart init)
  • Codex CLI or Claude Code installed and authenticated
  • GitHub CLI (gh) installed and authenticated for automatic PR opening (recommended; required for PR code review delegations, as the agent uses gh pr review to post comments)
  • Git configured with push access to the repo

Quick start

cd ~/projects/your-app
shipchart init
shipchart worker

The worker will connect to Shipchart and begin polling for delegated tasks. You'll see a status message confirming the connection and the coding agent it detected.

Configuration flags

Flag Description Default
--agent codex|claude Which coding agent to use Auto-detected
--max-concurrent N How many tasks to run simultaneously 1
--name "My MacBook" Custom worker name shown in the web UI Hostname
--poll-interval N How often to check for tasks (seconds) 5
shipchart worker --agent claude --max-concurrent 3 --name "Dev Machine"

Agent binary overrides (optional)

If the worker cannot detect a local agent binary (common when GUI apps have a different PATH), set explicit binary paths. In the macOS app, open Worker settings and fill the optional Codex/Claude/Gemini binary path fields.

For CLI-only usage, you can set environment variables before starting the worker:

export SHIPCHART_AGENT_CODEX_PATH=~/.local/bin/codex
export SHIPCHART_AGENT_CLAUDE_PATH=~/.local/bin/claude
export SHIPCHART_AGENT_GEMINI_PATH=~/.local/bin/gemini
shipchart worker

How it works

  1. 1Start shipchart worker in your project directory
  2. 2Delegate a task in the Shipchart web UI, selecting "Local Runner"
  3. 3The CLI picks up the task within seconds
  4. 4A git worktree is created for isolation — your working directory is untouched
  5. 5Codex or Claude runs in the worktree with full local environment access
  6. 6Changes are committed, pushed, and a PR is opened automatically
  7. 7The worktree is cleaned up
  8. 8Results appear in the Shipchart web UI

PR code reviews

The Local Runner can also perform AI-assisted code reviews on pull requests. From the Code tab on your project page, click the Review button next to any PR. The agent will check out the PR branch, review the diff for bugs, security issues, and code quality concerns, then post review comments directly on GitHub using the gh CLI.

Requirements: The gh CLI must be installed and authenticated on the machine running the local worker. The agent uses gh pr review to submit comments, so ensure the authenticated GitHub account has write access to the repository.

Worktree isolation

Each task runs in its own git worktree inside a sibling .shipchart-tasks/ directory. Your main checkout is never modified, so you can continue working while tasks execute. Multiple tasks can run concurrently in separate worktrees without interfering with each other.

your-app/                  # Your working directory (untouched)
.shipchart-tasks/
  task-abc123/             # Worktree for task 1
  task-def456/             # Worktree for task 2

Graceful shutdown

Press Ctrl+C once to initiate a graceful shutdown — the worker will stop accepting new tasks and wait for any active tasks to finish before disconnecting. Press Ctrl+C again to force an immediate exit.

Local Runner vs Shipchart Runner

Choose the runner that best fits your workflow.

Local Runner Shipchart Runner
Cost Free (your machine)Compute credits
Environment Full local (DB, tests, all tools) Sandboxed container
API keys Your local Codex/Claude auth Keys in Secrets Manager or managed proxy
Speed Depends on your machineConsistent Fargate compute
Setup CLI + coding agent installed Just click delegate
Best for Heavy usage, full test runs Quick tasks, no local setup needed

Troubleshooting

"No coding agent found"

Install Codex CLI or Claude Code, then try again. You can also specify one explicitly with --agent codex or --agent claude.

"No project found"

Run shipchart init in your project directory to create a .shipchart.yml file and link the project.

Worker disconnects

Check your internet connection. The CLI will automatically reconnect with exponential backoff. If the problem persists, restart the worker.

Task fails with git errors

Check for uncommitted changes on the main branch. The worker creates worktrees from the current branch head, so a clean working tree avoids conflicts.