Override settings
Override settings
Section titled “Override settings”Edit .shipper/settings.json for committed repository defaults. Use
.shipper/settings.local.json for local-only overrides that should stay gitignored.
-
Set the dependency install command.
{"installCommand": "npm install"} -
Set the default base branch.
{"defaultBaseBranch": "main"} -
Override MCP loading for individual stages.
{"commands": {"groom": { "disableMcp": true },"implement": { "disableMcp": false }}} -
Set a default model for prompt-running commands.
{"commands": {"default": { "agent": "claude", "model": "opus" }}} -
Add worktree environment variables.
{"worktreeEnv": {"UV_CACHE_DIR": ".shipper/tmp/.uv-cache"}} -
Require passing checks before merge.
{"merge": {"requirePassingChecks": true}} -
Put machine-local overrides in
.shipper/settings.local.json.Shipper merges settings in this order: built-in defaults ->
.shipper/settings.json->.shipper/settings.local.json. -
Keep the full schema in the reference.
Use Reference > Settings for the complete settings table.
Verification
Section titled “Verification”Verify that .shipper/settings.json is still valid JSON after editing.
node -e "JSON.parse(require('node:fs').readFileSync('.shipper/settings.json', 'utf8'))"