_ _____ _____ _ _ _____ ____
/ \ | ____|_ _| | | | ____| _ \
/ _ \ | _| | | | |_| | _| | |_) |
/ ___ \| |___ | | | _ | |___| _ <
/_/ \_\_____| |_| |_| |_|_____|_| \_\
A multi-agent system for Claude Code and OpenCode where workers spawn other workers.
β‘οΈ Click Use this template (top-right) to create your own Aether repo in 30 seconds.
Inspired by glittercowboy's GSD system
v1.0.0 β First stable production release π
"The whole is greater than the sum of its parts." β Aristotle
Aether brings ant colony intelligence to Claude Code. Instead of one agent doing everything sequentially, you get a colony of specialists that self-organize around your goal.
π Queen (you)
β
βΌ pheromone signals
β
π Workers spawn Workers (max depth 3)
β
βββ π¨ Builders β implement code
βββ ποΈ Watchers β verify & test
βββ π Scouts β research docs
βββ πΊοΈ Colonizers β explore codebases
βββ π Route-setters β plan phases
βββ ποΈ Architects β extract patterns
When a Builder hits something complex, it spawns a Scout to research. When code is written, a Watcher spawns to verify. The colony adapts to the problem.
- Claude Code (Anthropic's CLI) and/or OpenCode
- Node.js >= 16
jqβbrew install jqon macOS
npm install -g aether-colonyThis installs:
- π Claude Code Commands β
~/.claude/commands/ant/(20 slash commands) - π OpenCode Commands β
~/.config/opencode/commands/ant/(20 slash commands) - π OpenCode Agents β
~/.config/opencode/agents/(4 specialized agents) - π Runtime β
~/.aether/(worker specs, utilities)
Open Claude Code or OpenCode in any repo:
/ant:init "Build a REST API with authentication"
/ant:plan
/ant:build 1
/ant:continueThat's it. The colony takes over from there.
| Command | Purpose |
|---|---|
/ant:init "goal" |
π’ Set colony mission |
/ant:plan |
πΊοΈ Generate phased roadmap |
/ant:build N |
π¨ Execute phase N |
/ant:continue |
/ant:init "goal" β Initialize the colony with your project goal. This creates the colony state, sets up constraints, and prepares the system. Run this first in any new project.
/ant:init "Build a REST API with JWT authentication"/ant:plan β Generate a phased project plan. The colony iterates (up to 50 times) with Scout research and Route-Setter planning until confidence reaches 95%. Includes anti-stuck detection that pauses for user input if progress stalls.
/ant:build N β Execute phase N of your plan. Spawns a Prime Worker who coordinates Builders, Watchers, and Scouts. Workers can spawn sub-workers up to depth 3. Each phase ends with Watcher verification.
/ant:build 1 # Build phase 1
/ant:build 3 # Build phase 3/ant:continue β After a build completes, this reviews the work through 6 verification gates (build, types, lint, tests, security, diff), then advances to the next phase. Use --all to auto-continue through all phases with quality gates.
| Command | Purpose |
|---|---|
/ant:focus "area" |
π― Guide colony attention |
/ant:redirect "pattern" |
π« Warn away from approaches |
/ant:feedback "msg" |
π¬ Teach preferences |
/ant:focus "area" β Tell the colony to pay special attention to something. Max 5 focus areas at a time. Workers prioritize these during their work.
/ant:focus "error handling in the auth module"
/ant:focus "performance optimization"/ant:redirect "pattern" β Warn the colony away from specific approaches or patterns. Max 10 redirects. These act as hard constraints workers must respect.
/ant:redirect "don't use jsonwebtoken, use jose instead"
/ant:redirect "avoid synchronous file operations"/ant:feedback "msg" β Teach the colony your preferences. Creates an instinct (learned behavior) that persists across phases. Good for style preferences or project-specific patterns.
/ant:feedback "prefer composition over inheritance"
/ant:feedback "always add JSDoc comments to public functions"| Command | Purpose |
|---|---|
/ant:council |
ππποΈππ Clarify intent via multi-choice |
/ant:swarm "problem" |
π₯ππ‘οΈππ₯ Stubborn bug destroyer |
/ant:council ππποΈππ β Convene the council when you need to clarify your intent through guided multi-choice questions. Works anytime, even mid-build. The council asks about project direction, quality priorities, or constraints, then auto-injects the appropriate FOCUS/REDIRECT/FEEDBACK signals based on your answers.
/ant:council # Opens interactive clarification sessionUse this when:
- Starting a complex project and want to set clear direction
- The colony seems confused about your preferences
- You want to inject multiple constraints at once
/ant:swarm "problem" π₯ππ‘οΈππ₯ β The nuclear option for stubborn bugs. Deploys 4 parallel scouts to investigate from different angles, then applies the best fix automatically. Use when you've tried fixing something multiple times and it keeps failing.
/ant:swarm "Tests keep failing in auth module with undefined error"
/ant:swarm "API returns 500 but logs show no errors"The 4 scouts:
- ποΈ Git Archaeologist β Traces git history to find when it broke
- π Pattern Hunter β Finds similar working code in the codebase
- π₯ Error Analyst β Parses error chains to identify root cause
- π Web Researcher β Searches docs/issues for known solutions
After investigation, swarm cross-compares findings, ranks solutions by confidence, creates a git checkpoint, applies the fix, and verifies it works. If it fails, it rolls back automatically.
| Command | Purpose |
|---|---|
/ant:flag "issue" |
π© Create a flag |
/ant:flags |
π List all flags |
/ant:flag "issue" β Create a flag to track blockers, issues, or notes. Flags persist across context resets and can block phase advancement.
/ant:flag "Database migration needs manual review" --type blocker
/ant:flag "Consider adding rate limiting" --type issue
/ant:flag "Good pattern for error handling" --type noteTypes:
blockerβ Blocks phase advancement until resolvedissueβ Warning that should be addressednoteβ Informational, no action required
/ant:flags β List all flags, resolve them, or acknowledge issues.
/ant:flags # List all active flags
/ant:flags --all # Include resolved flags
/ant:flags --resolve 3 "Fixed in commit abc123"| Command | Purpose |
|---|---|
/ant:status |
π Colony overview |
/ant:phase N |
π View phase details |
/ant:watch |
ποΈ Live tmux monitoring |
/ant:status β Quick overview of colony state: current phase, confidence, active constraints, recent activity, and any flags.
/ant:phase N β View details of a specific phase including tasks, status, and which worker castes are assigned.
/ant:phase 2 # View phase 2 details/ant:watch β Set up a tmux session with 4 panes showing real-time colony activity: status, progress bar, spawn tree visualization, and activity log stream. Requires tmux.
| Command | Purpose |
|---|---|
/ant:colonize |
π Analyze existing codebase |
/ant:organize |
π§Ή Codebase hygiene report |
/ant:colonize β Analyze an existing codebase before planning. Scans key files (package.json, README, entry points, configs) and creates a codebase map. Run this before /ant:plan when working with existing projects.
/ant:organize β Run a hygiene report on the codebase. An Architect ant scans for stale files, dead code, orphaned configs, and other cleanup opportunities. Report-only β doesn't modify files.
| Command | Purpose |
|---|---|
/ant:pause-colony |
βΈοΈ Save state for break |
/ant:resume-colony |
/ant:pause-colony β Save full colony state to a handoff document when you need to take a break or switch contexts. Creates .aether/HANDOFF.md with everything needed to resume.
/ant:resume-colony β Restore colony state from a previous pause. Reads the handoff document and gets you back to where you left off.
- π Nested Spawning β Workers spawn sub-workers (depth 1β2β3 chains)
- π¨ Colorized Output β Each caste has its own terminal color
- ποΈ Runtime Verification β Watchers actually execute code, not just read it
- π© Flagging System β Issues persist across context resets
- π¨ Named Ants β Hammer-42, Vigil-17, Quest-33... they feel real
- π Spawn Tree Visualization β See the colony hierarchy in real-time
| Caste | Emoji | Role |
|---|---|---|
| Builder | π¨ | Writes code, runs commands |
| Watcher | ποΈ | Tests, validates, quality gates |
| Scout | π | Researches docs, finds answers |
| Colonizer | πΊοΈ | Explores codebases, maps structure |
| Route-setter | π | Plans phases, breaks down goals |
| Architect | ποΈ | Synthesizes patterns, extracts learnings |
Instead of direct commands, you emit signals that the colony interprets:
| Signal | Purpose | Decay |
|---|---|---|
π― FOCUS |
"Pay attention to this" | 1 hour |
π« REDIRECT |
"Avoid this approach" | 24 hours |
π¬ FEEDBACK |
"Here's what I like/dislike" | 6 hours |
Each caste has different sensitivity to signals. Builders prioritize FOCUS, Watchers prioritize REDIRECT warnings.
When you run /ant:plan, the colony doesn't just generate a plan once. It iterates:
- Scout researches the codebase, identifies knowledge gaps
- Route-Setter drafts/refines the plan based on findings
- Loop continues until confidence reaches 95% (max 50 iterations)
Iteration 12/50 | Confidence: 78%
βββ Researching: API authentication patterns
βββ Gaps remaining: 2 (rate limiting, error handling)
Confidence is measured across 5 dimensions: codebase knowledge, requirement clarity, risk identification, dependencies, and effort estimation. The loop includes anti-stuck checks β if progress stalls, it pauses for user input rather than spinning.
π Queen (depth 0)
βββ π¨ Builder-1 (depth 1) β can spawn 4 more
βββ π Scout-7 (depth 2) β can spawn 2 more
β βββ π Scout-12 (depth 3) β no more spawning
βββ ποΈ Watcher-3 (depth 2)
- Depth 1: Up to 4 spawns
- Depth 2: Up to 2 spawns (only if genuinely surprised)
- Depth 3: Complete inline, no further spawning
- Global cap: 10 workers per phase
~/.claude/commands/ant/ # Claude Code global slash commands
βββ init.md, plan.md, build.md, continue.md...
βββ (20 command files)
~/.config/opencode/ # OpenCode global config
βββ commands/ant/ # OpenCode slash commands (20 files)
βββ agents/ # Specialized agents (queen, builder, scout, watcher)
~/.aether/ # Global runtime (shared)
βββ workers.md # Worker specs with spawn protocol
βββ aether-utils.sh # Utility layer (34 subcommands)
βββ utils/ # Colorization, spawn tree viz
<your-repo>/.aether/data/ # Per-project state (SHARED between tools)
βββ COLONY_STATE.json # Goal, plan, memory, errors
βββ flags.json # Blockers, issues, notes
βββ activity.log # Worker activity stream
βββ spawn-tree.txt # Spawn hierarchy
Both Claude Code and OpenCode share the same state files in .aether/data/. This means you can:
- Start a project in Claude Code, continue in OpenCode
- Switch tools when hitting rate limits
- Use Claude for orchestration, GLM-4.7 for bulk coding
- Mix and match based on task requirements
1. /ant:init "Build feature X" # Set the goal
2. /ant:colonize # Analyze existing code (optional)
3. /ant:plan # Colony generates phases
4. /ant:focus "security" # Guide attention (optional)
5. /ant:build 1 # Execute phase 1
6. /ant:continue # Review, advance
7. /ant:build 2 # Repeat until done
Or use auto-continue:
/ant:continue --all # Runs all phases with quality gatesAuto-continue halts if a Watcher scores below 4/10 or after 2 consecutive failures.
# Install globally
npm install -g aether-colony
# Verify
aether version
ls ~/.claude/commands/ant/ # Claude Code commands
ls ~/.config/opencode/commands/ant/ # OpenCode commands
# Update
npm update -g aether-colony
# Uninstall (preserves project state)
aether uninstall && npm uninstall -g aether-colonyOpenCode uses whatever model you have configured as your default. The included agents work with any provider.
Optional: Model-per-agent configuration
For advanced users who want different models for different castes, add to your opencode.json:
{
"agents": {
"aether-queen": { "model": "anthropic/claude-sonnet" },
"aether-builder": { "model": "your-preferred/coding-model" },
"aether-scout": { "model": "your-preferred/research-model" },
"aether-watcher": { "model": "anthropic/claude-sonnet" }
}
}This is entirely optional - by default, all agents use your configured default model.
Massive shoutout to glittercowboy and the GSD (Get Shit Done) system. GSD showed what Claude Code could become with the right orchestration. Aether takes that inspiration and adds ant colony dynamics β pheromones, castes, and nested spawning.
MIT β do whatever you want with it.
π The colony is greater than the sum of its ants. π