A self-hostable control plane for AI coding agents — and the integrated toolchain it sits on top of.
Warren is the headline project. Point it at a GitHub repo, pick an agent, write a prompt; warren spawns the agent inside a sandbox, streams events back to a live UI, lets you steer mid-run, and pushes the workspace branch when it's done.
- Self-hostable. One container, one volume, one HTTP API, one UI. Run it on a home server, a Fly app, or a cluster.
- Sandboxed per run. Every run gets a fresh isolated workspace via burrow; the host is unreachable.
- Closes the autonomous loop. Polls GitHub for triaged issues, dispatches runs, opens PRs. No external daemon.
- Standalone first. Ships with the
claude-codeandsaplingagents inline — fresh-install only needs a GitHub URL and an Anthropic key.
git clone https://github.com/jayminwest/warren && cd warren
cp .env.example .env
docker compose up -d
open http://localhost:8080The rest of os-eco is the toolchain warren stands on. Each piece works standalone too, but together they form one coherent agent operating system.
Warren (cloud control plane)
│
┌──────────────┼──────────────┐
│ │ │
Substrate Context Runtime
───────── ─────── ───────
Burrow Mulch Sapling
Plot Seeds
Canopy
| Tool | CLI | npm | What it does |
|---|---|---|---|
| Burrow | burrow / bw |
OS-isolated sandbox runtime — bwrap on Linux, sandbox-exec on macOS. No Docker, no daemon. Warren embeds it per run; usable standalone for any coding agent. |
|
| Plot | plot |
Typed, queryable coordination object for multi-agent work — binds together seeds issues, mulch records, prompts, runs, and PRs around a single unit of work. The substrate warren uses to keep humans and agents on the same page. |
| Tool | CLI | npm | What it does |
|---|---|---|---|
| Mulch | mulch / ml |
Structured expertise management — record conventions, patterns, and decisions as you work; retrieve them at the start of every session. In production across multiple engineering teams as the memory layer for their Claude Code / agent workflows. | |
| Seeds | sd |
Git-native issue tracking — JSONL storage, dependency graphs, structured plans for LLM decomposition, zero external dependencies. The primary planning and tracking surface for agent work. | |
| Canopy | cn |
Prompt management — version-controlled prompt composition with inheritance, pinning, and schema validation. |
| Tool | CLI | npm | What it does |
|---|---|---|---|
| Sapling | sp |
Headless coding agent with proactive context management between every LLM call. An alternative runtime warren can dispatch alongside Claude Code. |
Every tool in os-eco shares the same shape:
- Git-native storage — JSONL and YAML files that live in your repo, merge cleanly, and need no external database
- Zero runtime dependencies — each tool is a single Bun binary with no daemon or server
- Multi-agent safe — advisory file locking so concurrent agents don't corrupt shared state
- CLI-first — every operation is a shell command with
--jsonoutput for scripting and piping - Consistent UX — shared color palette, status icons, help screen layout, and flag conventions
The headline path is warren. Requires Docker.
git clone https://github.com/jayminwest/warren && cd warren
cp .env.example .env # add ANTHROPIC_API_KEY + GITHUB_TOKEN
docker compose up -d
open http://localhost:8080Each tool also stands alone. Install only what you need with Bun >= 1.0:
# Context primitives
bun install -g @os-eco/mulch-cli # expertise
bun install -g @os-eco/seeds-cli # issues
bun install -g @os-eco/canopy-cli # prompts
# Substrate
bun install -g @os-eco/burrow-cli # sandbox
bun install -g @os-eco/plot-cli # coordination
# Runtime
bun install -g @os-eco/sapling-cli # headless agentInitialize the data layer in a project:
cd your-project
ml init && sd init && cn init
ml --version && sd --version && cn --version# An agent starts a session
ml prime # load project expertise into context
sd ready # find unblocked issues to work on
sd update sd-a1b2 --status in_progress
# Agent does work, then wraps up
ml record testing --type convention \
--description "Always mock fs in unit tests"
sd close sd-a1b2
# Multi-agent coordination via plot
plot init "Add OAuth to billing portal"
plot attach plot-abc1 seeds_issue:sd-a1b2 --role tracks
# Cloud orchestration via warren
# (see warren/README.md for the full UI + API surface)Overstory (overstory / ov, @os-eco/overstory-cli) is a local-first orchestrator: it spawns agents in tmux + git worktrees, coordinates through a SQLite mail layer, and merges with conflict resolution. Choose it over warren when you want a local-only workflow with no HTTP control plane.
bun install -g @os-eco/overstory-cli
cd your-project && ov init
ov sling sd-c3d4 --strategy worktree # spawn an agent for an issueEach tool lives in its own sub-repo with independent git history, CI, and npm versioning. This meta-repo tracks cross-cutting concerns:
os-eco/
warren/ # sub-repo: @os-eco/warren-cli — headline control plane
burrow/ # sub-repo: @os-eco/burrow-cli — sandbox primitive
plot/ # sub-repo: @os-eco/plot-cli — coordination object
mulch/ # sub-repo: @os-eco/mulch-cli — expertise
seeds/ # sub-repo: @os-eco/seeds-cli — issues
canopy/ # sub-repo: @os-eco/canopy-cli — prompts
sapling/ # sub-repo: @os-eco/sapling-cli — headless agent
overstory/ # sub-repo: @os-eco/overstory-cli — local orchestrator
branding/ # shared visual spec, CLI standards, checklists
.mulch/ # ecosystem-level expertise
.seeds/ # ecosystem-level issues
.canopy/ # shared prompt templates
.overstory/ # multi-repo orchestration config
# Run tests, lint, and typecheck for any tool
cd warren && bun test && bun run lint && bun run typecheck
cd burrow && bun test && bun run lint && bun run typecheck
cd plot && bun test && bun run lint && bun run typecheck
cd mulch && bun test && bun run lint && bun run typecheck
cd seeds && bun test && bun run lint && bun run typecheck
cd canopy && bun test && bun run lint && bun run typecheck
cd sapling && bun test && bun run lint && bun run typecheck
cd overstory && bun test && bun run lint && bun run typecheck| Tool | Status | Notes |
|---|---|---|
| Greenhouse | Archived 2026-05 | Autonomous development daemon (polls GitHub → dispatches orchestrator runs → opens PRs). Superseded by warren, which absorbed the autonomous-loop role into the same control plane that runs cloud agents. The repo is archived and remains readable for historical reference; the npm package @os-eco/greenhouse-cli was never published. |