Everyone told us not to reinvent the wheel. We didn’t listen.

Wheel is a multi-agent harness: swarms of Claude and Codex agents, drawn as nodes and wires on a cloud board, building while you sleep. You hold the wheel; it does the turning.

wheel.dev/app — the boardfig. 01

9

Node types on the board

2

Harnesses — Claude & Codex

$0

Cost of a parked agent

1

Wheel, reinvented


What Wheel does

01

The board

Swarms are built in the cloud webapp: agents, vaults, tables and endpoints as nodes, wires drawn between them. What you see is the whole system.

02

Wires are permissions

An agent touches only what it is wired to: read, write or send, checked on every call. Revoking access is deleting a line.

03

Parked, not paid

Idle agents park after five minutes and resume exactly where they stopped. You bring your own Claude and Codex plans; Wheel bills only the compute, network and disk your swarm uses inside the cluster.

How it works

Nodes, wires, one board

A swarm is agents plus the things they work with: vaults for secrets, tables for memory, endpoints for HTTP in, scripts and tools for the rest. Every arrow is a wire — the only permission system there is.

sendread · runreadsendsendreadwriteplanneragent · clauderevieweragent · claudebuilderagent · codexvaultsecretstablememoryendpointhttps inscriptpythonmcptools
Wire types — send: prompt it · read: access its data · write: mutate it
The source

JSON underneath

Every node on the board is a JSON document: exportable, diffable, reviewed like the code it is. Draw it in the webapp; commit it in the repository.

{
  "name": "reviewer",
  "type": "agent",
  "wires": [
    { "to": "planner", "type": "send" },
    { "to": "notes",   "type": "read" }
  ],
  "config": {
    "harness": "claude",
    "system_prompt": "Review every diff. Be stricter than the humans are willing to be.",
    "run_on_startup": true,
    "idle_timeout_secs": 300,
    "budget": { "max_usd": 5.0 }
  }
}
The CLI

The same wheel, from a shell

Agents drive the board through the wheel CLI — and so can you. Every command is checked against the wires; a denial exits 3 and says exactly why.

$ wheel msg reviewer --file plan.md
✓ queued · sha256 9c41…e2 · 1,204 bytes
$ wheel read notes/standup
$ wheel secret get vault/deploy_key
no wire from reviewer to vault (need: read) — exit 3
The record

Every run on the record

Prompts, diffs, costs, approvals — each run prints a complete trail, legible in black and white. When something goes wrong at 3 a.m., you read the record, not the tea leaves.

enginesession started · house-style injected (412 chars)
usership the orbital-decay brief
plannerwheel write findings/orbital-decay
plannerwheel msg builder --file brief.md
enginequeued · sha256 9c41…e2 · 1,204 bytes
plannerno wire from planner to vault (need: read) — exit 3
engineidle 300s · parked, session kept
planner · session 4f2afig. 02
Pricing

Bring your own plan. Pay for the cluster.

There are no seats and no token markup. Agents sign in with your own Claude and Codex plans, so the model does its thinking on the subscription you already pay for. Wheel bills only what your swarm actually uses inside the cluster — compute, network and disk — and a parked agent uses none of the three.

Your Claude planYour Codex planNo token markup

Rates are not set yet. They will be published here before anyone is charged.

Reinvent the wheel.