Autonomous AI development orchestration. ADW is a self-improving build system that coordinates Claude Code agents to plan, implement, test, and review features with full parallelization and observability.
| Feature | ADW | Traditional CI/CD | Manual Claude Use |
|---|---|---|---|
| Autonomous Execution | β Daemon picks up tasks | β Full manual | |
| Parallel Task Execution | β Multiple worktrees | β Sequential | |
| Dependency Management | β Auto-resolved | β Manual tracking | |
| Live Observability | β Real-time TUI + logs | β None | |
| Bidirectional Communication | β Message injection | β No interaction | β Interactive |
| Self-Improvement | β Expert system | β Static | |
| GitHub Integration | β Issue β PR workflow | β Manual | |
| Workflow Flexibility | β 4 workflow types | β Flexible |
# Using uv (recommended)
uv tool install adw
# Using pipx
pipx install adw
# Using pip
pip install adw# Initialize in your project
cd my-project
adw init
# Open interactive dashboard
adw
# Start a new feature discussion
adw new "add user authentication"# Initialize
cd my-project
adw init
# Add tasks to tasks.md (or generate from specs)
# Then start the autonomous daemon
adw run
# ADW will:
# - Pick up eligible tasks
# - Spawn agents in parallel
# - Handle dependencies automatically
# - Stream logs to TUI
# - Update task status atomically| Command | Description |
|---|---|
adw |
Open interactive TUI dashboard with live task monitoring |
adw init |
Initialize ADW in current project |
adw new <description> |
Start a new task discussion |
adw run |
Start autonomous task execution daemon |
adw status |
Show task and spec status |
adw verify [task_id] |
Verify completed work |
adw approve [spec] |
Approve a pending spec |
adw worktree list |
List active worktrees |
adw worktree create <name> |
Create isolated worktree |
adw worktree remove <name> |
Remove worktree |
adw github watch |
Watch GitHub for new issues/PRs |
adw github process <issue> |
Process a GitHub issue as task |
adw update |
Update ADW to latest version |
adw doctor |
Check installation health |
adw version |
Show version info |
ADW can run completely autonomously, picking up tasks from tasks.md and executing them in parallel:
adw runThe daemon:
- Monitors
tasks.mdfor eligible tasks - Checks dependencies and blocks
- Spawns agents in isolated worktrees
- Enforces concurrent task limits
- Streams live logs to the TUI
Real-time monitoring with a Textual-based interface:
adwFeatures:
- Live task status updates
- Streaming agent logs with syntax highlighting
- Send messages to running agents
- Task filtering and navigation
- Status bar with system metrics
Execute tasks in parallel using isolated worktrees:
adw worktree create feature-authEach worktree gets:
- Isolated filesystem
- Dedicated port allocation
- Environment variable isolation
- Independent git state
Send messages to running agents:
# In TUI, press 'm' and type:
> Please add error handling for edge case X
Agents receive messages via hook and can respond in real-time.
Multiple workflow types:
Simple Build: Quick, well-defined tasks
from adw.workflows import simple_workflow
simple_workflow(task_id, "Fix the login bug")Standard: Plan β Implement β Update
from adw.workflows import standard_workflow
standard_workflow(task_id, "Add user profile page")Full SDLC: Plan β Implement β Test β Review β Document β Update
from adw.workflows import run_sdlc_workflow
run_sdlc_workflow(task_id, spec_path, model="opus")Prototypes: Scaffolding generators (Vite+Vue, uv scripts, Bun)
Hook system captures every agent action:
- Context Bundles: Automatic session snapshots
- Universal Logger: All tool calls and outputs logged
- Custom Output Styles: Concise formatting for agents
- Load Bundle: Resume from any previous session
Trigger workflows from GitHub:
# Polling mode
adw github watch --interval 300
# Process specific issue
adw github process 123Automatically:
- Fetches issue details
- Creates task in tasks.md
- Spawns agent workflow
- Creates PR when complete
ADW includes a meta-learning system:
# In Claude Code
/experts:cc_expert "How do I optimize parallel execution?"
/experts:cc_expert:improve
/load_ai_docs https://docs.anthropic.com/...
The expert system learns from documentation and improves its knowledge base over time.
After running adw init, your project will have:
your-project/
βββ .claude/
β βββ commands/ # Slash commands for Claude
β β βββ discuss.md
β β βββ build.md
β β βββ verify.md
β β βββ plan.md
β β βββ implement.md
β β βββ test.md
β β βββ review.md
β β βββ document.md
β β βββ load_ai_docs.md
β β βββ experts/
β β βββ cc_expert.md
β β βββ cc_expert_improve.md
β βββ hooks/ # Event hooks for observability
β β βββ check_messages.py
β β βββ context_bundle_builder.py
β β βββ universal_logger.py
β βββ output-styles/ # Custom output formatting
β β βββ concise-done.md
β βββ settings.json # Hook configuration
β βββ agents/ # Specialized agent configs
β βββ frontend.md
β βββ backend.md
β βββ ...
βββ agents/ # Agent execution directories
β βββ {adw_id}/
β βββ agent.log # Structured agent logs
β βββ adw_messages.jsonl # Bidirectional messages
β βββ context/ # Session snapshots
βββ specs/ # Feature specifications
βββ tasks.md # Task tracking board
βββ CLAUDE.md # Project instructions for Claude
βββ ai_docs/ # Documentation for expert system
Use these in Claude Code:
| Command | Purpose | Workflow Phase |
|---|---|---|
/discuss |
Plan a complex feature interactively | Planning |
/build |
Implement a simple, well-defined task | Implementation |
/plan |
Create detailed implementation plan | SDLC: Plan |
/implement |
Execute a task's implementation plan | SDLC: Implement |
/test |
Create and run comprehensive tests | SDLC: Test |
/review |
Review code quality and correctness | SDLC: Review |
/document |
Generate documentation for features | SDLC: Document |
/verify |
Review implementation before commit | Verification |
/status |
Check what needs attention | Monitoring |
/approve_spec |
Approve spec and create tasks | Planning |
/load_ai_docs |
Load external docs into expert system | Learning |
/experts:cc_expert |
Query the Claude Code expert system | Learning |
/experts:cc_expert:improve |
Improve expert knowledge base | Learning |
- Git Worktrees: Each task runs in isolated worktree
- Port Allocation: Automatic port assignment prevents conflicts
- Environment Isolation: Task-specific env vars and configuration
- Concurrent Limits: Configurable max parallel tasks
- Task Dependencies: Automatic dependency graph resolution
- Blocking: Tasks wait for dependencies to complete
- Eligibility Checking: Only ready tasks get scheduled
- Structured Logging: JSONL format with timestamps and context
- Live Streaming: TUI updates in real-time as agents work
- Context Bundles: Complete session snapshots for debugging
- Message Injection: Send instructions to running agents
Multiple workflow types for different use cases:
- Simple: Quick fixes, no planning phase
- Standard: Planning + implementation
- SDLC: Full 6-phase development cycle
- Prototype: Project scaffolding generators
- Opus for: Architecture decisions, complex reasoning, planning
- Sonnet for: Most implementation tasks (default)
- Haiku for: Simple, repetitive tasks
ADW adds an orchestration section to your CLAUDE.md (or creates one if it doesn't exist). This file tells Claude about your project structure, commands, and conventions.
adw init automatically detects your project type:
- Frontend: React, Vue, Svelte, Next.js, Nuxt
- Backend: Python (FastAPI, Django), Node.js (Express, NestJS), Go
- Monorepo: pnpm workspaces, Lerna, Nx, Turborepo
And generates appropriate agent configurations.
Configure the cron daemon in .adw/config.json:
{
"max_concurrent_tasks": 3,
"check_interval": 60,
"worktree_enabled": true,
"default_workflow": "standard"
}Tasks in tasks.md use ADW ID format with emoji status indicators:
## Worktree: main
[β
, abc123de] Setup database schema
[π‘, def456gh] Implement login endpoint
[β°] Add OAuth integration (blocked)
[] Create user profile page
## Worktree: feature-payments
[π‘, ghi789jk] Integrate Stripe API
[] Add payment history viewStatus indicators:
[]- Ready to start (pending)[β°]- Blocked by dependencies[π‘, adw_id]- In progress[β , adw_id]- Completed[β, adw_id]- Failed
Each task gets a unique ADW ID (8-char hex) for tracking across the system.
Specs in specs/ follow this format:
# Feature Name
Status: PENDING_APPROVAL
## Overview
What this feature does...
## Technical Approach
How it will be implemented...
## Files to Modify
- src/components/Login.tsx
- src/api/auth.ts
## Testing Strategy
How it will be tested...
## Acceptance Criteria
- [ ] User can log in
- [ ] Session persistsADW is built on a modular architecture:
- Agent System: Process management, state persistence, model selection
- TUI: Textual-based dashboard with reactive state
- Workflows: Simple, Standard, SDLC, and Prototype generators
- Triggers: Cron daemon, GitHub polling, webhook handlers
- Protocol: Message passing, log streaming
- Integrations: GitHub API, more coming soon
All components communicate through:
- Filesystem protocol (JSONL logs, messages)
- Git worktrees for isolation
- Ports for network isolation
- Environment variables for configuration
- Python 3.11+
- Claude Code installed
- Git 2.35+ (for worktree support)
# Add tasks to tasks.md manually or via /discuss
adw run
# Walk away. ADW executes tasks in parallel, handling dependencies.
# Check TUI for progress: adw# Start GitHub watcher
adw github watch
# When issue #123 is labeled "adw:feature"
# β ADW creates task
# β Spawns worktree
# β Runs full SDLC workflow
# β Creates PR with implementationadw
# Select running task
# Press 'm' to send message:
> "Add unit tests for error cases"
# Agent receives message and adds tests# In Claude Code
/load_ai_docs https://docs.example.com/api
/experts:cc_expert "What's the best way to handle rate limiting?"
/experts:cc_expert:improve
from adw.workflows import run_prototype_workflow
run_prototype_workflow("vite_vue", "my-new-app")
# β Creates Vite+Vue project
# β Sets up routing, state management
# β Generates documentation# Clone the repo
git clone https://github.com/mhmdez/adw.git
cd adw
# Install dependencies (includes textual, watchfiles, httpx)
uv sync
# Run locally
uv run adw --help
# Run tests
uv run pytest
# Run with coverage
uv run pytest --cov=src/adw --cov-report=html
# Lint and type check
uv run ruff check .
uv run mypy src
# Run the TUI in development
uv run adw
# Test autonomous execution (dry run)
uv run adw run --dry-runADW was built using itself! See tasks.md for the meta-build process:
# ADW building ADW
adw run
# β Picks up tasks from tasks.md
# β Executes in parallel worktrees
# β Uses hooks for observability
# β Updates task status atomicallyADW is under active development. Current status:
- β Core agent system (Phase 1-5)
- β Message injection (Phase 6)
- β Autonomous execution (Phase 7)
- β Worktree isolation (Phase 8)
- β Observability hooks (Phase 9)
- β SDLC workflows (Phase 10)
- β GitHub integration (Phase 11)
- β Expert system (Phase 12)
- π§ CLI polish and full integration
- π§ Webhook handlers
- π VSCode extension
- π Slack/Discord integration
- π Cloud execution platform
See tasks.md for detailed build progress.
Contributions are welcome! ADW uses itself for development.
# Fork and clone
git clone https://github.com/yourusername/adw.git
cd adw
# Install with dev dependencies
uv sync
# Make changes and run tests
uv run pytest
# Submit PR
# ADW can help review: /reviewADW embraces:
- Zero-Touch Engineering: Automation over manual orchestration
- Parallel by Default: Worktrees enable true parallelization
- Observable Systems: Full visibility into agent behavior
- Self-Improvement: Systems that learn and evolve
- Filesystem Protocols: Simple, debuggable, language-agnostic
MIT License - see LICENSE for details.
Built with ADW by ADW π€