Control panel
Your Symphony repositories from one page: the board, the queue, the workers, the checks and the pull requests, and a box to ask Claude. The page talks to GitHub’s API as you, from this browser, and to nothing else; the token stays in this browser. Every state here is written in words and every action is a button or a link with a name, so you and a browsing Claude read and drive it alike. Open /symphony/control/?repo=OWNER/NAME to land on one repository. What it costs, against the other ways of running agents, is on the cost page.
Sign in
Sign in with your GitHub account: GitHub asks whether SymphonyBoard may act as you, and a small stateless service turns GitHub’s one-time code into a token and keeps nothing. The token reaches only the repositories the App is installed on, with the App’s own permissions.
Or paste a token of your own:
Add a repository
A repository Symphony set up carries the topic symphony. Name one to put it on the list; name one without the topic and the page gives you the two presses that set Symphony up on it, through the App’s own install page with that repository selected. A new repository starts at github.com/new; come back with its name.
Board
The file STATE.md on the branch board, as the board workflow last wrote it: the claims, the open pull requests, the overlaps, the queue, the issues given to workers and the blockers.
Tasks
The open issues by the protocol’s labels. An issue labelled todo and held by nobody is free for any session or worker to claim; one a worker’s label names waits for that worker; a claim is a branch claude/N. Give an issue to a worker from its row, or ask Claude about it. Open the Task form on GitHub for the same with GitHub’s own page.
Queue: unclaimed, given to no worker
| Issue | Title | Labels | Worker | Updated | Actions |
|---|
Given to workers, not yet claimed
| Issue | Title | Labels | Worker | Updated | Actions |
|---|
Claimed, at work
| Issue | Title | Labels | Worker | Updated | Actions |
|---|
In review
| Issue | Title | Labels | Worker | Updated | Actions |
|---|
Blocked, and blockers
| Issue | Title | Labels | Worker | Updated | Actions |
|---|
Epics, which the coordinator plans
| Issue | Title | Labels | Worker | Updated | Actions |
|---|
Opens an issue labelled todo in the Task form’s shape. A worker in Actions wakes on the label; any session may claim it.
Ask Claude
Write what you want done or answered. Ask Claude opens an issue that mentions @claude, or comments on the issue or pull request whose number you give, and the repository’s Claude workflow answers there on the repository’s own Claude token, within the turn cap the workflow sets. Queue as a task files the same words as a task for the workers and the sessions instead.
Workers
The registry under .github/symphony/workers/: each routine or worker in Actions is one file there, and a person’s sessions need none. Adding one opens the “Add a worker” issue; its workflow checks the answers and opens the pull request that adds the file, which joins the registry when it merges. The same form on GitHub: Add a worker.
| Name | Runs | For | Area | Lands | Model | Turns | Rounds |
|---|
Pull requests
The open pull requests with the state of the checks on each head. Merge becomes pressable once a pull request is ready and every check has passed; it asks once more, then merges with a merge commit, which needs Contents set to Read and write on the token, and the merge closes the issue the pull request says it closes.
| Pull request | Title | Branch | State | Checks | Updated | Actions |
|---|
Checks and runs
The latest GitHub Actions runs: the required check, the board, the workers, the coordinator, the metrics. Start one by hand: the workers take the queue now instead of at the next six-hourly run, the board is rewritten, the checks run on the default branch, the metrics branch is written.
| Workflow | Event | Branch | Outcome | Started by | Started |
|---|
What this page keeps and sends
In this browser: the GitHub token (until you press Forget the token, or the tab closes when you did not tick Keep me signed in) and, after Sign in with GitHub, the refresh token GitHub issued beside it, with which the page renews the token after its eight hours; the names of the repositories you listed and the plan you chose on the cost page. Sent: requests to GitHub’s API, as you, for what the page shows and does, and nothing to anyone else; with Sign in with GitHub, GitHub’s one-time code to the sign-in service, which answers with the token and keeps nothing, and, when you press Forget the token, the token to the same service once more, so that GitHub revokes it. The developer receives nothing from this page. The Apps’ privacy statement, which covers it, is at /symphony/apps-privacy.html.