v0.7.0 · The Intelligence Grid

One spec.
Three agent harnesses.

Describe a fleet of AI agents once — roles, skills, handoff graph — and compile it into native harnesses for Claude Code, opencode and goose. No hand-porting agents between tools.

curl -fsSL https://infinia-harness.adid.dev/install.sh | sh
macOS · Linux · Windows Node ≥ 18, or no Node at all MIT core · AGPL enterprise One runtime dependency

Capabilities, not tool names. Handover as a contract, not a convention.

A compiler for agent teams

Every agentic CLI grew its own harness format. Claude Code has subagents, Agent Skills and teams; opencode has primary/subagent markdown and commands; goose has recipes and sub-recipes. The concepts are isomorphic — a named specialist with a prompt, scoped permissions, a methodology, and a way to pass work on. Infinia Harness treats that shared shape as a compile target.

fleet.yaml ──► fleetsmith ──┬──► .claude/agents/*.md + .claude/skills/*/SKILL.md + CLAUDE.md
                            ├──► .opencode/agents/*.md + commands/ + skills/ + AGENTS.md
                            ├──► .goose/recipes/*.yaml (+ AGENTS.md, read first-class by goose)
                            └──► _fleet/ (portable handover protocol: handoffs + ledger)
Claude Code
subagents · Agent Skills · CLAUDE.md
SubagentStop handover gate
opencode
primary + subagents · commands · skills
permission.task handoff graph
goose
recipes + sub-recipes · AGENTS.md
response.json_schema validation
5
fleet patterns, from pipeline to expert-pool
3
compile targets from one source spec
1
model call in the whole self-evolution loop
0
features gated behind the enterprise tier

The parts a hand-written harness keeps getting wrong

Each of these is a defect people hit repeatedly when they wire an agent team by hand. The compiler emits the fix rather than an instruction to remember it.

🧭

Capabilities, not tool names

Agents declare read/edit/run/web/spawn. Each adapter maps that onto its own permission model — a Claude Code tools: allowlist, opencode allow/deny maps, goose extensions. Least privilege survives the port.

🤝

Handover as a contract

Every edge in the fleet carries an artifact plus acceptance criteria. The protocol is file-based — the only channel all three tools share — so behaviour is portable, auditable and resumable. The message is the doorbell; the file is the payload.

🚧

Enforced gates, not advice

Where a target can check something deterministically, the compiler emits the check. A Claude Code SubagentStop hook blocks an agent until its handoff file is complete. A denied opencode agent disappears from the task tool entirely.

🔁

Loops that stop three ways

Declare loop: { until, max, check } on a phase or a schedule: on the fleet. Each compiles to a bounded loop on every target — ending on success, on no progress, or at the cap, rather than only burning the budget.

📈

A harness that grades itself

qa is a deterministic verification battery; eval measures whether skills actually trigger, against a held-out corpus with a real noise floor; evolve proposes its own improvements on a branch, for review.

🗄️

Prompts built for caching

Agent bodies are invariant for a given spec — no dates, no run counters — so a repeatedly-run fleet keeps its prompt cache instead of rebuilding it. Per-run state lives in handoff files.

OSS is complete on its own

The file backend and git are the supported open-source answer, forever. Enterprise adds a shared cortex on top — and every enterprise capability names the core answer it degrades to. Nothing is enterprise-only.

Open source

fleetsmith

MIT · one runtime dependency
  • Compile to Claude Code, opencode and goose
  • Five fleet patterns and the handoff graph
  • File-based handover protocol under _fleet/
  • Enforced handover gate, capability mapping, loop bounds
  • qa, eval and evolve self-improvement
  • Team knowledge shared through git, PR-gated
Quick start
Enterprise

fleetsmith-ee

AGPL-3.0-only · needs a RelataDB cortex
  • See teammates' in-flight work before a commit exists
  • Team-wide semantic recall, mid-task
  • Org knowledge import — meetings, calls, decisions
  • Cross-developer file and task overlap detection
  • Purpose-scoped audit and an approval channel
  • A cortex admin console over the whole grid
How the grid works
Degradation is the design

No configuration means exactly OSS behaviour. An unreachable or unlicensed cortex means one warning, stale-marked grid files, and runs that still complete. Grid state is advisory: it may never gate an agent or alter a QA verdict.

One command, both editions

The installer asks what it needs and defaults safely to everything else. Piped into a shell with no terminal attached, every question takes its default and the run is fully non-interactive — so the same command works in CI.

curl -fsSL https://infinia-harness.adid.dev/install.sh | sh

Installs the OSS edition. Detects Node, picks npm or the standalone binary, writes ~/.fleetsmith/env.sh, and touches nothing outside your home directory.

Install

Run the command above, then load the environment it wrote.

. ~/.fleetsmith/env.sh

Describe your fleet

Pick a pattern from the shape of your work, then edit the generated spec.

fleetsmith init my-fleet --pattern pipeline --domain "what your team does"

Compile it

Validate first — the validator catches design smells, not just schema errors.

fleetsmith validate fleet.yaml
fleetsmith build fleet.yaml --target all

Run it

Restart your agent CLI in the project. The fleet's agents and skills are now native to it — in Claude Code, say "build a harness for this project" and the bundled meta-fleet takes over.

Prefer to read before you run? The installer is plain POSIX shell and is served from this site — read install.sh first, or run it with --dry-run to see every action it would take without taking any.

Build the harness, not the plumbing

Start with the quick start if you want a fleet running in ten minutes, or the architecture if you want to know what it emits and why before you install anything.