Skip to main content

Configuration

arc reads two configuration files:

FileLocationWho owns it
.arc/config.jsonIn your repo, committedTeam-shared settings
.arc/state.jsonIn your repo, git-ignoredPer-clone state (not configuration)

.arc/config.json

Committed to the repo and shared with your team. Create it with arc config set or by writing the JSON directly.

Full schema

{
"hooks": {
"pre-submit": ["command", "..."],
"post-submit": ["command", "..."],
"pre-push": ["command", "..."],
"post-push": ["command", "..."],
"pre-sync": ["command", "..."],
"post-sync": ["command", "..."],
"pre-land": ["command", "..."],
"post-land": ["command", "..."]
},
"feedback": {
"enabled": true
},
"auto_promote_on_land": true,
"link_github_stack": true
}

All keys are optional.

hooks

Shell commands to run on arc events. Each event takes a list of commands. Commands run in order; any non-zero exit from a pre-* hook aborts the arc command.

{
"hooks": {
"pre-submit": ["npm run lint", "npm test"],
"post-push": ["scripts/notify-team.sh"]
}
}

For richer hooks (access to branch context, JSON data on stdin), use executable files in .arc/hooks/ instead. See Hooks.

feedback.enabled

Controls whether arc periodically shows usage hints. Default: true. Set to false to silence them:

arc config set feedback.enabled false

auto_promote_on_land

After arc land, automatically mark the new bottom-of-stack PR as ready for review. Default: true. Set to false to keep the next PR in draft.

After arc submit, once 2+ PRs exist in the chain, register it as a native GitHub stack via GitHub's stack REST API — no third-party CLI extension required. Gets you github.com's own stack UI (stack map, atomic bottom-up merge) on top of PRs arc is still driving underneath. Best-effort: a failure never blocks arc submit. Default: true. Set to false to skip it.


arc config commands

arc config list # print all key=value pairs
arc config get feedback.enabled # get one value
arc config set feedback.enabled false # set one value

Keys use dot notation for nested fields (hooks.pre-submit).


Environment variables

VariableEffect
NO_COLORDisable color output (same as --no-color)
ARC_NO_INPUTNever prompt (same as --no-input)
GH_HOSTGitHub Enterprise Server hostname (passed through to gh)