GitHub-native multi-LLM-agent autonomous development framework
A GitHub Copilot SDK extension that turns your GitHub repo into a self-organizing software team.
Issue opened → PM triages → Dev agent writes code → Review agent reviews → PR merged.
Squadron is an autonomous development system built on the GitHub Copilot SDK. It listens for GitHub webhooks, triages issues with a PM agent, spawns specialized dev and review agents to do the work, and coordinates the entire lifecycle — from issue to merged PR — without human intervention.
Each agent runs in its own Copilot SDK session with its own git worktree, tools, and context. Everything is configurable via YAML and Markdown agent definitions stored in your repository.
- Multi-agent orchestration — PM, feature dev, bug fix, docs, infra, PR review, security review agents
- GitHub-native — GitHub App webhooks, issue/PR CRUD, label taxonomy, approval flows
- Label-driven spawning — applying
feature,bug,security, ordocumentationlabels automatically spawns the matching agent - Branch isolation — each agent gets its own git worktree
- Dependency tracking — agents can block on other issues
- Circuit breakers — per-role limits on tool calls, turns, and active duration
- Sleep/wake lifecycle — persistent agents sleep when blocked, wake when blockers resolve
- Reconciliation loop — detects stuck agents and auto-escalates
- Tool-based architecture — 20+ specialized tools with per-agent selection
- Observability dashboard — real-time agent activity via SSE streaming
- Python 3.11+
- GitHub repository with admin access
- GitHub Copilot access (or an LLM API key: OpenAI or Anthropic)
git clone https://github.com/your-org/squadron.git
cd squadron
pip install -e .Copy the example configuration into your target repository:
# In your target repository
cp -r /path/to/squadron/examples/.squadron .Edit .squadron/config.yaml with your project details:
project:
name: "my-project"
owner: "my-github-org"
repo: "my-repo"
default_branch: main
human_groups:
maintainers: ["your-github-username"]Security note: The
human_groups.maintainerslist controls who can trigger Squadron system events (agent spawning, PM triage, command routing). Only users listed here can activate Squadron workflows. The Squadron bot identity (squadron-dev[bot]) is always permitted regardless of this list. An empty or missingmaintainersgroup blocks all human-triggered event processing. See the Configuration Reference for full details.
Follow the GitHub App setup guide to create a GitHub App for your repository and obtain:
- App ID
- Private key (
.pemfile) - Installation ID
- Webhook secret
# Set required environment variables
export GITHUB_APP_ID=123456
export GITHUB_PRIVATE_KEY="$(cat your-app.private-key.pem)"
export GITHUB_INSTALLATION_ID=78901234
export GITHUB_WEBHOOK_SECRET=your-webhook-secret
export COPILOT_GITHUB_TOKEN=github_pat_...
# Start the server
squadron serve --repo-root /path/to/your/repoFor local webhook testing, use ngrok:
ngrok http 8000
# Update your GitHub App webhook URL to the ngrok URL + /webhook# Deploy to Azure Container Apps
squadron deploy --repo-root /path/to/your/repoSee the Deployment Guide for detailed deployment instructions.
- Open an issue in your repository labeled with
feature,bug, ordocumentation - Watch the PM agent triage and assign the issue (should appear within seconds)
- See development agents create branches and implement solutions
- Review the PR created by the development agent
GitHub Webhooks ──▶ FastAPI Server ──▶ Event Router ──▶ Agent Manager
│
PM Agent (ephemeral)
├── Reads issue
├── Applies label
└── Posts triage comment
│
┌───────────────┴──────────────┐
Dev Agent Review Agent
(persistent) (persistent)
├── Creates branch ├── Reads PR diff
├── Writes code ├── Posts inline comments
├── Opens PR └── Submits review
└── Handles feedback
Label → Agent spawning:
| Label | Agent | Auto-spawn |
|---|---|---|
feature |
feat-dev |
✅ |
bug |
bug-fix |
✅ |
security |
security-review |
✅ |
documentation |
docs-dev |
✅ |
infrastructure |
infra-dev |
Via @squadron-dev infra-dev mention |
Squadron includes these pre-configured agent types:
| Agent | Role | Lifecycle |
|---|---|---|
pm |
Project Manager — triages, labels, coordinates | Ephemeral |
feat-dev |
Feature Developer — implements new features | Persistent |
bug-fix |
Bug Fix Agent — diagnoses and fixes bugs | Persistent |
docs-dev |
Documentation Developer — writes and updates docs | Persistent |
infra-dev |
Infrastructure Developer — CI/CD, deployment | Persistent |
pr-review |
PR Reviewer — code quality review | Persistent |
security-review |
Security Reviewer — vulnerability analysis | Persistent |
test-coverage |
Test Coverage Reviewer — test adequacy review | Persistent |
See Agent Roles Reference for complete agent documentation.
Agents are defined as Markdown files with YAML frontmatter in .squadron/agents/:
---
name: feat-dev
display_name: Feature Developer
emoji: "👨💻"
description: Implements new features
tools:
- read_file
- write_file
- bash
- git_push
- open_pr
- check_for_events
- report_complete
lifecycle: persistent
---
# Feature Development Agent
You implement new features by writing code, tests, and opening pull requests...See Agent Configuration Reference and Configuration Reference for all options.
| Guide | Description |
|---|---|
| Getting Started | Step-by-step setup guide |
| Documentation Index | Full docs navigation |
| Architecture | System design and components |
| Agent Roles | All agent types and triggers |
| Configuration | config.yaml reference |
| Tools Reference | All available tools |
| Agent Config Reference | Agent frontmatter reference |
| Observability | Dashboard and monitoring |
| Deployment Guide | Production deployment |
| Troubleshooting | Common issues and solutions |
| Contributing | Development guide |
After cloning, install development dependencies and set up hooks:
pip install -e ".[dev]"
pre-commit install --hook-type pre-commit --hook-type pre-pushManually run checks:
# Lint + format
ruff check . --fix && ruff format .
# Unit tests
pytest tests/ --ignore=tests/e2e -x -q
# E2E tests (requires credentials in .env)
pytest tests/e2e/ -x -qSee CONTRIBUTING.md for full development guidelines.
MIT
- GitHub Issues: Report bugs and request features
- Discussions: Community discussion and questions
- Documentation: docs/ directory