Repository navigation
Org Chart Tickets and External Agents
Agents report to each other, work is tickets, and the agents you already use — Claude Code, Codex, Hermes, OpenClaw, or anything behind a webhook — sit in the same chart as the desktops this fleet provisions. The design is in docs/ORG-AND-TICKETS.md; this page is how to use it.
In the console open Org. Everyone reports to you until you say otherwise: drag an agent onto another to make it report there (on the phone, long-press and drag). Click an agent to give it a title, a line saying when it is useful (colleagues read it when deciding who to hand work to), a trust level and, if you are an admin, a monthly budget.
From a terminal:
fleetctl org
fleetctl agent set Checker --reports-to Builder --title "QA" --capabilities "Tests web apps in a browser"A manager gets its reports' blocked work. An agent with no manager escalates to you.
Just ask the fleet in chat — "Builder builds a pricing page and Checker reviews it" — and it is filed for you: a ticket for the request with a ticket for each part under it. Design blocks the build, testers review the builds, and a reviewer verifies the whole request when it stops.
Or file tickets yourself on the Work board, in chat, or from a terminal:
/ticket @Builder Add a dark mode toggle to the settings page
/tickets
fleetctl ticket new "Ship the pricing page" --to Builder --verify-by Checker --budget 5
fleetctl ticket new "Write the copy" --to Claude --parent T-12
fleetctl tickets --status blocked
fleetctl ticket show T-12What to expect:
- A ticket starts as soon as what it waits on is done and its agent is free. One run per agent at a time.
- A review ends in PASS or FAIL. A fail goes back with the findings, three rounds at most.
- A run that failed for a reason that has nothing to do with the work (the model returned garbage, the provider was down, the PC dropped off) is retried twice. Anything else blocks the ticket and goes to the manager.
- A ticket nobody can move is reported once — no owner, owner held at its budget, owner offline, waiting on something cancelled.
- Cancelling a ticket cancels its open parts and checks too. Reopening finished work sends it back with your reason.
On the PC that has the CLI installed and signed in:
pip install open-agent-fleet
fleetctl login
fleetctl host --root ~/projects/appThe host prints the agent CLIs it found. Leave it running. Then add the agent in the console (Org → Add agent → Claude Code, pick the PC and a folder), or:
fleetctl agent add Claude --kind claude_code --folder ~/projects/app --model sonnet --reports-to Builder
fleetctl ticket new "Fix the failing login test" --to Claude --review-by Checker-
Autonomy.
edits(the default) changes files but runs no commands;fulllets it do anything inside its folder. Each run asks in the host's terminal first unless you started the host with--yes. -
Its own settings, not yours. Claude Code runs without your
~/.claudeuser settings, so your extra allowed directories, hooks and MCP servers do not come along. The folder's own.claudesettings apply. - Its files are shared. When a run finishes, the text files it made or changed — and those its report names — are published to the fleet's work catalog under their path in the folder. That is how a desktop agent reviews work done on your PC.
- Resuming. A second run on the same ticket resumes the CLI's session.
- Stopping. Stop the run from the console; the host kills the CLI and anything it started.
fleetctl agent add Gateway --kind openclaw --url wss://claw.example --ask-token
fleetctl agent add Research --kind webhook --url https://agents.example/run --token-env RESEARCH_TOKENA webhook agent receives the brief and a callback token for that run; it can answer at once or call back later. The payload is in the design doc.
- Budgets. At 80% (or your chosen percentage) you are told once; at 100% the agent is held: its run stops, its tickets wait, and you get a push. Raise the ceiling or wait for the month to turn.
- Low trust. For an agent that reads hostile input. What it writes reaches colleagues fenced as data, and it cannot hand out work, reopen work or write to the shared vault.
fleetctl fleet export -o fleet.json # agents, titles, reporting lines, budgets; no secrets
fleetctl fleet import fleet.json --dry-runAlso under Settings → Fleet template in the console.
| Symptom | Why | Fix |
|---|---|---|
| "its PC (Dev PC) is not connected; run fleetctl host there" |
fleetctl host is not running on its PC |
Start it; the ticket runs by itself |
| "Claude Code is not signed in on its PC" | The CLI needs a login | Run claude (or codex, hermes) once on that PC and sign in |
| A reviewer says the file does not exist | The run finished before this version shared files, or the file is binary or over 256 KiB | Rerun the ticket, or have the agent name the file in its report |
| "Nobody owns T-12" | The ticket has had no assignee for two minutes | Assign it on the Work board, or /ticket @agent …
|
OpenAgentFleet · MIT · Repository · pip install open-agent-fleet · Found the docs claiming something the code doesn't do? That's the bug we most want filed.
Getting started
Going deeper
Help
Reference (in-repo)