LabMesh is a small, recoverable control plane for experiments coordinated by Codex and other agents. Agents submit bounded work; fixed programs schedule, execute, recover, and verify it.
- admin: human owner and emergency control.
- controller: Main Agent; approves revisions and candidates and makes semantic decisions.
- proposer: AutoResearch; drafts only.
- builder: bounded background Codex worker invoked by a Node.
- runner: fixed local or SSH execution path.
- observer: read-only.
Every labmesh-node is a deterministic daemon. A build work item may cause it to invoke a
bounded codex exec; run, resource probing, dataset staging, recovery, and verification do not
need an agent.
- Source code travels by registered Git repository alias plus immutable commit/tree identity. Source bundles are available only when a task explicitly requests an offline fallback.
- Nodes scan their own process, GPU, log-size, checkpoint, and structured trace state. The server keeps one latest progress projection per attempt and appends events only for milestones, alerts, alert clears, and terminal evidence.
- Recoverable caches and unattached partial uploads expire after 24 hours by default. Active, pending, failed, completed, or not-yet-verified attempt evidence is never part of that cleanup.
- MCP reads are progressive: attach/inbox return the latest two events by default; exact TaskCard, DecisionNode, and DecisionNode-bound task evidence are fetched only when needed.
uv sync --extra dev
$env:LABMESH_DATA_DIR = "$PWD\.runtime\data"
uv run labmesh-serverIn a second terminal:
uv run labmesh bootstrap --name local-admin
uv run labmesh project create --name demo
uv run labmesh node run --config examples/node.local.tomlThe dashboard is served by the same process at http://127.0.0.1:8780/. Production deployment
puts Caddy in front of the service and exposes only TCP 443; on the control host, run
deploy/install-caddy.ps1 once from an elevated PowerShell prompt.