Skip to content

gherghett/ClaudeCodePSymphony

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ClaudeCodePSymphony

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 -p mode instead of codex
  • Github instead of Linear

What's different from upstream Symphony

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

Label-based state machine

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)

Quick start

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

Usage

# 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

How it works

  1. Polls GitHub for open issues with symphony/todo or symphony/rework labels
  2. Claims an issue by swapping the label to symphony/in-progress
  3. Creates/reuses a workspace directory, clones the repo, checks out a branch
  4. Runs claude --print with the rendered WORKFLOW.md prompt
  5. Agent works autonomously — reads code, makes changes, creates PRs
  6. Agent swaps label to symphony/human-review when done
  7. Human reviews the PR, merges, and sets symphony/done

Workspaces persist across restarts. Recovery is tracker-driven (no database).

Configuration

All config lives in the YAML front matter of WORKFLOW.md. See the included WORKFLOW.md for a working example.

About

Symphony implementation that uses Claude code -p as the agent engine and GitHub as issuetracker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors