The Tessl Registry now has security scores, powered by SnykLearn more
Logo
Back to articlesOpenAI open-sources Symphony, a spec for orchestrating Codex agents

29 Apr 20268 minute read

Paul Sawers

Freelance tech writer at Tessl, former TechCrunch senior writer covering startups and open source

OpenAI this week released Symphony, an open source specification for orchestrating coding agents. The project connects issue trackers such as Linear to Codex-powered agents, allowing each task to run as its own self-contained job, from assignment through to a pull request.

At a basic level, Symphony changes how work moves through a software team. Instead of engineers prompting an AI step by step, tasks are queued, picked up by agents, and executed independently, with humans reviewing the output at the end.

Setting up Symphony

Released under an Apache License 2.0, the Symphony spec sets out how a service that coordinates coding agents — similar in role to tools like GitHub Actions or Jenkins, but designed to run AI agents against tasks — should behave, including how to read from an issue tracker, run coding agents, and manage each task through to a pull request.

Developers can take that specification and run the reference implementation included in the repository (written in Elixir), which handles the core loop: monitoring an issue tracker, creating an isolated workspace for each task, and executing an agent against it. Alternatively, they can use the spec as input to a coding agent to generate their own implementation in another language, following the same structure and rules defined in the spec.

The reference implementation is a runnable version of Symphony, showing how the system operates end to end — from picking up issues to producing pull requests. Developers can use it as a starting point, adapt it to their own setup, or study it to understand how to build their own version.

OpenAI illustrates this setup with a simple to-do app, using a task board to show how work moves through the system once it is running. Tasks are listed across columns such as backlog, in progress, and human review, reflecting the states defined in the issue tracker.

As tasks appear on the board, they are picked up and worked on without manual intervention, moving through each stage until they reach review. The board acts as the interface for tracking progress, while execution happens in the background, with each task handled as its own run.

Symphony task flow across an issue tracker
Symphony task flow across an issue tracker

OpenAI describes Symphony as a thin orchestration layer for Codex, designed to sit on top of existing tools rather than replace them. Issue trackers remain the source of truth, while agents handle execution.

Each task runs in its own isolated workspace, with its own context and lifecycle, allowing multiple tasks to be processed independently.

The system runs continuously, monitoring for new work and assigning agents without manual triggering. That places the emphasis on managing tasks, rather than interacting with the model step by step.

‘Software as a spec’

The thinking behind Symphony has been shaped by OpenAI’s internal experiments with coding agents.

Zach Brock, a member of technical staff at OpenAI, described a setup where agents are judged on whether their output is accepted, rather than how they produce it.

“Giving coding agents access to task-tracking and changing their goal to ‘convince a human to merge this code’ is the clear next phase of software engineering,” he wrote on X.

He also pointed to a different way of building and sharing tools, where the specification comes before any single implementation. “Software as a spec,” as he put it.

“Instead of code, Symphony is first a Spec.md that you can materialize into any programming language you want by passing it to your coding agent of choice,” Brock wrote. “This is an early demonstration of a new way I expect open-source software to be developed and shared in the future.”

That approach places the pull request, and the human review process, at the centre of the system. The agent’s job is no longer to produce output, but to deliver work that passes review.

Early usage and trade-offs

The project has drawn early attention, collecting tens of thousands of stars on GitHub within weeks of release. Some developers have begun using it alongside existing subscriptions, treating it as a way to coordinate multiple agent runs in parallel.

Dan McAteer, who works on agentic AI operations at AnswerRocket, reported closing dozens of issues in a week using Symphony with Codex, though he also noted that the system consumes a large number of tokens during operation.

That trade-off points to a bigger tension. Running agents continuously across multiple tasks can increase throughput, but also raises the cost of usage and depends on well-structured inputs. And that, in turn, assumes a certain level of engineering maturity, with codebases able to handle automated changes and tasks written in a way agents can act on without constant correction.

Issue tracking in the spotlight

Symphony treats the issue tracker as the organising layer for agent work. Tasks are defined up front, assigned, and moved through a set of states until they reach review.

However, that view — where work begins as explicitly defined tickets in an issue tracker — isn’t shared by everyone building in this space.

Linear, one of the tools Symphony is designed to plug into, has been moving in a different direction. As Tessl reported last month, the company recently introduced its own agent, designed to act on context across a workspace rather than wait for tasks to be manually created and assigned.

Karri Saarinen, Linear’s co-founder and chief executive, argues that issue tracking itself is becoming less central – or to put it more bluntly, he reckons issue tracking is dead.

In his view, agents should be able to interpret context directly — from conversations, feedback, and code — and generate or update tasks as needed, rather than relying on tickets as the starting point.

So while Symphony uses the issue tracker as the control layer, turning each task into an execution unit, Linear’s approach treats the tracker as one output among many, with agents working from a broader pool of information.

Whether teams continue to organise work through tickets, or move toward more context-driven systems, will shape how tools like Symphony are used in the real world.