Zero-cost, fully autonomous multi-project AI development. Orchestrate unlimited OpenCode agents running free LLMs to build, test, and ship softwareβwithout writing a single line of code yourself.
WiggumLoop: Full system UI overview (ui3.png)
WiggumLoop comes with a visual dashboard for monitoring and controlling projects. Below are detailed UI screenshots:
Detailed project views: left (ui1.png), right (ui2.png)
The main overview (see top) shows the entire orchestration system, while these detailed views focus on individual project management and status.
What if you could spawn 10+ autonomous AI developers that each own a project, write code, run tests, and push to GitHubβfor free?
That's WiggumLoop:
- Create a project β
bash wiggum_master.sh create "my-api" "Build a REST API" - Write tasks in
projects/my-api/TASKS.md - Start the master loop β
bash wiggum.sh - Watch it work β Agents code, commit, push, repeat
No babysitting. No API bills. Just autonomous development.
WiggumLoopAgenticSWDeveloper is a master orchestration system that:
| β What it Does | π― Why It Matters |
|---|---|
| Manages multiple projects simultaneously | Each project gets its own GitHub repo and autonomous agent |
| Spawns independent AI agents using OpenCode | Projects develop in parallel, 24/7 |
| Orchestrates master + worker loops | System-level tasks create/coordinate projects |
| Includes web dashboard + voice control (optional) | Monitor and control from a browser |
| Costs $0/month (OpenRouter free tier) | Unlimited iterations, no API fatigue |
| Runs Gemini 2.0 Flash, Qwen 3, Step 3.5 Flash | Top-tier free models, not toy LLMs |
Each project is a separate GitHub repository that develops independently while the master system coordinates everything.
graph TB
subgraph "Master Control"
Master["ποΈ Master<br/>(wiggum_master.sh)"]
MasterLoop["π Master Loop<br/>(wiggum.sh)"]
end
subgraph "Projects & Agents"
P1["π¦ Project A<br/>projects/project-a/"]
P2["π¦ Project B<br/>projects/project-b/"]
P3["π¦ Project C<br/>projects/project-c/"]
A1["π€ Agent A<br/>OpenCode Loop"]
A2["π€ Agent B<br/>OpenCode Loop"]
A3["π€ Agent C<br/>OpenCode Loop"]
end
subgraph "External Services"
GitHub["π GitHub<br/>Multiple Repos"]
API["π OpenRouter<br/>Free LLMs"]
end
Master -->|creates| P1
Master -->|creates| P2
Master -->|creates| P3
MasterLoop -->|spawns| A1
MasterLoop -->|spawns| A2
MasterLoop -->|spawns| A3
P1 -->|runs in| A1
P2 -->|runs in| A2
P3 -->|runs in| A3
A1 -->|commits to| GitHub
A2 -->|commits to| GitHub
A3 -->|commits to| GitHub
A1 -->|queries| API
A2 -->|queries| API
A3 -->|queries| API
flowchart TD
Start["Start wiggum.sh"] --> ReadSys["Read system TASKS.md"]
ReadSys --> CheckNew["Check for new projects?"]
CheckNew -->|Yes| CreateProj["Create project via<br/>wiggum_master.sh"]
CreateProj --> InitGit["Initialize GitHub repo"]
InitGit --> SpawnWorkers
CheckNew -->|No| SpawnWorkers
SpawnWorkers["Spawn worker agents<br/>for each projects/*/"] --> AgentRun["Each agent:<br/>- Read TASKS.md<br/>- Complete next task<br/>- Commit & push<br/>- Mark complete"]
AgentRun --> CheckComplete["All agents<br/>MISSION ACCOMPLISHED?"]
CheckComplete -->|No| Sleep["Sleep interval"]
Sleep --> Start
CheckComplete -->|Yes| Done["β
System complete"]
flowchart LR
subgraph "Agent Loop (per project)"
A1["Read TASKS.md"] --> A2["Extract first<br/> unchecked task"]
A2 --> A3["Build prompt:<br/>prompt.txt + TASKS.md + task"]
A3 --> A4["Run OpenCode<br/>(free LLM)"]
A4 --> A5["Write code<br/>Commit & push"]
A5 --> A6["Mark task [x]"]
A6 --> A7["Check MISSION ACCOMPLISHED?"]
A7 -->|No| A1
A7 -->|Yes| Done["β
Project complete"]
end
| WiggumLoop | Traditional AI Coding | |
|---|---|---|
| Cost | $0 (free LLMs) | $20β600+/month |
| Setup Time | 10 minutes | 30 minβ2 hours |
| Projects | Unlimited (one repo each) | Usually one project per API key |
| Autonomy | 24/7 worker loops | Manual prompting per task |
| Scalability | Add more projects, no extra cost | Linear cost increase |
You could run this for a year and still pay nothing. The only thing it costs is your time to set up and guide it.
# Node.js (for OpenCode)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# OpenCode AI (global install)
npm install -g opencode-ai
# GitHub CLI (auth)
gh auth login --web
# Python deps (for optional web dashboard)
pip install -r requirements.txt# Get free OpenRouter key: https://openrouter.ai
cat > .env << 'EOF'
OPENROUTER_API_KEY=sk-or-v1-YOUR_KEY_HERE
WIGGUM_MODEL=openrouter/google/gemini-2.0-flash-exp:free
EOF
# Initialize system context for OpenCode
opencode /init --yesbash wiggum_master.sh create "todo-api" "Build a FastAPI REST API with SQLite and CRUD operations"This creates projects/todo-api/ with its own GitHub repo.
Edit projects/todo-api/TASKS.md:
## Todo API
- [ ] Set up FastAPI app with CORS
- [ ] Create SQLite models (Item, User)
- [ ] Implement POST /items endpoint
- [ ] Implement GET /items endpoint
- [ ] Add PATCH /items/{id} endpoint
- [ ] Add DELETE /items/{id} endpoint
- [ ] Write unit tests (pytest)
- [ ] Add request validation (Pydantic)
- [ ] Create requirements.txt
- [ ] Write README with example curl commands
- [x] MISSION ACCOMPLISHEDbash wiggum.shThat's it. The master will:
- Read system
TASKS.md - Create new projects if needed
- Spawn a worker agent for
todo-api - Agent reads
projects/todo-api/TASKS.md, completes first task, commits, pushes, repeats
WiggumLoopAgenticSWDeveloper/
βββ wiggum.sh # π Master orchestrator (run this)
βββ wiggum_master.sh # Project management CLI
βββ server.py # Flask web dashboard
βββ voice_server.py # Voice control (optional)
βββ prompt.txt # Master agent instructions
βββ TASKS.md # System-level tasks
βββ AGENTS.md # Auto-generated system context
βββ .env # Configuration
βββ ui.png # Dashboard screenshot
β
βββ project_template/ # Scaffold for new projects
β βββ README.md
β βββ TASKS.md
β βββ prompt.txt
β βββ src/
β
βββ projects/ # Managed projects (separate GitHub repos)
β βββ todo-api/
β β βββ TASKS.md
β β βββ prompt.txt
β β βββ logs/
β β βββ src/
β βββ another-project/
β
βββ agents/ # Specialized agent roles
βββ generic.md
βββ devops-engineer.md
βββ ...
bash wiggum_master.sh create "project-name" "What this project should do"What happens:
- Creates
projects/project-name/ - Copies
project_template/files - Initializes Git repo
- Creates GitHub remote:
github.com/YOU/project-name - Pushes initial commit
Edit projects/project-name/TASKS.md:
## Project Name
- [ ] First task (agent does this first)
- [ ] Second task
- [ ] Third task
- [x] MISSION ACCOMPLISHEDPro tip: Break tasks into small, verifiable chunks. Agents work better with clear, atomic objectives.
bash wiggum_master.sh list # List all projects
bash wiggum_master.sh status # Show status (running/stopped)
bash wiggum_master.sh stop "name" # Stop a worker
bash wiggum_master.sh start "name" # Start a workerEach project can switch between specialized roles for different phases.
| Role | Best For |
|---|---|
generic |
General full-stack development |
devops-engineer |
CI/CD, deployment, infra |
qa-specialist |
Testing, quality gates |
release-manager |
Versioning, releases |
documentation-specialist |
Docs, READMEs, API specs |
project-orchestrator |
Planning, delegation |
Switch roles:
cd projects/my-project
echo "devops-engineer" > .agent_role
git add .agent_role && git commit -m "ops: switch to devops-engineer" && git pushNext iteration, the agent loads specialized instructions from agents/devops-engineer.md.
The worker automatically detects when a task is stuck (no progress for 5 iterations) and applies recovery strategies:
- Decompose β breaks the task into subtasks
- Skeleton files β creates minimal structure to unblock
- Skip & retry later β moves on, will retry later
You don't have to micromanage. The system self-corrects.
When builds/tests fail, the worker extracts the error and:
- Code errors? β Agent fixes the code
- Dependency/version errors? β Agent updates version constraints
- Environment setup errors? β Mark as
[CI-SKIP], document as prerequisite
It never installs system tools or downloads large files. It only modifies code, configs, and version numbers.
pip install -r requirements.txt
python3 server.py
# Visit: http://localhost:5000Features:
- Real-time project status
- Create/stop/start projects from UI
- View logs inline
- Trigger PR-Agent reviews
# Run master loop in background
nohup bash wiggum.sh > logs/master.log 2>&1 &Each project logs iterations to projects/<name>/logs/. Inspect with:
tail -f projects/todo-api/logs/iteration-*.logOPENROUTER_API_KEY=sk-or-v1-... # Required (free from openrouter.ai)
WIGGUM_MODEL=openrouter/google/gemini-2.0-flash-exp:free
GITHUB_USER=your-username
MASTER_SLEEP_INTERVAL=300 # Seconds between master loopsopenrouter/google/gemini-2.0-flash-exp:freeβ Best overallopenrouter/qwen/qwen-3-80bβ Strong reasoningopenrouter/stepfun/step-3.5-flash:freeβ Fast & reliable
| Problem | Fix |
|---|---|
opencode: command not found |
npm install -g opencode-ai |
| GitHub auth fails | gh auth logout && gh auth login --web |
| API key invalid | Get new key at openrouter.ai, update .env |
| Agent loops hanging | Check logs/master.log, kill process, verify wiggum.sh is running |
| Project repo not created | gh auth status β ensure you're logged in |
The master orchestrator. It:
- Reads
TASKS.mdfor system tasks - Creates projects via
wiggum_master.sh - Spawns worker agents for each project
- Sleeps and repeats
This is the only script you need to run for full autonomy.
CLI for creating, listing, starting, stopping projects. Handles GitHub repo creation and project scaffolding.
The system prompt sent to OpenCode on every iteration. Defines agent behavior, constraints, and workflow.
Markdown checklist. The master loop reads this to know what to do. Each project has its own TASKS.md. The loop stops when it finds [x] MISSION ACCOMPLISHED.
When you create a project, it's copied from here. Customize this template to change default project structure.
# 1. Create project
bash wiggum_master.sh create "weather-bot" "Telegram bot that posts daily forecast"
# 2. Add tasks (edit projects/weather-bot/TASKS.md)
# - [ ] Set up python-telegram-bot
# - [ ] Integrate OpenWeatherMap API
# - [ ] Schedule daily message at 8 AM
# - [ ] Add error handling + logging
# - [x] MISSION ACCOMPLISHED
# 3. Start master loop
bash wiggum.sh
# 4. Done. Watch GitHub repo get commits.The agent will:
- Build a Telegram bot skeleton
- Add weather API integration
- Implement scheduling
- Add error handling
- Mark each task complete as it goes
- Push to GitHub
- It just works. Set it and forget it. Agents run for days without intervention.
- Zero cost = zero guilt. Run as many experiments as you want. Fail fast, learn faster.
- You stay in control. Tasks are plain Markdown. No proprietary UI lock-in.
- It scales linearly. Want 5 more projects? Just create them. No extra API cost.
- It's transparent. Every prompt is saved as
prompt-*.md. Every commit is on GitHub.
This isn't just a coding assistantβit's an autonomous development team that never sleeps, never asks for a raise, and never bills you by the hour.
MIT. Do whatever you want with it.
Built with OpenCode. Powered by free LLMs. Orchestrated by Wiggum.


