Self-Organizing Agent Swarm with animated terminal UI.
╔═╗╦ ╦╔╦╗╔═╗╔╗╔╔═╗╔╦╗╔═╗
╠═╣║ ║ ║ ║ ║║║║║ ║║║║╠═╣
╩ ╩╚═╝ ╩ ╚═╝╝╚╝╚═╝╩ ╩╩ ╩
Self-Organizing Agent Swarm
Describe what you want to build. Autonoma's Director agent autonomously:
- Decomposes your goal into tasks
- Spawns specialized agents with creative names
- Assigns work based on agent skills
- Monitors progress and adjusts the plan
- Celebrates when everything is done
All visualized in a comic-style animated TUI where you see agents think, talk, and work.
┌──────────────────────────────────────────────────────────────────────────────┐
│ 🌟 AUTONOMA Self-Organizing Agent Swarm │ my-project │ Round 5/30 │
├────────────────────────────────────────────┬─────────────────────────────────┤
│ 🎬 Stage │ 📋 Tasks │
│ │ ✅ Design architecture │
│ ┌──────────────┐ │ 🔄 Implement core module │
│ │ Let me think │ ┌─────────────────┐ │ 📌 Write tests │
│ └──────┬───────┘ │ Writing main.py │ │ ⬜ Create documentation │
│ ╰ └────────┬────────┘ │ ⬜ Final review │
│ 👑💭 ⚡⌨ │ │
│ /|\ /|\ │ ██████░░░░ 40% (2/5 done) │
│ / \ / \ ├─────────────────────────────────┤
│ Director Coder │ 📁 Files │
│ │ 📂 src/ │
│ 🎨 🧪 │ 📄 main.py │
│ /|\ /|\ │ 📄 models.py │
│ / \ / \ │ 📄 README.md │
│ Designer Tester │ │
├────────────────────────────────────────────┤ │
│ 💬 Activity │ │
│ 14:23:01 👑 Director: Plan ready! │ │
│ 14:23:02 ⚡ Coder: Writing main.py... │ │
│ 14:23:05 📄 Coder created src/main.py │ │
└────────────────────────────────────────────┴─────────────────────────────────┘
- No predefined roles — the Director decides what agents are needed
- Self-assigning tasks — agents pick up work that matches their skills
- Dynamic spawning — new agents are created when the workload demands it
- Agent communication — agents talk to each other, ask for help, negotiate
- ASCII character sprites that change based on state (thinking, working, celebrating)
- Speech bubbles that appear and fade
- Movement — agents move around the stage
- Frame-by-frame animation at configurable tick rate
cd autonoma
uv sync
export ANTHROPIC_API_KEY=sk-ant-xxxxx
# Build something
autonoma build "A REST API for managing bookmarks with tags and search"
# Interactive mode
autonoma interactive
# Demo
autonoma demosrc/autonoma/
├── models.py # Core data models (Persona, Task, Message, Position...)
├── config.py # Settings
├── event_bus.py # Async pub/sub with wildcards
├── cli.py # Click CLI (build, interactive, demo)
├── agents/
│ ├── base.py # AutonomousAgent (think→decide→act loop)
│ ├── director.py # DirectorAgent (decomposes goals, spawns agents)
│ └── swarm.py # AgentSwarm (lifecycle, routing, animation)
├── tui/
│ ├── sprites.py # ASCII sprites, speech bubbles, animation frames
│ └── renderer.py # Rich Layout animated dashboard
├── engine/
│ └── runner.py # AutonomaEngine (unified swarm + TUI + workspace)
└── workspace/
└── manager.py # File output manager
Each agent runs an autonomous think→act loop:
- Observe: Build a situation report (tasks, messages, files, team status)
- Decide: Ask Claude to choose the next action from:
work_on_task,create_file,send_message,request_help,spawn_agent,complete_task,celebrate - Act: Execute the chosen action, updating project state
- Repeat: Until all tasks are done
The Director has special powers: decomposing goals and spawning agents.
uv run pytest tests/ -v