Skip to content

mlund01/squadron

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

185 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Squadron

Declarative multi-agent AI workflows in HCL — not Python.

Latest release License Downloads Docs

Documentation · Quick Start · Compare · FAQ


Squadron is a declarative agent framework for building and running multi-agent AI workflows. You describe agents, tools, models, and the task graph in HCL configuration — Squadron's runtime handles orchestration, state, dependency resolution, conditional routing, persistence, and resume. No Python glue code, no LangChain-style call chains, no hand-rolled state machines.

It ships as a single Go binary. MIT-licensed. Supports Anthropic, OpenAI, Google Gemini, and Ollama, and speaks Model Context Protocol in both directions.

mission "research" {
  commander { model = models.anthropic.claude_sonnet_4 }
  agents    = [agents.researcher, agents.analyst]

  task "gather" {
    objective = "Find the top 5 papers on ${inputs.topic}"
    agents    = [agents.researcher]
  }

  task "analyze" {
    depends_on = [tasks.gather]
    objective  = "Read each paper and extract the key findings"
    agents     = [agents.analyst]

    router {
      route { target = tasks.deep_dive; condition = "Findings warrant deeper investigation" }
      route { target = tasks.summarize; condition = "Findings are routine" }
    }
  }

  task "deep_dive" { objective = "Investigate the most promising lead in detail" }
  task "summarize" { objective = "Write a one-page summary" }
}
squadron mission research -c ./config --topic "post-quantum cryptography"

That's the whole workflow. Diff it in a PR. Review it like infrastructure code.

Install

curl -fsSL https://raw.githubusercontent.com/mlund01/squadron/main/install.sh | bash

Or grab a binary from GitHub Releases. Full options in the installation docs.

Quick start

# Scaffold a starter project
squadron quickstart

# Set an API key (stored in an encrypted vault)
squadron vars set anthropic_api_key sk-ant-...

# Launch the command center
squadron engage -w

Full walkthrough: Quick Start.

Why Squadron?

Workflows as config, not code. Your entire mission graph — agents, tools, dependencies, branching, schedules, budgets — lives in one HCL file you can diff in a pull request. No imperative orchestration buried across Python modules.

Resilient by default. Squadron persists every commander session, agent session, route decision, and task output to SQLite (or Postgres) as the mission runs. squadron mission --resume <id> picks up from the last completed step, including mid-flight tool calls.

Plugins in two languages. Squadron's plugin system runs Go or Python plugins as gRPC subprocesses via hashicorp/go-plugin. Auto-built from local source with content-hash caching. Process-isolated, stateful across tasks (a Playwright plugin opens a browser once and reuses it across every task in every mission), and distributable via GitHub releases.

MCP both directions. Squadron consumes any MCP server (npm packages, GitHub release binaries, HTTP, or local stdio) — auto-install handled. Squadron itself can also run as an MCP server so Claude Desktop, Claude Code, and Cursor can browse your missions and trigger runs.

Mix model providers per task. Use Claude Sonnet for orchestration, GPT-4 for the hard subtask, a local Llama for the privacy-sensitive step, Gemini for vision. Declare each model block once and reference per agent.

Scheduled, webhook-triggered, budgeted. Each mission can declare a schedule block (cron / daily / interval with timezone + weekday filters), a trigger block (webhook), and a budget block that halts the run when token or dollar caps are reached.

Web command center. squadron engage -w launches a local web UI for live mission graph visualization, run history, log streaming, and webhook routing. Or connect multiple Squadron instances to a remote command center.

How does it compare?

Tool Style Language Best for
Squadron Declarative HCL config Production agent pipelines, reviewable workflows, scheduled jobs
LangGraph Imperative Python Custom runtime logic, deep LangChain integration
CrewAI Imperative Python Quick Python prototypes, role-based crews
AutoGen Conversational Python Multi-agent dialogue patterns, GroupChat
n8n Visual GUI / JSON Broad SaaS integration, non-LLM-first workflows

Honest tradeoffs on each comparison page.

What's in the box

  • Model providers out of the box: Anthropic, OpenAI, Google Gemini, Ollama. Mix per agent or per task.
  • Missions — task DAGs with depends_on, conditional router, unconditional send_to, parallel/sequential iteration over datasets, and cross-mission routing.
  • Plugins — Go and Python, gRPC subprocess, auto-build, content-hash caching, distributable via GitHub releases.
  • MCP tools — declare any MCP server (npm, GitHub, HTTP, or local) and Squadron auto-installs and proxies tools to agents. OAuth login flow for hosted servers (squadron mcp login).
  • MCP host — run Squadron as an MCP server for Claude Desktop, Claude Code, Cursor, and other MCP clients.
  • Schedules & triggers — cron-based or HTTP-triggered missions, with per-mission concurrency limits.
  • Budgets — token + dollar caps per mission or per task.
  • Memory & Scratchpad — sandboxed filesystem locations agents can read/write. Persistent memory (shared with memory "name" or per-mission with memory { }) plus per-run scratchpad = true opt-in. Squadron owns the paths; scratchpads auto-clean after 7 days.
  • Gateways — managed subprocesses that bridge Squadron to Slack, Discord, Teams, or any custom system via the Gateway SDK.
  • Encrypted vault — secrets stored at rest with AES-256-GCM + Argon2id; passphrase in the OS keychain.
  • Single binary, no runtime deps. Docker images on every release.

Docker

docker run -v ./config:/config -v squadron-data:/data/squadron -p 8080:8080 \
  ghcr.io/mlund01/squadron engage

Alpine (default) and Debian images on ghcr.io/mlund01/squadron. Details: Docker docs.

Learn more

Build your own plugin

Plugins extend Squadron with custom tools. The squadron-sdk provides Go and Python interfaces — auto-built on every config load with content-hash caching. See Distributing Plugins for the publishing flow.

Community

License

MIT