A multi-agent system that intelligently chunks your features into pull requests.
Download the latest release from GitHub Releases
- Download
automaton-gui-v0.0.1-windows.zipfor GUI application - Download
automaton-cli-v0.0.1-windows.zipfor command line tool
- Download
automaton-gui-v0.0.1-macos.zipfor GUI application (.app bundle) - Download
automaton-cli-v0.0.1-macos.zipfor command line tool
- Download
automaton-gui-v0.0.1-linux.tar.gzfor GUI application - Download
automaton-cli-v0.0.1-linux.tar.gzfor command line tool
Extract and run - No Python installation required!
If you prefer to build from source:
git clone https://github.com/jamisonl/automaton.git
uv sync
uv run python build/build.py all # Creates executables in dist/This system uses multiple coordinated agents to:
- Analyze feature specifications
- Plan logical chunks for implementation
- Generate code changes
- Create and review pull requests
- Coordinate merging in dependency order
User Input
"Add feature X"
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Coordinator Agent β
β β’ Orchestrates workflow β
β β’ Plans chunk dependencies β
β β’ Coordinates merging β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββ
β Event Bus β
β β’ Publishes events β
β β’ Routes messages β
β β’ Tracks progress β
βββββββββββββββββββββββββ
β
βββββββββββββββΌββββββββββββββ
βΌ βΌ βΌ
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β Feature β β Chunk Mgmt β βPR Generator β
β Analyzer β β& File Locks β β Agent β
β Agent β β β β β
ββ’ Analyze β ββ’ Track β ββ’ Generate β
β codebase β β chunks β β code β
ββ’ Identify β ββ’ Lock files β ββ’ Create PRs β
β affected β ββ’ Resolve β ββ’ Merge PRs β
β files β β deps β ββ’ Clean up β
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β β β
βββββββββββββββΌββββββββββββββ
βΌ
βββββββββββββββββ
β GitHub β
β Repository β
βββββββββββββββββ
- Coordinator: Orchestrates the workflow, assigns chunks, coordinates merging
- Feature Analyzer: Analyzes feature specs using DSPy to identify affected files and dependencies
- PR Generator: Implements chunks, creates branches, generates code, and creates PRs
Agents communicate via events:
ANALYZE_FEATURE- Request feature analysisFEATURE_ANALYZED- Analysis resultsCHUNKS_PLANNED- Chunk distribution completeCHUNK_ASSIGNED- Work assigned to agentCHUNK_COMPLETED- PR created and readyPR_REVIEWED- Automated review completePR_MERGED- Changes integrated
File locking prevents conflicts:
- Agents acquire locks before working on files
- Dependency resolution ensures proper merge order
- Progress tracking shows real-time status
Before configuring the application, you'll need to obtain the required API keys:
- Sign in to GitHub and go to GitHub Settings > Developer settings > Personal access tokens > Tokens (classic)
- Click "Generate new token" and select "Generate new token (classic)"
- Add a note describing what the token is for (e.g., "Automaton PR automation")
- Set expiration (recommended: 90 days or custom)
- Select scopes - You need the following permissions:
repo
- Click "Generate token"
- Copy the token immediately - you won't be able to see it again
- Store it securely - you'll use this as your
GITHUB_TOKEN
- Go to Google AI Studio
- Sign in with your Google account
- Click "Get API key"
- Click "Create API key"
- Select a Google Cloud project (or create a new one)
- Copy the generated API key
- Store it securely - you'll use this as your
GEMINI_API_KEY
Create a .env file in the project root:
# Copy the example file
cp .env.example .env
# Edit with your values
GITHUB_TOKEN=your_github_personal_access_token_here
GITHUB_USERNAME=your_github_username
TARGET_REPO_PATH=./examples/foo
GEMINI_API_KEY=your_gemini_api_key_here
COORDINATION_DB_PATH=coordination.dbThe system will automatically load the .env file if python-dotenv is installed.
To use Automaton through the desktop GUI:
Download the application for your system.
The desktop application provides:
- Interactive project folder selection
- Credential management with validation
- Real-time progress monitoring
- Feature specification input
- Status updates and logging
- Download and extract the CLI application for your platform
- Set up environment variables (see Configuration section below)
- Run with your feature specification:
# Basic usage (uses TARGET_REPO_PATH env var or current directory)
automaton --feature "Add user authentication with login and logout functionality"
# Specify target repository path directly
automaton --feature "Add user authentication" --target-repo "/path/to/your/project"
# Short form
automaton -f "Add user authentication" -r "../my-project"Required Environment Variables:
GITHUB_TOKEN- Your GitHub personal access tokenGITHUB_USERNAME- Your GitHub usernameGEMINI_API_KEY- Your Google Gemini API key
If you're running from source code:
# Run the CLI directly from source
uv run python -m src.main --feature "Your feature description here"
# Run the desktop GUI from source
uv run python desktop_app.py
import asyncio
import sys
from pathlib import Path
# Add src to path
sys.path.insert(0, str(Path(__file__).parent / "src"))
from main import PRAutomationSystem
async def main():
system = PRAutomationSystem(
target_repo_path="/path/to/repo",
github_token="your_token",
github_username="your_username",
repo_name="username/repo",
gemini_api_key="your_api_key"
)
# Start all agents
await system.start()
# Process a feature
await system.process_feature(
"Add user authentication with login and logout functionality"
)
# Monitor status
status = await system.get_status()
print(f"Total chunks: {status['total_chunks']}")
if __name__ == "__main__":
asyncio.run(main())- Native File Browser: Cross-platform folder selection
- Credential Management: Secure storage and validation
- Progress Monitoring: Real-time status updates
- Settings Dialog: Model and configuration management
- Validation: GitHub and Gemini API key validation
-
Feature Input: "Add user authentication system"
-
Analysis: DSPy analyzes the codebase and identifies:
auth/models.py- User model changesauth/views.py- Login/logout endpointstemplates/login.html- Login formrequirements.txt- New dependencies
-
Chunk Planning: Creates logical chunks:
- Chunk 1: User model and database changes
- Chunk 2: Authentication views and logic
- Chunk 3: Frontend templates and forms
- Chunk 4: Integration and configuration
-
Implementation: Each chunk becomes a separate PR:
- PR #1: "Add User model with authentication fields"
- PR #2: "Implement login/logout views" (depends on PR #1)
- PR #3: "Add authentication templates" (depends on PR #2)
- PR #4: "Configure authentication middleware" (depends on PR #3)
-
Review & Merge: Automated review and dependency-ordered merging
# Run the build script (creates both CLI and GUI executables)
uv run python build/build.py# Build CLI executable only
uv run pyinstaller build/build-cli.spec
# Build GUI executable only
uv run pyinstaller build/build-gui.specThe executables will be created in the pyinstaller_dist/ directory.
- Currently supports GitHub only
- Basic automated review (no test execution)
- Single repository at a time
- Requires manual conflict resolution for complex dependencies
- GitLab and other Git platform support
- Advanced testing and review automation
- Multi-repository coordination
- Intelligent conflict resolution
- Custom agent plugins
MIT License - see LICENSE file for details.