Skip to content

Switch coding agents

Change the agent Shipper uses globally or for a specific prompt-running stage. Use .shipper/settings.json for committed repository defaults.

  1. Set the default coding agent.

    Edit .shipper/settings.json and set commands.default.agent. The only valid values are "claude", "codex", "copilot", and "opencode".

    Before switching, review Supported coding agents for each agent’s CLI prerequisite, repository config file, MCP defaults, and current limitations.

    {
    "commands": {
    "default": {
    "agent": "codex"
    }
    }
    }
  2. Override individual stages when needed.

    Add entries under commands for the stages that should use a different agent. Use underscore keys for PR commands.

    {
    "commands": {
    "default": { "agent": "claude" },
    "implement": { "agent": "codex" },
    "pr_review": { "agent": "copilot" },
    "setup": { "agent": "opencode" }
    }
    }
  3. Use only supported stage keys.

    Valid per-step override keys are new, groom, design, plan, implement, pr_open, pr_review, pr_remediate, unblock, and setup.

  4. Check the reference when you need more settings fields.

    Use Reference > Settings for the full settings schema and Reference > CLI for command details.

  5. Override a single run when needed.

    Pass --agent opencode on prompt-running commands to use OpenCode for that invocation without changing repository defaults.

Verify that .shipper/settings.json is still valid JSON after editing.

Terminal window
node -e "JSON.parse(require('node:fs').readFileSync('.shipper/settings.json', 'utf8'))"