Set up a repository with dispatcher init
Put your Linear API key where the binary looks for it (either works):
LINEAR_API_KEYin the environment, or.secrets/api-keys.jsonat the repository root containing{"Linear": "lin_api_..."}, with.secrets/in.gitignore.
Then, at the repository root:
dispatcher init
It asks for the repository (defaulted from the git remote) and the platform,
lets you pick the team, the project and which state plays each of the seven
roles, asks for the two label names, and optionally for the two GitHub Apps.
It writes dispatcher.config.json, enables the Claude Code plugin in
.claude/settings.json, and prints a checklist of anything still missing.
Running it again changes nothing that exists.
Two values it cannot discover are written as TODO: the ids of the two
Linear agent app users in linear.agents. Set up Linear
shows how to create them and find the ids.
Verify:
dispatcher board config
dispatcher board states
dispatcher board poll <milestone>
Then do the one-time Linear and GitHub Apps setup, add the review sync workflow, and run the loop.