Ultrac
Ultrac harness

The harness that starts closed. You watch it refuse.

Run ultrac in a repository you do not trust. Write, shell and network start off, and you watch the harness refuse from your own terminal.

ultrac · ~/acme-apishell off
>Review the session TTL change and tell me what to run.
Reading the file before I say anything about it.
read_file {"path":"src/session.ts"}
export const SESSION_TTL_SECONDS = 900;
run_shell {"command":"npm test"}
run_shell wants shell access. [o]nce / [a]lways / [n]o › n
✗ denied shell for run_shell
TTL is 15 minutes, down from an hour. Tests did not run: you refused the shell.
The gate

A gate, not a prompt.

what ultrac init writes
{
  "version": 1,
  "provider": "ultrac",
  "model": "cosmic-1",
  "mode": "default",
  "maxSteps": 6,
  "permissions": {
    "write": false,
    "shell": false,
    "network": false
  }
}

Every git call goes through one helper: 10 -c flags, and a test that fails the build if a second spawn appears.

core.fsmonitor= · core.hooksPath=/dev/null · core.pager=cat · core.askPass= · core.sshCommand= · core.gitProxy= · credential.helper= · diff.external= · protocol.ext.allow=never · uploadpack.packObjectsHook=

How you run it

ultrac, in your terminal.

$ ultrac login
$ ultrac --mode review

ultrac

Terminal · Node 22 or newer

The harness. The only surface that touches your repository.

Ultrac for macOS

Electron · Apple Silicon · not handed out yet

Built, unsigned, and not handed out. It does not run the harness.

/v1

OpenAI-compatible · key only

The public API. A key authenticates; a cookie never does.

Invite only

Ask for access. We send the build.

The name on npm is an unrelated package. Request access and we will send you the build and a key.

ultrac · signs in with ultrac login · runs on Cosmic 1 or your own keys