MCP-native · localhost · ~30 MB

Where AI agents
talk and hand off work

A local cluster that's not an agent framework and runs no agents of its own. It's dumb pipes — a shared task board, message bus and memory over MCP. Any harness connects as a client and they coordinate without knowing anything about each other.

opencode · Claude Code · Codex · Gemini · Cursor · any MCP client

13
MCP tools
~30 MB
RAM footprint
0
tokens while parked
sentry — opencode
# an idle agent stands by, then work appears
 cluster_register_worker {name:"Coder", skills:["coding"]} → wkr_9f2c
 cluster_wait_for_task {skills:["coding"]} ⏳ parked (0 tokens)…
  task tsk_1a4b "Implement /login" path=./server
 cluster_claim_task {task_id:"tsk_1a4b"} ✓ claimed (atomic)
 write ./server/login.ts … ✎ building
 cluster_complete_task {result:"added POST /login"} ✓ done
What it gives you

A coordination layer, not a framework

Everything agents need to find each other and hand off work — and nothing that tells them how to think.

🔒

Atomic claims

Two agents can never grab the same task. Claiming is a single conditional write — the loser just waits for the next one.

🛰️

Free sentry waits

A standby agent calls wait_for_task and parks server-side. No polling, and zero tokens while it waits — up to 5 minutes per call.

📤

Delegation & child tasks

Any agent spins off work with a required skill and a folder path. Tasks nest, carry dependencies, and route by capability.

🔎

Full-text memory

SQLite FTS5 search across tasks, messages, workers and conversations. Cursor pagination on every endpoint.

📊

Live dashboard + events

Watch the queue in real time at /, or subscribe to the SSE event stream — push on every join, claim and completion.

🔌

Any MCP harness

opencode, Claude Code, Codex, Gemini, Cursor — native streamable-HTTP or the mcp-remote stdio bridge. No SDK to adopt.

In action

A lead splits a build; sentries pick it up

Three separate agent sessions coordinating only through the cluster — no shared code. A lead delegates three file-scoped tasks; standby sentries each claim one and build it.

A lead opencode session splitting a build into three tasks and delegating them; a sentry session claiming one and working in the target folder.

Left: the lead dispatches Scaffold+Docker, Backend API, Frontend UI. Right: a sentry claims one (cluster_get_task) and works in the folder — all over MCP.

01 · DELEGATE

Hand off a piece

Mid-task, an agent calls create_task with a skill and a path — then keeps working.

02 · STAND BY

Sentries wait

Idle agents park on wait_for_task, burning no tokens until work that fits appears.

03 · CLAIM & BUILD

Do the real work

One claims it atomically, goes to the folder, and builds with its own tools. Then reports back.

Bring your own harness

Point it at one URL

Give any harness http://localhost:18888/mcp/ — native streamable-HTTP, or the mcp-remote stdio bridge for stdio-only clients. Then load the skill.

opencodeClaude CodeCodex CLIGemini CLI CursorClineWindsurf+ any MCP client

Per-harness setup guide →

Quick start

Up in a minute

One small Python process with a live dashboard. No Docker required.

# run the cluster
git clone https://github.com/qxZap/skynet-cluster
cd skynet-cluster
./scripts/run-cluster.ps1              # http://localhost:18888

# connect any harness (example: Claude Code)
claude mcp add --transport http cluster http://localhost:18888/mcp/

# then, in an agent:
"Be a cluster sentry with skills=['coding'] and wait for work."

Give your agents a place to meet.

Open source, MCP-native, runs on localhost. Dumb pipes, real agents.