Coding agents on your own hardware.
Run coding agents on the Claude Agent SDK or your own framework, on build machines and GPU boxes you already own. Repositories stay on your machines, every job has a budget, and one job can fan out across the whole fleet.
$ oz0 run migrator --budget 5 '{"org": "acme", "from": "pydantic 1", "to": "pydantic 2"}'
migrator ⇢ repo-upgrader (job mig-77/repo-upgrader-api)
migrator ⇢ repo-upgrader (job mig-77/repo-upgrader-billing)
repo-upgrader → Bash {"command":"uv run pytest -q"}
repo-upgrader ← Bash 412 passed, 3 failed
repo-upgrader: Moved 3 validators to the v2 API. All 415 tests pass. Opened acme/billing#318.
migrator: 12 of 12 repositories upgraded, 12 pull requests open, 1 needs a human look.
| Job | Cost |
|---|---|
| migrator | $0.09 |
| repo-upgrader × 12 | $3.41 |
Why it belongs on your own machines.
- The code stays home
- Repositories, build caches and credentials stay on your machines. Only what an agent sends to a model leaves, through a gateway you run.
- Every job has a price
- The gateway meters every model call. Set a budget per job and see what each agent, team and pull request costs.
- Capacity you already have
- Build machines, CI runners and GPU workstations become one pool. Jobs go to the machines with the right toolchain and labels.
Agents teams build.
Each one is a plugin: an agent definition, the tools it may use and the limits it runs under. Install it from Git and every node that should run it gets it.
- pr-reviewerReviews every pull request against your guidelines and leaves comments where they matter.Runs on agent=pr-reviewerKept in line by Budget per job
- test-fixerReproduces a flaky test, finds the cause and opens a fix with the evidence.Runs on os=linux, toolchain=goKept in line by Step and time limits
- migratorUpgrades a dependency across many repositories, one child job per repository.Runs on Fans out to runnersKept in line by One budget for the tree
- code-explainerAnswers questions about your codebase from your IDE or chat, through the runtime API.Runs on The node with the checkoutKept in line by Read-only tools
One dependency, every repository
A migration that would take a team a week becomes one job tree, with one budget.
Fan out
The migrator starts a child job per repository, each on a runner with the right toolchain.
toolchain=python
Work in parallel
Child jobs run at the same time on different machines, all under the parent’s budget.
The runner pool
Prove it
Each child runs the tests and only opens a pull request when they pass.
Each runner
One answer
The parent collects the results: which repositories are done, which need a person and what each one cost.
The job’s history
What makes it work.
Harnesses you know
Run agents on the Claude Agent SDK, with its tools, skills and subagents, one isolated session per job.
Budgets per job tree
A job and everything it delegates share one budget in dollars. The gateway stops it at the limit.
Fan-out across the fleet
One job hands work to agents on other machines and collects the answers.
Apps on top
Start and follow jobs from CI, your IDE or chat through the runtime API, with clients for Python, TypeScript and Go.
Where it is going
Every agent run its own identity.
Today each job runs in an isolated session with a budget. Next, every agent run gets an identity of its own, with access to exactly the repositories and tools its task needs, so a thousand agents at once are as safe as one.
- Scoped to the task
- A run that fixes one repository gets a short-lived credential for that repository alone, and it expires when the run ends.
- Built for scale
- Fan out across every build machine you own. Each run is a workflow of its own on a shared task queue, so more agents takes more machines, not more wiring.
- Agents that ask each other
- An agent asks a colleague that is already running on another machine instead of starting over, and every exchange lands in the job’s history.
Built for
- Product engineering teams
- Platform and developer experience teams
- Agencies and consultancies
- Companies whose code stays in-house