Turn Linear tickets into pull requests with Claude Code. Autonomously.
Concerto is an Elixir/OTP orchestrator that polls Linear for work, creates isolated workspaces, and dispatches claude -p sessions that implement changes and open PRs. Fork of OpenAI Symphony, adapted to use Claude Code natively instead of Codex.
Warning
Concerto runs Claude Code autonomously with full permissions. Only use in trusted environments with repos where autonomous changes are acceptable.
cd elixir
brew install mise && mise trust && mise install
mix setup
export LINEAR_API_KEY=lin_api_...
# Edit WORKFLOW.md with your project slug and repo URL
make startSee elixir/README.md for full setup instructions.
- Polls Linear for issues in active states (Todo, In Progress)
- Creates an isolated workspace per issue
- Clones your repo via the
after_createhook - Dispatches
claude -pwith your workflow prompt - Claude implements the change, writes tests, opens a PR
- Moves the issue through your Linear workflow
No API key needed — uses your Claude subscription via claude -p.
Symphony dispatches OpenAI Codex via JSON-RPC. Concerto replaces the entire agent runtime with Claude Code's native claude -p protocol — streaming JSON output, MCP tool injection, session continuity via --session-id, and permission handling via --permission-mode. The Elixir/OTP orchestration layer (polling, concurrency, retries, supervision) stays intact.
Apache License 2.0 — see LICENSE.