← All posts

Announcing Meshfleet v0.3.0 — Fleet-native agent orchestration for OpenCode

Today we're shipping the first public release of Meshfleet. Spawn parallel agents as independent OS processes. Route work to specialists. Let agents collaborate peer-to-peer. No timeouts. No markups. MIT licensed.

Announcing Meshfleet v0.3.0

Today we’re shipping the first public release of Meshfleet — an MCP server that gives OpenCode true peer-to-peer agent orchestration. Spawn parallel agents as independent OS processes. Route work to specialists. Let agents collaborate directly. No timeouts. No markups. MIT licensed.

Install now · Browse the source · Read the spec

The problem we kept hitting

OpenCode ships with a task() primitive for delegating work to subagents. It’s great — until you need to do anything that takes longer than 30 minutes. The built-in 30-minute inactivity timeout is a hard wall. Long-running explorations, deep reasoning, large codebase refactors — all hit it.

We tried the obvious workarounds. A second process. A wrapper script. Cron-driven heartbeat files. They all became more complex than the actual problem we were solving. The agent-mesh was born from that frustration.

What Meshfleet does

Meshfleet is an MCP server that spawns agents as independent opencode run child processes. The 30-minute timeout doesn’t apply because the children are full OS processes, not background tasks. They run until they finish — or until you kill them.

On top of that core, v0.3.0 adds three layers:

1. P2P messaging between agents

Five message types — handoff, question, result, alert, request_help. Agents send messages directly to each other through a JSON-backed inbox. No orchestrator mediation. The mesh becomes a true peer-to-peer network, not a star.

// Agent A → Agent B
await callTool("send_message", {
  from_agent_id: "a1",
  to_agent_id: "a2",
  fleet_id,
  type: "handoff",
  payload: JSON.stringify({
    context: "Found 3 auth middleware files",
    next_step: "Review architecture for fragmentation",
  }),
});

2. Capability-based routing

Agents self-describe their skills. route_work matches a task description to the best agent using keyword + role overlap scoring. Replace fragile hand-wired task assignment with semantic matching.

const { matches } = await callTool("route_work", {
  description: "audit authentication security vulnerabilities",
});
// matches[0] → Security Auditor (highest score)

3. Premade agent discovery

We bundle support for 100+ specialized agent personalities from the agency-agents project. list_agents discovers them. attach_agent dynamically joins one to a running fleet mid-flight. Pick the right specialist at the right moment, not the first agent that happened to be running.

// Attach a security reviewer mid-flight when an alert fires
await callTool("attach_agent", {
  fleet_id,
  role: "Security Reviewer",
  prompt: "Audit the auth middleware for vulnerabilities",
  agent: "application-security-engineer",
});

Why this matters

Three patterns become trivial once agents can talk to each other:

  1. Pipeline handoff: Explore → Oracle → Engineer, each specialist hands context to the next.
  2. Debate consensus: Two agents review the same artifact, debate, converge before reporting.
  3. Failure recovery: An agent hits a wall, broadcasts an alert, peers with relevant skills respond with fixes.

None of these require the orchestrator to mediate. The mesh self-organizes.

What’s next

  • v0.4.0 (next 2 weeks): Heartbeat watchdog, automatic retry with exponential backoff, partial result recovery.
  • v0.5.0 (Q3): SSE push notifications, fleet events, a CLI inspector.
  • v0.6.0 (Q3): Embedding-based capability matching (semantic, not just keyword).
  • v1.0.0 (Q4): Schema versioning, backward compatibility, npm publish.

Read the full roadmap →

Try it

git clone https://github.com/johnmwhitman/agent-mesh.git \
  ~/.config/opencode/mcp-servers/agent-mesh
cd ~/.config/opencode/mcp-servers/agent-mesh
npm install && npm run build

Add to your ~/.config/opencode/opencode.jsonc:

{
  "mcp": {
    "agent-mesh": {
      "type": "local",
      "enabled": true,
      "command": ["node", "~/.config/opencode/mcp-servers/agent-mesh/dist/index.js"]
    }
  }
}

Restart OpenCode. Spawn a fleet. Watch the agents mesh.

Get involved

Meshfleet is MIT licensed. Use it, fork it, ship it. If we disappear tomorrow, the code still works.

— The Meshfleet team