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

  1. Save an API key from the dashboard: nfltr config add-api-key (or set NFLTR_API_KEY).
  2. On every machine that runs agents: nfltr node join --max-agents 2 --allow-all-tools, with CLAUDE_CODE_OAUTH_TOKEN or ANTHROPIC_API_KEY in its environment. See Join machines.
  3. 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.
  4. Follow along with nfltr orch task list --active, nfltr orch task status --task TASK_ID, or nfltr orch hub runs on 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

CompletionMeaning
node_lostThe node stopped mid-job. The hub may re-issue the work; a spawn that names that machine waits for it to rejoin.
tools_not_allowedThe node joined without --allow-all-tools and the agent needed tools.
budget_exceededThe spawn's budget or the hub's --hub-max-tokens / --hub-max-usd ran out.
no connected worker satisfies constraintsNo joined node matched the spawn's machine, labels, or harness within its bound.
repository refusedThe spawn named a repository no --allow-repo glob on that node allows.

A stopped agent leaves a recovery checkpoint patch. See Troubleshooting.

Next reads

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