How it works
How RADAR works.
A technical overview for developers. RADAR runs coding agents and closes a task only after it has re-run the task's acceptance test itself. An agent's “done” is a claim; the re-run is the proof.
01 The loop
One loop for every task.
Every task goes around the same loop, and each step runs only if the step before it passed.
- 01 · open Task and acceptance test Written before the work starts
- 02 · lease One owner, own worktree Lease and fence token
- 03 · work The agent works In its own copy of the project
- 04 · claim The agent says done Recorded as a claim, not a result
- 05 · verify RADAR re-runs the test On the current revision
- if it passes Closed The proof is kept in the ledger
- if it fails · attempt n of 3 Reopened, failure attached The same agent tries again from step 03
- after 3 attempts Another agent takes over Up to 3 more attempts, from step 03
- after 3 more The task waits for you The ledger refuses further attempts
- Open
- A task is opened with its goal and a re-runnable acceptance command. The command is checked when the task is opened, without being run: a criterion that cannot run as written is refused then, not discovered at the end.
- Lease
- One owner holds a task at a time, through a lease and a fence token. A write from a stale owner is refused.
- Work
- The agent works in its own git worktree, on its own branch.
- Claim
- The agent's report that it is done is recorded as a claim. A claim does not close the task.
- Verify
- RADAR runs the acceptance command itself, on the current revision of the work. The agent's own report is read, but it is not proof.
- Close or reopen
- A pass lets the task close, with the verify record kept as its proof. A failure reopens the task with the failure attached.
- Limits
- Three worker attempts, then three takeovers by another agent. After that the ledger refuses more attempts and the task waits for you. Switching model, session or machine does not reset the count, and a retry has to say what changed.
02 The ledger
One record every agent writes to.
Every agent reads and writes the same task ledger: a local SQLite file. It is the single record of who holds each task, what was claimed and what the test showed.
- Tasks
- The goal and the acceptance command, written before the work starts.
- Ownership
- The current owner of each task, with its lease and fence token.
- Attempts
- Counted per task, across agents, models and machines.
- Claims
- An agent's report that the work is done, kept apart from results.
- Verify records
- Each acceptance run, bound to the commit and the working tree it ran on.
- Changes
- A changed acceptance command is recorded with the old and the new version; an override is recorded too.
Memory
Decisions and lessons are Markdown notes with a source and a scope. A local index searches them offline, and a hook puts the matching ones in front of an agent before it acts. Because the notes are plain Markdown, you can open them in Obsidian.
03 Isolation
Each attempt in its own copy.
- Each attempt works in its own git worktree, on its own branch. Two workers never share a tree.
- A worker cannot rewrite its own acceptance command. Only the manager can change it, and only before the task closes; every change keeps the old and the new version.
- Work reaches your main branch only after verify passes, and the acceptance command runs once more after the merge.
- Force-pushes are refused for every role.
- These rules run as code, before and after a model is called. They are not a prompt, so an agent cannot talk its way past them.
04 Agents
The agents you already use.
RADAR runs Claude Code, Codex CLI, OMP and Hermes Agent, on your computer or on Linux servers of your own. It does not replace them: they still do the work.
- Claude Code
- Codex CLI
- OMP
- Hermes Agent
- One contract
- The same rules, the same ledger, the same verify gate and the same attempt limits apply to all four.
- Manager
- The agent you talk to manages: it opens tasks, hands them to workers and closes a task only with a passing verify record.
- Workers
- Workers do the work in their own worktrees. They cannot close tasks and cannot change their acceptance command.
05 Local first
Local first.
RADAR needs no account and no cloud.
- On your machine
- The ledger, the memory notes, the worktrees and every verify run, on your computer or on Linux servers of your own.
- Needs a network
- Your agents, which talk to their own providers as they do today. Every other outside service is optional and off until you turn it on.
- Requirements
- Windows or Linux (macOS is not supported yet), Python 3.12 or newer, and Git. RADAR uses the Python standard library only.
- Cost
- No bill of its own. The agents keep using the accounts you sign them in with. A paid API is used only if you name the provider and a budget.
- Install
- Give your coding agent the repository link and say “install this”. It checks your computer, asks before installing anything missing, installs RADAR into a virtual environment and reports what radar init and radar doctor say.
06 Commands
A short list of commands.
The commands you will use first. Placeholders are in angle brackets.
| Command | What it does |
|---|---|
radar init | Sets up RADAR's home and the ledger. |
radar doctor | Checks the install and lists any unconfigured optional services. |
radar task new --project P --goal "…" --accept "<command>" | Opens a task with its acceptance command. |
radar dispatch <task> | Hands a task to an agent, which works in its own worktree. |
radar status | Shows the whole system. |
radar verify <task> | Re-runs the acceptance command on the current revision. |
radar task done <task> --evidence "<verification report>" | Closes a task. Refused until verify has passed. |
radar collect | Collects finished work. |
radar integrate | Merges verified work into main. |
radar stop | Parks the work and sets STOP. |
radar go | Clears STOP and lists what can continue. |
radar memory search --local "<words>" | Searches the memory notes offline. |
radar uiradar web | Opens the cockpit in the terminal or in a browser. |
radar help --all | Lists every command. radar <command> -h gives the details. |
07 What it does not do
What RADAR does not do.
- It does not replace your agents. They still write the code; RADAR gives them one record, one check they cannot skip and one memory.
- It does not write your tests. A check is only as good as its test; RADAR makes the test explicit before the work starts, so a person can read it.
- It does not close work that has no test. A task without a runnable acceptance command is refused when it is opened.
- It does not keep your agents offline. They still talk to their own providers, as they do today.
- The open edition is for individual developers, not teams; a company edition is in development.
08 Status
In early access
Early access now. Open source at public release.
RADAR is in early access. It will be published as open source under the Apache-2.0 licence at public release. To join, write to us.