// sovereign-fleet v0.6.1 · MIT · Linux · self-hosted

Sovereign Fleet

Run coding agents unattended on your own machine: the kernel confines them, gates verify them, nothing lands unchecked.

Sovereign Fleet: A glowing crystalline worktree confined within a protective boundary, resting on dark granite

Minutes per Correct Result Beats Raw Pass Count

On local inference hardware, failed agent runs that spin until timeout starve the queue. We ran 192 unattended tasks across four harnesses on one NVIDIA DGX Spark (128 GB unified memory, Qwen3.6-35B on vLLM). Goose failed fast, freeing local VRAM in 1.6 minutes per correct result.

Harness Passed / 48 First Try Min / Correct Result Min on Failed Runs
goose 1.55.0 38 / 48 (79.2%) 35 1.6 min 27.7 min
aider 0.86.2 39 / 48 (81.3%) 32 3.0 min 104.5 min
pi 1.3.0 28 / 48 (58.3%) 27 5.0 min 117.0 min
opencode 1.19.3 2 / 48 (4.2%) 2 6.5 min 10.8 min

How Sovereign Fleet Executes Tasks

Tasks move through five distinct stages. No agent claim is trusted; only clean compiler gates inside a Linux Landlock kernel sandbox allow code to land on your main branch.

1

Intake

Tasks arrive via REST API, 12-tool MCP server, Gitea issue poller, or Matrix chat butler.

2

Router

Thompson sampling pairs harnesses with models by cost-weighted minutes per correct result.

3

Landlock Sandbox

Worktree-only writes and TCP port filtering (ABI v6). Network egress limited to whitelisted ports.

4

Compiler Gates

Scope check, AST GateGuard syntax checks, and sandboxed repo verify.sh / pytest execution.

5

Landing & Review

Rebase and fast-forward merge onto main, atomic JSON receipts, and cross-lane code reviews.

PWA Dashboard & Tailscale Observability

Real screenshots of the running dashboard shell. Zero third-party trackers, JetBrains Mono typography, real-time router recommendations, and two-way Matrix approval interactions.

Installation & System Requirements

Install the daemon locally in three commands. Runs with zero database dependencies.

// 1. Clone the repository
git clone https://github.com/sovgrid/sovereign-fleet.git && cd sovereign-fleet
// 2. Install editable package
pip install -e .
// 3. Start the daemon
fleet daemon

System Requirements

  • Linux Kernel: 6.12+ recommended for Landlock LSM ABI v6 TCP network port filtering.
  • Runtime: Python 3.12+ and Git 2.38+ (for worktree support).
  • Supported Harnesses: Any combination of Goose 1.55+, Aider 0.86+, OpenCode 1.19+, Pi, or Claude Code.
  • Inference: Local vLLM / SGLang server (port 30001) or API keys for commercial providers.

Packaged Goose Recipes

Sovereign Fleet packages standard Goose Recipes in one-directory-per-recipe layout. Each recipe can be inspected, validated, and triggered directly with Goose.

recipes/fleet-ab-proposal-eval/recipe.yaml

Sovereign Fleet A/B Proposal Evaluation

Evaluates self-improvement proposals against baseline test fixtures and enforces the strict proof rule (kept only if better: higher landed tasks, or equal landed tasks with measurably faster median minutes).

Run Command: goose run --recipe recipes/fleet-ab-proposal-eval/recipe.yaml --params proposal_path=proposal.md --params eval_script=your_eval.py --params dry_run=true
recipes/fleet-self-improvement/recipe.yaml

Fleet Self-Improvement

Automated loop that ingests task autopsies across fleet spools, identifies recurring failure classes, drafts targeted AGENTS.md and prompt proposals, and submits them to the A/B evaluation recipe.

Run Command: goose run --recipe recipes/fleet-self-improvement/recipe.yaml --params lessons_script=your_lessons.py --params eval_script=your_eval.py
recipes/fleet-bench-runner/recipe.yaml

Sovereign Fleet Benchmark Suite Runner

Runs multi-tier benchmark suites across harnesses (Goose, Aider, OpenCode, Pi, Claude Code) using the Sovereign Fleet MCP server to verify pass rates and time-to-correct-result.

Run Command: goose run --recipe recipes/fleet-bench-runner/recipe.yaml --params bench_script=your_bench.py --params tier=1

What Sovereign Fleet Does Not Do Yet

Software engineering tools must be clear about their boundaries. Here is what is intentionally out of scope for the current 0.6.1 release:

Single-Host Execution Today

LocalBackend runs worktrees and processes on the daemon host. Multi-machine grid orchestration across remote workers is experimental.

Kernel 6.12+ Landlock Invariant

TCP network port filtering relies on Landlock ABI v6. On older Linux kernels or non-Linux OSes, sandbox port filtering requires container wrappers or FLEET_SANDBOX=0.

No Container-per-Task Root

Tasks that require root privileges, kernel driver builds, or custom system packages are not sandboxed safely by user-level Landlock.

Single-Resident Local GPU Mutex

Local 35B models run on a single unified GPU under a strict residency mutex (max_concurrent = 1). Parallel local tasks require multi-GPU setups or cloud API fallbacks.

Articles & Technical Documentation

Every architecture decision and benchmark is documented in public write-ups.