Agent Orchestration Platform
nfltr orch is a distributed Claude Code hub on nfltr.xyz. You give a Claude session a goal; it spawns agents on the machines you have joined, steers or continues them with messages, stops them, and receives each completion exactly once. The relay carries messages and runs no model: every decision is the hub's.
Watch it first: the homepage demos show a backlog and an alert handled from a plain Claude Code session, one goal split across two machines, a parallel backlog, a remote investigation, and a node killed mid-job.
The pieces
The hub
A Claude session with the hub tools: spawn_agent, send_message, stop_agent, list_agents, wait_for_agents, list_nodes. Run it with nfltr orch "<goal>", interactively with nfltr orch, or inside your own Claude Code session. See Hub tools.
Nodes
Any machine you join with nfltr node join --max-agents N: a laptop, a VM with a VPN, a GPU box. A node launches agents on demand and describes what it can reach, so the hub can place work where the data or access lives. Tools and repository clones are opt-in per node.
Agents
Claude Code (or Codex) sessions a node starts for one spawn. Each runs with a clean Claude config, isolated from the machine's other sessions, and ends with a completion: its final text, a branch, or a failure the hub can act on.
Your Claude Code session
claude mcp add nfltr -- nfltr mcp --toolset hub gives your own session the same tools. nfltr orch hub install-hook wakes the session when an agent completes. See Use nfltr from Claude Code.
Watch, steer, stop
Ask the hub: it calls send_message to steer a running agent or continue a finished one in the same session, and stop_agent to stop one. nfltr orch task list, task status, and nfltr orch hub runs on the hub's machine show what is running.
Durability
Agents keep running when the hub exits. Reopening the project (same hub id) reattaches and delivers every missed completion exactly once. A lost node, a refused tool, or an exhausted budget arrives as a completion the hub decides about.
Start
- Save an API key from the dashboard:
nfltr config add-api-key(or setNFLTR_API_KEY). - On every machine that runs agents:
nfltr node join --max-agents 2 --allow-all-tools, withCLAUDE_CODE_OAUTH_TOKENorANTHROPIC_API_KEYin its environment. See Join machines. - Give the hub a goal:
nfltr orch "fix the flaky test and open a branch with the fix", or add the MCP server to your own Claude Code session. - Follow along with
nfltr orch task list --active,nfltr orch task status --task TASK_ID, ornfltr orch hub runson the hub's machine.
On one machine with no account configured, nfltr orch starts a local relay and node by itself.
What the hub sees when things go wrong
| Completion | Meaning |
|---|---|
node_lost | The node stopped mid-job. The hub may re-issue the work; a spawn that names that machine waits for it to rejoin. |
tools_not_allowed | The node joined without --allow-all-tools and the agent needed tools. |
budget_exceeded | The spawn's budget or the hub's --hub-max-tokens / --hub-max-usd ran out. |
| no connected worker satisfies constraints | No joined node matched the spawn's machine, labels, or harness within its bound. |
| repository refused | The spawn named a repository no --allow-repo glob on that node allows. |
A stopped agent leaves a recovery checkpoint patch. See Troubleshooting.
Next reads
- Getting Started — sign up, install the CLI, run a first goal.
- Give the hub a goal — one goal, end to end.
- Many agents across machines — watch, steer, continue, and stop.
- Use nfltr from Claude Code — the hub inside your own session.
- Join machines — nodes, tools, repositories, and credentials.
- Hub tools — every tool and spawn constraint.
- Dashboard walkthrough — your hubs, machines and keys in the browser.
- CLI reference —
nfltr orchandnfltr node.
Give the hub a goal
Join a machine, then hand a Claude hub the work.
Give the hub a goal Getting Started Watch the demos Open Dashboard