Docs
Releases

v2.1.2

The macOS app installs updates on its own. Fleet and the Run page were rebuilt, Stella answers inside the app, and organizations can sign in with SSO and provision people with SCIM.

Get 2.1.2

Every file has a SHA-256 in SHA256SUMS.txt.

Oxagen app for macOS

macOS 12 or newer. Open the .dmg and drag Oxagen to Applications. Builds are not yet notarized, so macOS refuses the first launch. Choose Done, then click Open Anyway in System Settings > Privacy & Security.

Oxagen app for Windows

Windows 10 or newer, x64.

Oxagen app for Linux

x86_64. Install the package for your distribution.

On macOS, the app installs new versions on its own and runs them after your next restart. Windows and Linux ask first. How updates work and how to turn them off.

Command line, without the app

The same tacho and oxagen executables the app links onto your PATH, one file each, attached to the desktop-v2.1.2 release. Each has a .sha256 beside it. Rename the file to tacho or oxagen, make it executable, and put it on your PATH.

Platformtachooxagen
macOS, Apple silicon
aarch64-apple-darwin
tachooxagen
macOS, Intel
x86_64-apple-darwin
tachooxagen
Linux, x86_64
x86_64-unknown-linux-gnu
tachooxagen
Windows, x64
x86_64-pc-windows-msvc
tacho.exeoxagen.exe
Also in this release

What changed

These notes cover the 518 changes merged to main since the v2.1.1 app build of 2026-09-17 (40a42ca3f).

Desktop updates

  • The macOS app installs new versions on its own. It checks when it opens, every hour, and when you come back to it after 15 minutes. It downloads the update, checks its signature, and installs it in the background, and your next restart runs it (#4422).
  • It installs without asking only when your account can replace the app without a password. Otherwise it asks first, and Windows and Linux always ask. Clear Install updates automatically in the Updates panel to turn it off.
  • macOS gets first-launch steps that work, and the app narrows what its window can run (#4255, #4335). Install and uninstall were fixed, and uninstall on Windows is now tested (#3321, #4304).

Run page

  • The Run page was rebuilt. Its transcript shows each step as the thing the agent did, with the prompt, the tool input and output, and the tokens and cost of each turn (#3660, #3789, #4033).
  • A frame player replays a run with play, pause, and speed controls (#4146). A long run loads one transcript page at a time, so the page opens without reading the whole run first (#4423, #4428).
  • The header shows the checkout, subagents, and usage. The page shows checkout evidence, pull request CI, and what the run produced (#4018, #3778, #3632).
  • A live run's clock ticks. Sealing a finished run queues a kill for its agent when the host is reachable, and the page says when no kill was sent (#4074).

Fleet

  • Fleet was redesigned with tiles, a runs panel, and a steer dialog (#3928).
  • Run search happens on the server. Each run row shows its tokens, pull request state, lines changed, and enforcement tier (#4370, #4120, #3705).
  • You can interject in a live run and pause a whole workspace (#4370).

Spend

  • Oxagen costs a run while it runs. Every cost figure comes from one price book and shows as it was recorded (#3987, #4071).
  • A ledger itemizes each governed action, and wrapped and external tool calls are billed (#3911).
  • Charge an agent to a cost center from its page, and read the chargeback on Spend (#3732, #3747, #3753).
  • Current Claude models are priced at Anthropic's list price, and Spend shows the share of cache writes (#4049, #4365).
  • Bring your own model key from the Model funding page, including any OpenAI-compatible endpoint (#3308, #3290).

Stella

  • Stella's replies stream into the flyout as it writes them, and you can stop a turn (#4204, #4258).
  • When Stella parks a write for approval, you approve or deny it inside the thread (#4213). A turn cannot approve its own parked write, and writing a secret needs a person's approval (#4198, #4185).
  • Each reply shows its cost and the tool calls behind it, and you can mark a reply useful or wrong (#4210, #4256, #4206).
  • The thread survives a reload. Stella can read runs, spend, approvals, and agents, and it suggests questions for the page you are on (#4207, #4187, #4186).

Agents and tools

  • An agent is registered once per runtime and harness, with its toolbelt and versions, and a Runtimes page lists them (#4376, #3914).
  • Queue a kill for an agent from its page with the kill switch (#3708). A deregistered agent leaves the default lists and takes no new work. "Show deregistered agents" on the Agents page still lists it (#4333).
  • Search the MCP Registry and authorize a provider over OAuth from the tool wizard (#4134). Tool pickers show the provider's logo and the tool's risk, and forms pick records by name instead of by id (#4235, #4240, #4045).

Sign-in and roles

  • Organizations can sign in with enterprise SSO over OIDC or SAML, map identity provider groups to roles, and provision and deprovision people with SCIM 2.0 (#3735, #3832).
  • Thirty actions that a workspace Member could run now check the roles their contract requires (#4216).

Recording and steering

  • Cursor is recorded alongside Claude Code, Codex, and Stella (#3347).
  • The gateway holds the model vendor's credential, and the agent holds a run token (#3725). GitHub credentials stay in the host's Git proxy (#3768).
  • The daily agent budget resets on the UTC day, and a workspace's model list is enforced apart from its budget (#3990, #3761).
  • The recorder no longer drops hook events or the event that ends a turn, and a machine enrolls each agent once (#4337, #3746, #4402).
  • oxagen verify checks a downloaded run export offline (#3731).
  • The context registry syncs from the production branch, and a checkout whose .oxagen/ is behind it gets a warning (#4291, #3276). Context records can publish as merge requests on gitlab.com (#3827).

On this page