# Oxagen | Build better software, faster.

Source: https://oxagen.sh/

The control plane for AI engineering

# Build better software,  
faster.

Steer your coding agents. Trace their work from its source to its outcome. Improve the next run.

[Follow work from its source to its outcome](https://oxagen.sh/#demo)[See supported agents and controls](https://oxagen.sh/#works-with)

Product views throughout this page use illustrative data.

Illustrative Runs page of Oxagen. Twenty runs are live across Claude Code, Codex, Stella, and Cursor, two wait for a person to approve a request, and the workspace has spent $1,145.06 today. Each row shows a run with its kind, state, cost so far, latest prompt, tokens, uncommitted lines, and tier. A Tokens popover splits one run into input, output, cache reads, cache writes, and reasoning.

Works with

## Supported agents and controls

Keep the coding agents your team uses. Oxagen brings recorded work from supported agents into one workspace. Capture, cost reporting, live messages, and approvals differ by integration.

The marks below show agents, providers, and integration paths to check for your setup.

*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   

*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   
*   

**Claude Code**Coding agent

Anthropic’s coding agent for the terminal and the IDE.

Oxagen’s hooks capture the prompts, tool activity, and stops Claude Code exposes. Check the support table for live direction and approval coverage.

Command

```
oxagen agent enroll --harness claude-code
```

**OpenAI**Models and Agents SDK

The GPT models, and the OpenAI Agents SDK for building agents on them.

Oxagen records supported model calls routed through it. For an Agents SDK agent, check the wrapper’s capture coverage. The wrapper below is illustrative.

Code change

```
oxagen.agent.wrap({ ...your agent code here })
```

**LangGraph**Agent framework

LangChain’s library for agents built as graphs of steps that keep state.

With a supported wrapper, captured steps join the run record. Rules apply to tool calls routed through Oxagen. Check the support table for capture and control coverage. The wrapper below is illustrative.

Code change

```
oxagen.agent.wrap({ ...your agent code here })
```

**Python**Language

The language most agent frameworks ship in first.

Start a custom agent under `oxagen agent run`. Oxagen records the activity the integration reports. Controls apply to supported calls routed through Oxagen.

Command

```
oxagen agent run --name my-agent -- python agent.py
```

**Cursor**Code editor

The AI code editor, and its `cursor-agent` command line.

Oxagen records the activity Cursor exposes. Model cost capture, live direction, and controls depend on the integration.

Command

```
oxagen agent enroll --harness cursor
```

**Vercel AI SDK**Agent SDK

Vercel’s TypeScript toolkit for building agents and AI apps.

With a supported wrapper, captured steps join the run record. Rules apply to tool calls routed through Oxagen. Check the support table for capture and control coverage. The wrapper below is illustrative.

Code change

```
oxagen.agent.wrap({ ...your agent code here })
```

**CrewAI**Agent framework

A Python framework for crews of agents that each take a role.

With a supported wrapper, captured steps join the run record. Rules apply to tool calls routed through Oxagen. Check the support table for capture and control coverage. The wrapper below is illustrative.

Code change

```
oxagen.agent.wrap({ ...your agent code here })
```

**Anthropic**Model provider

The company behind the Claude models.

Bring your own Anthropic key. Oxagen counts and prices each Claude call routed through it, and the run’s budget applies.

**Rust**Language

For agents built for speed and memory safety.

Start a custom agent under `oxagen agent run`. Oxagen records the activity the integration reports. Controls apply to supported calls routed through Oxagen.

Command

```
oxagen agent run --name my-agent -- ./target/release/agent
```

**Codex**Coding agent

OpenAI’s coding agent for the terminal, the IDE, and the Codex app.

Captured Codex activity joins the workspace’s run records. Check the support table for capture, live direction, and control coverage.

Command

```
oxagen agent enroll --harness codex
```

**Mastra**Agent framework

An open-source TypeScript framework for agents and workflows.

With a supported wrapper, captured steps join the run record. Rules apply to tool calls routed through Oxagen. Check the support table for capture and control coverage. The wrapper below is illustrative.

Code change

```
oxagen.agent.wrap({ ...your agent code here })
```

**MCP**Protocol

The Model Context Protocol, the open standard agents use to call tools.

Oxagen’s MCP server gives any MCP client Oxagen’s own tools. Enrolling a harness adds it under the name `oxagen`.

**Stella**Coding agent

The open-source coding agent Oxagen builds.

Oxagen adds its hook block to Stella’s settings and records each run beside your other agents.

Command

```
oxagen agent enroll --harness stella
```

**Claude Agent SDK**Agent SDK

Anthropic’s SDK for building agents on the same loop as Claude Code.

With a supported wrapper, captured steps join the run record. Rules apply to tool calls routed through Oxagen. Check the support table for capture and control coverage. The wrapper below is illustrative.

Code change

```
oxagen.agent.wrap({ ...your agent code here })
```

**TypeScript**Language

Typed JavaScript, the language of the AI SDK and Mastra.

Start a custom agent under `oxagen agent run`. Oxagen records the activity the integration reports. Controls apply to supported calls routed through Oxagen.

Command

```
oxagen agent run --name my-agent -- node agent.js
```

**LangChain**Agent framework

The open-source framework that chains model calls, tools, and retrieval.

With a supported wrapper, captured steps join the run record. Rules apply to tool calls routed through Oxagen. Check the support table for capture and control coverage. The wrapper below is illustrative.

Code change

```
oxagen.agent.wrap({ ...your agent code here })
```

**Google ADK**Agent SDK

Google’s Agent Development Kit for building and deploying agents.

With a supported wrapper, captured steps join the run record. Rules apply to tool calls routed through Oxagen. Check the support table for capture and control coverage. The wrapper below is illustrative.

Code change

```
oxagen.agent.wrap({ ...your agent code here })
```

**Go**Language

For agents that ship as one small binary.

Start a custom agent under `oxagen agent run`. Oxagen records the activity the integration reports. Controls apply to supported calls routed through Oxagen.

Command

```
oxagen agent run --name my-agent -- go run ./cmd/agent
```

**LlamaIndex**Agent framework

A framework for agents that answer from your own documents and data.

With a supported wrapper, captured steps join the run record. Rules apply to tool calls routed through Oxagen. Check the support table for capture and control coverage. The wrapper below is illustrative.

Code change

```
oxagen.agent.wrap({ ...your agent code here })
```

**Claude Desktop**Desktop app

Anthropic’s desktop app for Claude.

Claude Desktop reaches Oxagen through the Oxagen MCP server. Each call to Oxagen’s tools is checked and recorded.

**Pydantic AI**Agent framework

A Python agent framework from the Pydantic team, with typed inputs and outputs.

With a supported wrapper, captured steps join the run record. Rules apply to tool calls routed through Oxagen. Check the support table for capture and control coverage. The wrapper below is illustrative.

Code change

```
oxagen.agent.wrap({ ...your agent code here })
```

**Java**Language

For agents that live inside the JVM services a company already runs.

Start a custom agent under `oxagen agent run`. Oxagen records the activity the integration reports. Controls apply to supported calls routed through Oxagen.

Command

```
oxagen agent run --name my-agent -- java -jar agent.jar
```

**AutoGen**Agent framework

Microsoft’s open-source framework for agents that work together in conversation.

With a supported wrapper, captured steps join the run record. Rules apply to tool calls routed through Oxagen. Check the support table for capture and control coverage. The wrapper below is illustrative.

Code change

```
oxagen.agent.wrap({ ...your agent code here })
```

**Strands Agents**Agent SDK

AWS’s open-source SDK for agents that a model drives step by step.

With a supported wrapper, captured steps join the run record. Rules apply to tool calls routed through Oxagen. Check the support table for capture and control coverage. The wrapper below is illustrative.

Code change

```
oxagen.agent.wrap({ ...your agent code here })
```

**smolagents**Agent framework

Hugging Face’s small library for agents that write and run code.

With a supported wrapper, captured steps join the run record. Rules apply to tool calls routed through Oxagen. Check the support table for capture and control coverage. The wrapper below is illustrative.

Code change

```
oxagen.agent.wrap({ ...your agent code here })
```

Product

## Agent work and delivery

Oxagen connects the reason for the work to the recorded runs, instructions, changes, and results behind it.

Work

## Connected work items

Follow work from its source to the change. Bring work from supported trackers into one workspace, with its operator, captured runs, instruction versions, pull requests, checks, and cost.

Keep acceptance criteria beside the result. A passing check, a merged pull request, a deployment, and an accepted work item each answer a different question.

Ground the next estimate in work you have already completed. Compare scope, agent effort, and cost, then account for human review and dependencies.

The tracker view uses illustrative data. Confirm connector coverage for your team’s tracker before setup.

Support cases

Roadmap and specs

**Northwind billing**Workspace0 trackers

Work itemAgentEstimate

**0**Open items

**0**Agent minutes

**$0**Projected cost

Illustrative estimates. Agent minutes exclude human review and waiting time.

Security, finance, and engineering each own a clause of the Bug fixer agent’s mandate, and Oxagen keeps the record. Requests arrive and a rule answers each one: allowed, routed to a person, or denied.

Mandates

## Shared steering and toolbelts

Turn a useful correction into guidance the team can reuse. Review steering, keep its version history, and see which version a supported run received. Equip supported agents from one shared toolbelt.

Set identity, permissions, tools, steering, and budget in the agent’s mandate. For actions routed through Oxagen, rules allow a request, deny it, or send it to a named person.

*   [Identity and access](https://oxagen.sh/product/mandates/identity)
*   [Tools and skills](https://oxagen.sh/product/mandates/tools-and-skills)
*   [Budgets and stops](https://oxagen.sh/product/mandates/budgets)

[Open the Mandates page](https://oxagen.sh/product/mandates)

Runs

## Run records and live direction

Read the work behind the pull request. Inspect captured prompts, context, tool activity, code changes, and cost with the person who directed the run in view.

Change direction while the work is happening. Send a correction to a supported run and see whether it arrived. Use the record to turn repeated detours into a better brief.

*   [Live runs](https://oxagen.sh/product/runs/live)

[Open the Runs page](https://oxagen.sh/product/runs)

Keep the evidence behind the change. A locked record shows later changes, and an export lets a reviewer check its integrity outside Oxagen.

**Cut the 4.11.0 release notes**Release agent run by Priya Shah**$0.00**Cost so far

2.  09:12**Run started on Claude Code**Mandate release. Operator Priya Shah.
3.  09:14**Read 22 files and 31 merged pull requests**Allowed by rule repo.read+$0.62
4.  09:21**Asked to push to release/4.11**Routed to Sam Chen by rule release-branch+$0.04
5.  09:24**Sam Chen approved the push**Answered in 3 minutes
6.  09:26**Edited docs/releases/v4.11.0.mdx**Allowed by rule docs.write+$1.31
7.  09:31**Opened pull request #8119**4 of 4 checks passed on the head commit+$0.87
8.  09:33**Run ended after 37 steps**Oxagen locked the record

**Locked at 09:33**Locked means any change after this point shows.`sha256:f2c9…34ef`

Action controls

## One mandate per agent

Make each agent’s permissions a team decision. Its mandate brings identity, tools, steering, rules, and budget together. For actions routed through Oxagen, the record shows which rule answered and who approved the request.

Your agents run in their own environments. For supported actions routed through Oxagen, a rule allows the request, denies it, or sends it to a person. Keep the approval beside the action it authorized.

Identity systemWho the agent is

GatewayWhich tools it can call

BillingWhat it consumed

Prompt repositoryWhat it was told

Agents

*   Claude CodeRelease agent
*   CodexBug fixer
*   CursorTest writer
*   stellastella
*   Agent SDKHotfix agent
*   Custom loopTriage loop

MandateTriage loop

AccessSecurity

The identity it acts as and the actions it may request

Budget and rulesFinance

What it may spend and the rules it must obey

EquipmentEngineering

The tools, skills, and steering it works with

RecordOxagen

What it read, what it changed, and what it cost

Post to #releasesAllowed by `release-notes`

Your systems

*   GitHub
*   Linear
*   Slack
*   Stripe
*   Postgres

Record

| Agent | Request | Answer | Cost |
| --- | --- | --- | --- |
| Release agent | Push to main | Denied by `no-push-main` | $0.00 |
| Bug fixer | Update ENG-219 | Allowed by `tracker-writes` | $0.0031 |
| Test writer | Run the staging migration | Routed to Priya Shah | $0.00 |
| stella | List invoices | Allowed by `billing-read` | $0.0012 |
| Hotfix agent | Refund $1,400 | Routed to two people by `refund.over-1000` | $0.00 |
| Triage loop | Post to #releases | Allowed by `release-notes` | $0.0008 |

A rule answers each request routed through Oxagen

One view

## Recorded runs across the team

Keep your active runs within reach. See recorded work from supported agents on one timeline, with the operator, work item, state, and available cost beside each run.

Know who directed the agent and what it produced. Open the run behind a work item, read the captured activity, and send a correction where live direction is supported. Check the delivery status before assuming the agent received it.

Runs today

Captured runs from supported agents

All harnessesClaude CodeCodexCursorstella

Runs today

18

Running now

4

Waiting on a person

2

Spend today

$74.43

1.  Priya Shah
    1.  ENG-212ENG-212 by Release agent in Claude Code, 08:10 to 09:40, Done, $2.84
    2.  ENG-212ENG-212 by Release agent in Claude Code, 10:05 to 11:20, Done, $1.91
    3.  ENG-224ENG-224 by stella in stella, 11:30 to 13:50, Done, $4.12
    4.  ENG-212ENG-212 by Release agent in Claude Code, 14:00 to 15:10, Done, $1.72
    5.  ENG-231ENG-231 by Bug fixer in Codex, 15:20 to now, Running, $3.06
2.  Marcus Lee
    1.  ENG-219ENG-219 by Bug fixer in Codex, 08:30 to 11:50, Done, $9.84
    2.  ENG-220ENG-220 by Test writer in Cursor, 12:00 to 13:25, Done, $3.37
    3.  ENG-226ENG-226 by Bug fixer in Codex, 13:35 to now, Waits on a person, $5.12
3.  Ana Ruiz
    1.  ENG-215ENG-215 by Test writer in Cursor, 08:00 to 10:10, Done, $4.40
    2.  ENG-216ENG-216 by stella in stella, 10:30 to 12:00, Done, $2.26
    3.  ENG-222ENG-222 by Test writer in Cursor, 13:00 to now, Running, $7.15
4.  Jun Park
    1.  ENG-217ENG-217 by Release agent in Claude Code, 09:00 to 12:30, Done, $8.62
    2.  ENG-229ENG-229 by Bug fixer in Codex, 12:45 to 14:10, Failed, $1.98
    3.  ENG-227ENG-227 by Release agent in Claude Code, 14:30 to now, Running, $4.94
5.  Sam Okafor
    1.  ENG-218ENG-218 by stella in stella, 08:20 to 09:50, Done, $1.84
    2.  ENG-223ENG-223 by Bug fixer in Codex, 10:00 to 13:30, Done, $7.92
    3.  ENG-225ENG-225 by stella in stella, 13:45 to now, Waits on a person, $2.03
    4.  ENG-230ENG-230 by Test writer in Cursor, 15:45 to now, Running, $1.31

RunningWaits on a personDoneFailedSpend per hour

A sample workspace on one day

Spend

## Spend attribution

See what agent work produced and what it cost. Follow the bill back to the work, then inspect the runs behind unproductive spend.

Read each cost with its basis: measured, reported, or estimated. Investigate a finding, change the instructions or tools, and compare similar work afterward. Report realized savings separately from the opportunity identified.

Attribution path

1.  Workspace$1,848.60This month
2.  Operator$412.80Priya Shah
3.  Agent$240.10Release agent
4.  Work item$6.47ENG-212 across 3 runs
5.  Run$2.84Run 4f2c9e
6.  Tool call$0.0412Edit docs/releases/v4.11.0.mdx

### Spend from operator to outcome

$1,848.60 this month across 5 operators and 4 agents

Basis

*   Measured**$1,682.23**
*   Reported**$129.40**
*   Estimated**$36.97**

Spend this month in a sample workspace, from operator to agent to outcome
| From | To | Spend |
| --- | --- | --- |
| Priya Shah | Release agent | $240.10 |
| Priya Shah | Bug fixer | $96.40 |
| Priya Shah | stella | $76.30 |
| Marcus Lee | Bug fixer | $301.70 |
| Marcus Lee | Test writer | $148.20 |
| Marcus Lee | Release agent | $88.30 |
| Ana Ruiz | Test writer | $192.60 |
| Ana Ruiz | stella | $104.50 |
| Ana Ruiz | Bug fixer | $64.30 |
| Jun Park | Release agent | $171.20 |
| Jun Park | Test writer | $83.40 |
| Jun Park | stella | $55.30 |
| Sam Okafor | stella | $128.90 |
| Sam Okafor | Bug fixer | $97.40 |
| Release agent | Merged | $352.40 |
| Release agent | In review | $88.10 |
| Release agent | Returned | $31.60 |
| Release agent | Unproductive | $27.50 |
| Bug fixer | Merged | $391.20 |
| Bug fixer | In review | $71.40 |
| Bug fixer | Returned | $42.90 |
| Bug fixer | Unproductive | $54.30 |
| Test writer | Merged | $268.70 |
| Test writer | In review | $96.80 |
| Test writer | Returned | $18.40 |
| Test writer | Unproductive | $40.30 |
| stella | Merged | $241.60 |
| stella | In review | $62.20 |
| stella | Returned | $24.70 |
| stella | Unproductive | $36.50 |

A sample workspace for one month

The costs shown are the costs Oxagen recorded.

### Spend by harness

Daily spend for 30 days

*   Codex$559.80
*   Claude Code$499.60
*   Cursor$424.20
*   stella$365.00

<table><caption>Spend this month by harness</caption><tbody><tr><th scope="row">Codex</th><td>$559.80</td></tr><tr><th scope="row">Claude Code</th><td>$499.60</td></tr><tr><th scope="row">Cursor</th><td>$424.20</td></tr><tr><th scope="row">stella</th><td>$365.00</td></tr></tbody></table>

### Spend by token class

Usage and the rate applied to it

*   Output tokens$701.30
*   Input tokens$612.40
*   Cache reads$320.10
*   Cache writes$214.80

### Cost per merged pull request

Recorded spend per merged pull request

*   Test writer19 merged$22.33
*   Release agent24 merged$20.82
*   Bug fixer31 merged$18.06
*   stella22 merged$16.59

Roles

## Agent work across the team

Engineers direct the runs, leaders review delivery, and product managers check the result against the work they asked for.

### Engineering leaders

See what agent work produced and what it cost. Follow an item through its captured runs, pull requests, checks, and acceptance. Use the record to find where the work needs to improve.

Focus**Accepted work and its cost**

**38**Items done this week

**$1,284**Spent on them

**$33.79**Cost per item

Spend on finished items by day

Industries

## Agent work by industry

Keep the source work, recorded changes, and applicable approvals together for the reviews your team needs to make.

### Software and SaaS

Several agent tools across many repositories, each with its own history, and a backlog longer than the team.

Review question

Which agent shipped ENG-212, and what did it cost?

Example record

Work item ENG-212. 3 runs in Claude Code and Codex. 1 pull request merged. $6.47.

[Read the page for software teams](https://oxagen.sh/industries/software)

### Financial services

A review of the billing service needs the recorded agent work behind the code changes.

Review question

What did agents change in the billing service last week?

Example record

14 runs on billing-service. 9 pushes allowed by rule. 2 routed to Priya Shah. Exported as locked records.

### Healthcare

Code near patient data needs a clear account of who requested a change and which controls applied.

Review question

Who approved the agent’s change to the intake service?

Example record

Push to intake-service routed by rule phi-repos to Dana Okafor. Approved at 14:02. Owner Priya Shah.

### Insurance

Carriers that price agent risk ask for evidence of authority and governed actions for a defined workload.

Review question

What could these agents do, and what did they do?

Example record

Mandates, rules, approvals, run records, and spend for the support workload, in one export.

[Open all industries](https://oxagen.sh/industries)

Research

## Latest research

Read the research behind longer agent runs, live direction, and the human review that turns a code change into accepted work.

[Code graphs](https://oxagen.sh/blog/pillars/ontologies)[AI agents](https://oxagen.sh/blog/pillars/ai-agents)[Coding agents](https://oxagen.sh/blog/pillars/coding-agents)[Self-improving models](https://oxagen.sh/blog/pillars/self-improving-models)[Self-evolving agents](https://oxagen.sh/blog/pillars/self-evolving-agents)[Autonomous agents](https://oxagen.sh/blog/pillars/autonomous-agents)

[

Sep 30, 2026Autonomous agents

### Agents are waiting on a process built for people

An agent can write a change in minutes. Then the change waits for a person to read it. This post measures that wait.



](https://oxagen.sh/blog/agents-are-waiting-on-a-process-built-for-people)[

Sep 16, 2026Autonomous agents

### Steering a run you are not watching

When a long run goes wrong, most teams can stop it or type at it. A steer is a message with a delivery mode, a status, and a record.



](https://oxagen.sh/blog/steering-a-run-you-are-not-watching)[

Sep 16, 2026Autonomous agents

### The agent time horizon is doubling

METR measures how long a task an agent can finish on its own. That length has doubled about every seven months since 2019.



](https://oxagen.sh/blog/the-agent-time-horizon-is-doubling)[

Field manual

### How to Build Autonomous Coding Agents

The field manual runs to 21 parts. Leave your email address to read it.

Read the field manual](https://oxagen.sh/read)

[Open the research home](https://oxagen.sh/blog)

Pricing

## Seats and usage

Start with one team and follow its agent spend through to the work it accepts.

Team and Business seats include monthly agent actions and credits. Usage beyond the allowance draws on prepaid credits. Your model provider bills calls made on your own key.

**Team**$99 per operator a month billed yearly, or $119 billed monthly

**Business**$149 per operator a month billed yearly. Minimum 10 operators.

**Enterprise**From $60,000 a year

Prices in USD. Checked 3 November 2026.

[Compare the plans](https://oxagen.sh/pricing)

**$6.47**Illustrative model cost for work item ENG-212

Recorded runs for ENG-212
| Run | Agent | Cost |
| --- | --- | --- |
| Fix invoice preview | Claude Code | $2.57 |
| Review usage lines | Codex | $2.49 |
| Address review | Claude Code | $1.41 |

Get a demo

## How work moves from its source to its outcome

Choose a repository and a piece of work to discuss, then trace the work with the team in a supported setup.

### Demo walkthrough

1.  **Source work**Open a piece of work with its owner, scope, and acceptance criteria.
2.  **Live direction**Send a correction to a supported run and check its delivery status.
3.  **Shared guidance**Turn that correction into reviewed steering and inspect the assigned toolbelt.
4.  **Action controls**Follow a request routed through Oxagen to the rule or person that answers it.
5.  **Result and cost**Review the changes, checks, and acceptance evidence beside the cost of the recorded work.
