The whole product on one page
Product overview
Oxagen connects coding-agent runs to the people, work items, code changes, costs, and outcomes behind them. Engineering teams use that record to direct supported agents, share reviewed steering and toolbelts, enforce controls on mediated actions, and improve how the next task gets done.
An illustrative work item with its Done Checklist approved, a run that opened a pull request, required checks read on the head commit, a person's acceptance, and the merge. Deployed is a separate state the figure leaves unreached.
One work item and its states
- Done Checklist approvedReached
- Pull request opened by the runReached
- Required checks read on the head commitReached
- Accepted by a personReached
- MergedReached
- DeployedPending
On this page
Work
A reviewer opens a pull request and asks why it exists. The answer sits in a tracker, in a run on someone's laptop, and in a checklist nobody wrote down. Oxagen puts them on one work item.
Triage suggests a priority and a first Done Checklist, the short list of things a reviewer checks. A person approves the checklist and sends the item to one agent. When the run ends, the item shows the pull request, its head commit, and the checks the base branch requires on that commit.
Accept records a person's acceptance of that head commit and merges nothing. The item is done once a person has accepted it and the pull request has merged, in either order. A pull request closed without merging is not done.
An illustrative work record with its source, Done Checklist progress, the run that worked on it, its pull request, the required checks, and the open acceptance.
One work item
- Source
- GitHub issue #218
- Done Checklist
- 5 items approvedDone
- Run
- Claude Code run with its recorded costDone
- Pull request
- Opened on the linked repositoryDone
- Required checks
- Passed on the head commitDone
- Acceptance
- Waiting for a personOpen
Mandates
For a call routed through Oxagen, a rule your team wrote allows it, denies it, or routes it to a named person. For a mediated connection, Oxagen uses the connection credential on the agent's behalf, and the agent does not receive it. In observe mode, Oxagen records what the policy would decide and lets the call go ahead.
An agent's identity, permissions, toolbelt, steering, and budget together make up its mandate. Oxagen checks those terms on calls routed through it and records each decision, so the people who set them can see how they applied.
The Bug fixer agent's mandate. Security owns its access, Finance owns its budget of $20 a run with $11.64 spent, Engineering owns its tools, and Oxagen keeps the record of 412 frames. A request to read the repository is allowed by a rule.
One agent's mandate
- AccessSecurityAsks for GitHub when the task needs it
- Budget and rulesFinance$11.64 of $20 this run
- EquipmentEngineering
get_issuecreate_pull_requestrun-tests - RecordOxagen412 frames recorded
Runs
An agent that works for an hour leaves a scrollback nobody reads. Oxagen records the run while the agent works: each prompt, each tool call and the rule that answered it, the files git reports as changed, and the cost of each model call it carried.
Know whose authority is behind the action. The record names the agent that asked, the person it acted for, the rule that answered, and who approved the call when a person was required, beside its result and cost.
The record holds only what the agent's computer reported, and the coverage statement names what each harness reports. Cursor's model calls do not pass through Oxagen, so their cost is not recorded.
A release agent's run on Claude Code. It read the repository, asked to push to the release branch and waited for Sam Chen to approve, edited the release notes, opened a pull request, and ended with its record locked. Each step names the rule that answered it and what it cost, $2.84 in all.
One run record
- Run started on Claude CodeMandate release. Operator Priya Shah.
- Read 22 files and 31 merged pull requestsAllowed by rule repo.read+$0.62
- Asked to push to release/4.11Routed to Sam Chen by rule release-branch+$0.04
- Sam Chen approved the pushAnswered in 3 minutes
- Edited docs/releases/v4.11.0.mdxAllowed by rule docs.write+$1.31
- Opened pull request #81194 of 4 checks passed on the head commit+$0.87
- Run ended after 37 stepsOxagen locked the record
sha256:f2c9…34efSetup
- Install the CLI
Install the Oxagen app on the machine the agent runs on. It puts the oxagen command on your path.
- Enroll the agent
Run
oxagen agent enroll --harness claude-codeor name Codex, Cursor, or Stella. Enrollment writes the harness's hooks and gives the machine its own identity in the workspace. - Confirm the first run
Start the agent and open Runs. The run appears while the agent works.
Supported agents
| Control | Claude Code | Codex | Cursor | Stella |
|---|---|---|---|---|
| Record each tool call | Yes | Yes | Yes | Yes |
| Let a rule allow or deny a tool call | Yes | Yes | Yes | Yes |
| Send a tool call to a person | PartialClaude Code asks you on your own machine. | NoOxagen denies the call and says why. | NoOxagen denies the call and says why. | PartialStella holds the call for your approval. |
| Record model calls and their cost | Yes | Yes | NoCursor sends model calls to its own servers. | PartialFor Anthropic models. |
| Send a message to a running agent | Yes | Yes | PartialDelivered at the end of the turn. | Yes |
| Stop a run | Yes | PartialOxagen blocks the next tool call and ends the model call in progress. | PartialOxagen blocks the next tool call. | Yes |
Product walkthrough
Bring one piece of work and see how its runs, controls, and record fit together.