Slop-status: 88.000004%
A SLOP-fork of openai/symphony — I used https://github.com/openai/symphony/blob/main/SPEC.md to generate this but with the change of using
- Claude Code in
claude -pmode instead of codex - Github instead of Linear
Symphony was designed around Codex (OpenAI) and Linear as the agent runtime and issue tracker. This fork swaps both:
| Component | Upstream Symphony | This fork |
|---|---|---|
| Coding agent | Codex (codex-cli) |
Claude Code (claude -p) |
| Issue tracker | Linear (GraphQL API) | GitHub Issues (gh CLI) |
| Issue states | Linear's native states (Todo, In Progress, Done...) | symphony/* labels (todo, in-progress, human-review, rework, done) |
| Agent protocol | Persistent JSON-RPC session | One-shot claude --print with --continue/--resume for multi-turn |
| Permissions | Codex sandbox | --permission-mode bypassPermissions (full autonomy) |
| Auth | Linear API key | GITHUB_TOKEN via --env flag |
GitHub doesn't have Linear's mutually exclusive workflow states, so this fork uses symphony/* prefixed labels:
| Label | Meaning | Set by |
|---|---|---|
symphony/todo |
Work is ready for an agent | Human |
symphony/in-progress |
Agent is actively working | Orchestrator (on dispatch) |
symphony/human-review |
Agent finished, PR open, needs review | Agent (on completion) |
symphony/rework |
Human wants changes, agent picks it back up | Human |
symphony/done |
Terminal — workspace cleaned up | Human (on merge) |
npm install
npm run build
# Create a .env file
cat > .env <<EOF
GITHUB_TOKEN=ghp_...
GITHUB_OWNER=your-org
GITHUB_REPO=your-repo
SYMPHONY_WORKSPACE_ROOT=/tmp/symphony_workspaces
EOF
# Create the labels on your repo
gh label create "symphony/todo" -R owner/repo --color 0E8A16
gh label create "symphony/in-progress" -R owner/repo --color 1D76DB
gh label create "symphony/human-review" -R owner/repo --color FBCA04
gh label create "symphony/rework" -R owner/repo --color D93F0B
gh label create "symphony/done" -R owner/repo --color 5319E7
# Run
node dist/cli.js WORKFLOW.md --env .env -v // or add a repo specific WORKFLOW.md file in the repo root according to Symphony recommendations# Start the orchestrator
node dist/cli.js [path-to-WORKFLOW.md] [options]
# Options
--env <file> Load environment variables from a file
-v, --verbose Enable debug logging (shows agent activity)
--peek <issue> Tail a running agent's log (e.g. --peek "#2") //haven't really tried this
--peek "" List all available agent logs- Polls GitHub for open issues with
symphony/todoorsymphony/reworklabels - Claims an issue by swapping the label to
symphony/in-progress - Creates/reuses a workspace directory, clones the repo, checks out a branch
- Runs
claude --printwith the rendered WORKFLOW.md prompt - Agent works autonomously — reads code, makes changes, creates PRs
- Agent swaps label to
symphony/human-reviewwhen done - Human reviews the PR, merges, and sets
symphony/done
Workspaces persist across restarts. Recovery is tracker-driven (no database).
All config lives in the YAML front matter of WORKFLOW.md. See the included WORKFLOW.md for a working example.