π¦ π¦
_ _ ________ __ __
| | / \ |___ / \ \ / /
| | / _ \ / / \ \_/ /
| |___ / ___ \ / /__ \ /
|_____| /_/ \_\ /_____| |_|
____ ___ ____ ____
| __ ) |_ _| | _ \ | _ \
| _ \ | | | |_) | | | | |
| |_) | | | | _ < | |_| |
|____/ |___| |_| \_\ |____/
π€ π€
Works with: Godot, Unity, Python, Rust, Node.js, Django, React, and more!
Quick Start β’ Features β’ Installation β’ Docs β’ Architecture
Lazy_Bird is a progressive automation system that lets Claude Code work on your development projects autonomouslyβgame engines, backends, frontends, or any codebase. Create GitHub Issues in the morning, review Pull Requests at lunch, and merge completed features in the eveningβall while you focus on creative work or simply relax.
Morning (7 AM) Work Hours Lunch (12 PM) Evening (6 PM)
ββββββββββββββ ββββββββββββββ βββββββββββββ βββββββββββββ
Create Issues β Claude implements β Review PRs β Merge & Ship
Add "ready" label Runs tests automatically Approve changes Plan tomorrow
Go to work Creates PRs if passing Back to work Enjoy life
The result? You save 20-100 hours per month on repetitive development tasks.
Lazy_Bird works with any project type through framework presets. During setup, simply select your framework and the system configures the right test commands automatically.
- Godot - GDScript/C#, gdUnit4 testing
- Unity - C#, NUnit/Unity Test Framework
- Unreal - C++/Blueprint, automation tests
- Bevy - Rust game engine, cargo test
- Django - Python web framework,
python manage.py test - Flask - Python micro-framework, pytest
- FastAPI - Modern Python API, pytest
- Express - Node.js web framework, Jest/Mocha
- Rails - Ruby web framework, RSpec
- React - JavaScript/TypeScript, Jest/RTL
- Vue - JavaScript/TypeScript, Vitest
- Angular - TypeScript, Jasmine/Karma
- Svelte - JavaScript/TypeScript, Vitest
- Python - pytest, unittest, any test framework
- Rust - cargo test, cargo-nextest
- Node.js - npm test, Jest, Mocha, Vitest
- Go - go test, testify
- C/C++ - make test, CTest, CMake
- Java - JUnit, Maven, Gradle
Don't see your framework? Choose "Custom" during setup and specify your test commands manually. Lazy_Bird supports any framework with a command-line test runner!
# 1. One-command installation
curl -L https://raw.githubusercontent.com/yusyus/lazy-bird/main/wizard.sh | bash
# 2. Create your first automated task
gh issue create --template task \
--title "[Task]: Add player health system" \
--label "ready"
# 3. Monitor progress
./wizard.sh --statusThat's it! The system will pick up your issue, implement the feature, run tests, and create a PRβall automatically.
- π€ Autonomous Development - Claude Code works while you're away
- π― Multi-Framework Support - Works with 15+ frameworks out-of-the-box
- ποΈ Multi-Project Management - Monitor 2-20+ projects from a single server
- π§ͺ Automated Testing - Runs framework tests, retries on failure
- πΏ Safe Git Workflow - Isolated worktrees, automatic PRs
- π Progress Monitoring - Check status from phone via notifications
- π Security First - Secret management, containerized execution
- π Progressive Scaling - Start simple (1 agent), scale to multiple
Morning (7-8am) Work Hours Lunch (12pm) Evening (6pm)
βββββββββββββββββ ββββββββββββββ βββββββββββββ ββββββββββββββ
Create GitHub Issues β Claude processes tasks β Review PRs β Merge & test
Add "ready" label Runs tests automatically Approve/comment Deploy builds
Go to work Creates PRs if passing Back to work Plan tomorrow
Phase 1: Single Agent (Start here)
- One task at a time, sequential processing
- 15-minute wizard setup, 8GB RAM
- Perfect for solo developers
Phase 1.1: Multi-Project (β Current)
- Single server manages 2-20+ projects simultaneously
- Add/remove/edit projects via CLI or wizard
- Per-project configuration (test/build/lint commands)
- Sequential processing across all projects
- 8-10GB RAM recommended
Phase 2: Multi-Agent (Scale up)
- 2-3 agents working in parallel
- Godot Server coordinates test execution
- 16GB RAM recommended
Phase 3+: Remote access, CI/CD, enterprise features
Universal Requirements:
- Linux (Ubuntu 20.04+, Arch, Manjaro, etc.) or Windows WSL2
- Claude Code CLI
- GitHub or GitLab account
- 8GB RAM minimum, 16GB recommended
Framework-Specific:
- Game Engines: Godot 4.2+, Unity 2021+, Unreal 5+, etc.
- Python: Python 3.8+, pip
- Rust: Rust 1.70+, cargo
- Node.js: Node.js 16+, npm
- Or any framework with command-line test runner
curl -L https://raw.githubusercontent.com/yusyus/lazy_birtd/main/wizard.sh | bashgit clone https://github.com/yusyus/lazy_birtd.git
cd lazy_birtd
# Run Phase 0 validation (required)
# For Godot projects (default)
./tests/phase0/validate-all.sh /path/to/your/project
# For other frameworks, specify --type
./tests/phase0/validate-all.sh /path/to/your/project --type python
./tests/phase0/validate-all.sh /path/to/your/project --type rust
./tests/phase0/validate-all.sh /path/to/your/project --type nodejs
# If validation passes, run wizard
./wizard.shThe wizard will:
- Ask for your project type (Godot, Python, Rust, etc.)
- Detect your system capabilities
- Ask 8 simple questions
- Load framework preset automatically
- Install appropriate phase
- Configure issue watcher
- Create issue templates
- Validate everything works
Create a GitHub/GitLab issue with detailed steps:
## Task Description
Add a health system to the player character
## Detailed Steps
1. Create res://player/health.gd with Health class
2. Add max_health (100) and current_health properties
3. Implement take_damage(amount) method
4. Implement heal(amount) method (max at max_health)
5. Add health_changed signal
## Acceptance Criteria
- [ ] Health class exists with all methods
- [ ] Tests pass
- [ ] Signal emits correctly
## Complexity
mediumAdd the ready label and the system will pick it up within 60 seconds.
# Check system status
./wizard.sh --status
# View logs
journalctl -u issue-watcher -f
journalctl -u godot-server -f
# Health check
./wizard.sh --health./wizard.sh --status # Current state
./wizard.sh --upgrade # Move to next phase
./wizard.sh --health # Run diagnostics
./wizard.sh --repair # Fix issues
./wizard.sh --weekly-review # Progress report# List all configured projects
python3 scripts/project-manager.py list
# Add a new project to existing setup
./wizard.sh --add-project
# Or use CLI directly:
python3 scripts/project-manager.py add \
--id "my-backend" \
--name "My Backend API" \
--type python \
--path /path/to/backend \
--repository https://github.com/user/backend \
--test-command "pytest tests/"
# Show details for a specific project
python3 scripts/project-manager.py show --id "my-backend"
# Enable/disable a project
python3 scripts/project-manager.py enable --id "my-backend"
python3 scripts/project-manager.py disable --id "my-backend"
# Remove a project
python3 scripts/project-manager.py remove --id "my-backend"
# After adding/removing projects, restart services
systemctl --user restart issue-watcher# Morning routine (5 minutes)
gh issue create --template task --title "Add pause menu" --label "ready"
gh issue create --template task --title "Fix jump physics" --label "ready"
gh issue create --template task --title "Add sound effects" --label "ready"
# β Claude runs gdUnit4 tests, creates PRs
# Check at lunch (2 minutes)
gh pr list # Review created PRs
gh pr review 123 --approve
# Evening (5 minutes)
git pull && godot --headless -s res://test_runner.gd
# Test merged changes in game# Morning
gh issue create --template task --title "Add JWT authentication" --label "ready"
gh issue create --template task --title "Optimize database queries" --label "ready"
# β Claude runs pytest, creates PRs
# Lunch break
gh pr list
gh pr review 45 --approve
# β Merged automatically
# Evening
git pull && python manage.py test
# All tests pass, deploy to staging# Morning
gh issue create --template task --title "Optimize hash function" --label "ready"
gh issue create --template task --title "Add memory pooling" --label "ready"
# β Claude runs cargo test, creates PRs
# Review later
gh pr list
gh pr diff 89 # Check performance improvements
gh pr review 89 --approve
# Deploy
git pull && cargo build --release# Morning
gh issue create --template task --title "Add dark mode toggle" --label "ready"
gh issue create --template task --title "Improve loading states" --label "ready"
# β Claude runs Jest tests, creates PRs
# Afternoon
gh pr list
gh pr review 67 --approve
# β CI/CD deploys to preview
# Check preview, merge to productionScenario: Managing a game, backend, and frontend simultaneously
# Initial setup - configure 3 projects
./wizard.sh
# β Configure: my-game (Godot)
# β Add project: my-backend (Django)
# β Add project: my-frontend (React)
# Verify all projects configured
python3 scripts/project-manager.py list
# Shows:
# 1. [my-game] My Game (godot) - β
ENABLED
# 2. [my-backend] My Backend API (python) - β
ENABLED
# 3. [my-frontend] My Frontend (react) - β
ENABLED
# Morning - create issues across all projects
gh issue create --repo user/my-game --template task --title "Add boss fight" --label "ready"
gh issue create --repo user/my-backend --template task --title "Add WebSocket support" --label "ready"
gh issue create --repo user/my-frontend --template task --title "Add real-time notifications" --label "ready"
# β Issue watcher polls all 3 repositories
# β Creates tasks with project-specific context
# β Uses project-specific test commands:
# - Godot: gdUnit4 tests
# - Django: pytest tests/
# - React: npm test
# Lunch - review PRs from all projects
gh pr list --repo user/my-game
gh pr list --repo user/my-backend
gh pr list --repo user/my-frontend
# Approve and merge
gh pr review 42 --repo user/my-game --approve
gh pr review 89 --repo user/my-backend --approve
gh pr review 15 --repo user/my-frontend --approve
# Later - add a new project
./wizard.sh --add-project
# β Configure: my-mobile (react-native)
systemctl --user restart issue-watcher
# Now monitoring 4 projects!lazy_birtd/
βββ wizard.sh # Main installation script
βββ scripts/
β βββ godot-server.py # Test coordination server
β βββ issue-watcher.py # GitHub/GitLab issue monitor
β βββ agent-runner.sh # Claude Code agent launcher
β βββ project-manager.py # Multi-project CLI tool (Phase 1.1+)
β βββ wizard-multi-project.sh # Multi-project wizard functions
βββ tests/
β βββ phase0/ # Validation tests
βββ Docs/
β βββ Design/ # Complete specifications
βββ docker/
β βββ claude-agent/ # Containerized Claude environment
βββ templates/ # Issue templates
Configuration:
~/.config/lazy_birtd/
βββ config.yml # Main config (supports projects array)
βββ secrets/ # API tokens (chmod 700)
βββ logs/ # All logs
- CLAUDE.md - Complete guide for developers
- Docs/Design/ - Detailed specifications
phase1.1-multi-project.md- Multi-project architecture (Phase 1.1)wizard-complete-spec.md- Wizard architecturegodot-server-spec.md- Test coordinationclaude-cli-reference.md- Correct CLI commandsissue-workflow.md- GitHub/GitLab integrationretry-logic.md- Test failure handlingsecurity-baseline.md- Security guidelinesphase0-validation.md- Pre-implementation testing
HTTP API that queues and executes Godot tests sequentially, preventing conflicts when multiple agents need to run tests.
Claude Agent 1 βββ
Claude Agent 2 βββΌββ> Godot Server β Single Godot Process
Claude Agent 3 βββ
Tasks are defined as GitHub/GitLab issues, not files. This provides:
- Mobile-friendly interface
- Permanent history
- Rich formatting (markdown, code blocks)
- Native PR linking
If tests fail, Claude gets the error message and tries to fix it. Default: 3 retries (4 total attempts). Success rate: ~90-95%.
Each task gets its own isolated git worktree, preventing conflicts and allowing easy cleanup.
Critical: Follow security guidelines in Docs/Design/security-baseline.md
- Secrets stored in
~/.config/lazy_birtd/secrets/(chmod 600) - Claude agents run in Docker containers
- Services bind to localhost or VPN only
- API tokens never committed to git
- Regular secret rotation (90 days)
- Phase 1: $50-100/month (Claude API)
- Phase 2-3: $100-150/month
- Phase 4+: $150-300/month
Budget limits and alerts included to prevent surprises.
# Check issue watcher
systemctl status issue-watcher
# Verify API token
./tests/phase0/test-api-access.sh
# Check for issues with "ready" label
gh issue list --label "ready"# Check Godot Server
systemctl status godot-server
# View test logs
cat /var/lib/lazy_birtd/tests/latest/output.log
# Test gdUnit4
godot --headless -s addons/gdUnit4/bin/GdUnitCmdTool.gd --help# Run wizard diagnostics
./wizard.sh --health
# Auto-repair common problems
./wizard.sh --repair
# Check all logs
journalctl -u godot-server -f
journalctl -u issue-watcher -fQ: Does this really work? A: The architecture is sound, but relies on Claude Code CLI working in headless mode. Run Phase 0 validation first to verify.
Q: What frameworks are supported? A: 15+ frameworks out-of-the-box: Godot, Unity, Unreal, Bevy, Django, Flask, FastAPI, Express, React, Vue, Angular, Svelte, Python, Rust, Node.js, Go, C/C++, Java, and more. Choose "Custom" during setup for any framework with command-line tests.
Q: How do I add a new framework?
A: Select "Custom" during wizard setup and specify your test commands manually. For example, if you use pytest-cov: test_command: "pytest --cov=src". Any command-line test runner works!
Q: Is it safe? A: Yes, with proper setup. Claude runs in Docker containers, uses git worktrees, and has permission restrictions. Follow security baseline.
Q: How much does it cost? A: Claude API costs vary. Expect $50-300/month depending on usage. Budget limits prevent overages.
Q: Can I use it with game engines besides Godot? A: Yes! Unity, Unreal, and Bevy are supported via presets. During setup, select "Game Engine" and choose your engine. The wizard configures the appropriate test runner automatically.
Q: Does it work on Windows? A: Yes, via WSL2. Native Windows support is experimental.
Q: What if Claude breaks something? A: Tests catch most issues. Changes are in isolated worktrees and PRs for review. Nothing merges without approval.
Current Status: Phase 1.1 Complete - Multi-Project Support! π
Phase 0 (Complete):
- β Complete specification
- β Validation framework
- β Implementation (validate-claude.sh, validate-godot.sh, test-worktree.sh)
Phase 1 (Complete):
- β Setup wizard (wizard.sh with 8-question flow)
- β Single agent automation (agent-runner.sh)
- β Issue watcher (issue-watcher.py with label workflow)
- β Systemd service integration
- β Status and health monitoring (--status, --health commands)
Phase 1.1 (Complete - NEW!):
- β Multi-project configuration schema (projects array)
- β Project-aware issue watcher with per-project monitoring
- β Project-specific task execution (test/build/lint commands)
- β CLI project management tool (project-manager.py)
- β Wizard enhancement with --add-project command
- β Comprehensive testing (26/26 tests passed)
Phase 2 (Week 2-3):
- Multi-agent scheduler
- Enhanced monitoring
- Remote access (VPN)
Future:
- CI/CD integration
- Visual test recording
- Team collaboration features
- Cost optimization
Contributions welcome! Please:
- Read CLAUDE.md first
- Check Docs/Design/ for specifications
- Run Phase 0 validation
- Submit PRs with tests
MIT License - see LICENSE file.
- Built with Claude Code
- Supports Godot Engine, Unity, Django, React, Rust, and many more
- Framework test runners: gdUnit4, pytest, Jest, cargo test, and more
- Documentation: CLAUDE.md and Docs/Design/
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Made with β and π€ for developers who'd rather be creating than debugging
β Star this repo if Lazy_Bird saves you time!
π¦ Fly lazy, code smart
Status: Phase 1.1 Complete β | Multi-Project Support β | Multi-Framework Support β | Production Ready | Start Automating Today!