Base
OpenCode
Orchestration
MCP Server
Transport
SSH
Access
Tailnet
ADI Code — demo
01 — The Problem

One agent, one machine, one thread

A single coding agent runs where you launched it and works one task at a time. But real work in a home lab is spread across boxes — a GPU node here, a database host there, a web server somewhere else — and often needs several things done at once. Copy-pasting an agent between terminals doesn't scale, and neither does babysitting one long-running thread. The fix is an agent that can reach every machine and delegate.

02 — What It Does

A control surface for a fleet of agents

ADI Code wraps OpenCode's editor-grade chat in an ADI-branded webapp: / for commands, @ to pull in files and context, and a model picker that spans local fleet LLMs and cloud models like GPT-5.5. The difference is orchestration — a prompt can fan out into a lead agent that spawns subagents, each landing on a different SSH host, working its slice, and reporting back.

Interface
OpenCode Surface
The familiar OpenCode chat — slash-commands, @-context, streaming, and per-workspace folders — rebranded as ADI Code and served in the browser.
Orchestrator
MCP Server
An MCP server is the orchestration layer. Every agent and subagent is spawned and supervised through its tools — it deploys agents onto reachable lab hosts over SSH, tracks their status, streams output, and can stop or resume them.
Agents & Subagents
Nested Delegation
A lead agent decomposes the task and spawns subagents that run concurrently — each on its own host, in its own workspace — then folds their results back into one answer.
Model Layer
Local + Cloud
Point any agent at a local fleet model (Ollama on cortex/genesis) or a cloud model — private by default, cloud when you want the extra horsepower.
03 — How It Works

Prompt → lead agent → subagents on the fleet

You describe the work once. ADI Code plans it and calls its MCP server to launch a lead agent; that agent, through the same MCP tools, delegates to subagents deployed across whatever machines the job touches — all reachable over the tailnet, all reporting back to the same surface.

# one prompt, many hands
you › refactor the API on genesis and update the docs on nexus

lead-agent spawned · planning 2 subtasks
  ├─ subagent @ genesis refactor · running
  └─ subagent @ nexus docs · running

# each runs in its own workspace over SSH, streams back, merges
04 — Stack

Built from open parts

OpenCode for the agent + editor surface, an MCP server that orchestrates agents and subagents over SSH, and a model layer that reaches both local Ollama hosts and cloud providers — the whole thing private on the Tailscale network.