Skip to content

terraboops/trellis

Repository files navigation

Trellis

A structure for growing ideas with agent teams.

License GitHub Sponsors GitHub Stars

Trellis is an agentic pipeline platform. You describe an idea. Agent teams research, build, test, and launch it — running autonomously with human checkpoints between phases. Custom pipelines, sandboxed execution, plugin marketplace, TLA+-verified scheduling.

Ideas pipeline

Install

brew tap terraboops/tap
brew install trellis

Or from source:

pip install .

Quick start

trellis init myproject && cd myproject
trellis serve                      # dashboard + agents at localhost:8000

Submit your first idea:

trellis incubate "Cat cafe in Vancouver" -d "A cat cafe targeting remote workers"

Or use the web dashboard at localhost:8000/ideas/new.

Philosophy

  • Filesystem-first — agents coordinate through files on a shared blackboard, not message passing
  • No framework — agents are Claude sessions with plain-text prompts and MCP tools
  • Blackboard pattern — context accumulates naturally per idea without a database
  • Human-in-the-loop — approval gates between phases via Telegram or the web dashboard
  • Agents as plain text — prompts are Python string constants, edit them directly
  • TLA+-verified scheduling — the pool scheduler's correctness is formally specified

Pipelines

A pipeline defines which agents work on an idea and in what order. The default pipeline ships with four stages, but you can build your own:

 You ──► idea ──► [ stage 1 ] ──► [ stage 2 ] ──► [ ... ] ──► [ stage N ]
                       │                │                            │
                       ▼                ▼                            ▼
                  blackboard/ideas/<slug>/  ← shared filesystem state

The default pipeline (ideation → implementation → validation → release) is just one template. Create your own in pipeline-templates/ or via the dashboard at /pipelines/:

# pipeline-templates/research-only.yaml
name: research-only
description: Deep research without building anything
agents: [ideation, competitive-watcher]
post_ready: [research-watcher]
gating:
  default: auto
  overrides:
    ideation: human-review

Each idea gets its own pipeline config. You can assign different pipelines to different ideas, or modify an idea's pipeline mid-flight from the dashboard.

Pipeline features:

  • Custom stages — any agents in any order
  • Parallel groups — control which agents can run concurrently on the same idea
  • Per-stage gating — auto, human-review, or llm-decides for each transition
  • Post-ready watchers — agents that run continuously after the pipeline completes
  • Reusable templates — save and share pipeline configurations

The worker pool schedules agents in time-boxed cycles, rotating across ideas by priority. Each agent reads what previous agents wrote and adds its own work.

Features

  • Custom pipelines — define agent stages, gating modes, and parallelism per idea
  • Pipeline templates — save and reuse pipeline configurations
  • Agent wizard — describe what an agent should do and LLM generates the config
  • Plugin marketplace — extend agents with MCP servers, hooks, and skills
  • Sandboxed execution — kernel-level isolation via nono (Seatbelt/Landlock)
  • Priority scheduling — starvation-aware, deadline-pressured, formally verified
  • Feedback routing — structured feedback with identity tracking and deduplication
  • Knowledge curation — agents accumulate and self-curate learnings across runs
  • Real-time dashboard — WebSocket-powered activity feed, cost tracking, pool status

Agent team

Agent customization

Each agent lives in agents/<name>/ with:

  • prompt.py — the system prompt (a Python string constant)
  • .claude/CLAUDE.md — project-level instructions
  • knowledge/ — structured Knowledge Objects accumulated across runs

The prompts are plain text. No abstractions, no DSLs. Edit them directly.

Configuration

Copy .env.example to .env:

Variable Default Description
TELEGRAM_BOT_TOKEN Telegram bot for notifications + approval
POOL_SIZE 3 Concurrent agent slots
JOB_TIMEOUT_MINUTES 60 Worker pool job timeout
MODEL_TIER_HIGH claude-sonnet-4-6 Model for pipeline agents
MODEL_TIER_LOW claude-haiku-4-5 Model for watchers

Agent definitions live in registry.yaml — models, tool access, turn limits, and token budgets per agent.

CLI reference

trellis init [DIR]              Scaffold a new project
trellis incubate TITLE          Submit an idea
trellis status IDEA             Show idea status
trellis list                    List all ideas
trellis serve                   Dashboard + worker pool
trellis serve --background      Run as daemon
trellis serve --stop            Stop daemon
trellis run                     Worker pool only (no web UI)
trellis evolve                  Run knowledge curation
trellis migrate                 Apply registry migrations
trellis migrate-knowledge       Convert learnings.md to Knowledge Objects
trellis migrate-project [DIR]   Migrate an incubator project to Trellis
trellis agent upgrade           Update agents from package defaults

Migrating from incubator

If you have an existing incubator project, Trellis includes a one-command migration:

pip install trellis          # or: brew install terraboops/tap/trellis
cd /path/to/your/project
trellis migrate-project

This handles everything automatically:

  1. Renames .incubator.trellis (project marker)
  2. Renames pool/incubator.logpool/trellis.log
  3. Renames pool/incubator.pidpool/trellis.pid
  4. Updates registry.yaml claude_home paths
  5. Reinstalls trellis in your project .venv (if present)

Use --dry-run to preview changes without applying them.

After migrating, replace incubator with trellis in any shell aliases, cron jobs, launchd plists, or systemd units.

Project layout

myproject/
  .trellis                # project marker
  .env                    # config
  registry.yaml           # agent definitions
  pipeline-templates/     # reusable pipeline configs (YAML)
  agents/                 # prompts and knowledge per agent
    ideation/
    implementation/
    validation/
    release/
    artifact-check/       # quality checks across all ideas
    competitive-watcher/  # monitors competitive landscape
    research-watcher/     # tracks relevant research
    your-custom-agent/    # add your own
  blackboard/ideas/       # per-idea shared state
  workspace/              # agent working dirs

Development

git clone https://github.com/terraboops/trellis.git
pip install -e ".[dev]"
pytest -v

Docs

  • Pipelines — custom pipelines, templates, gating modes, parallel groups
  • Agent system — customization, creating new agents
  • Architecture — blackboard pattern, pool scheduler, phase transitions
  • Self-hosting — daemon mode, launchd, systemd, reverse proxy
  • Security — sandbox, credential proxy, tool policy, audit, attestation
  • Troubleshooting — common issues, diagnostics, copy-paste prompts for Claude Code

Support Trellis

Trellis is built in the open by terraboops.

If Trellis saves you time or sparks ideas, consider:

  • Star this repo — it helps others discover the project
  • Sponsor on GitHub or Ko-fi — supports ongoing development
  • Open an issue — bugs, ideas, and feedback all welcome
  • Share what you build — tag #trellis or open a discussion

License

Apache-2.0

About

Design agent teams that take ideas from concept to launch. Custom pipelines, sandboxed execution, plugin marketplace.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors