Arbiter is a local-first automation system that monitors your GitHub repositories, picks up labeled issues, and autonomously creates pull requests to solve them. It runs on your machine, uses your AI provider of choice, and handles all the Git workflow automatically.
Label an issue → Arbiter picks it up → AI solves it → PR ready for review
- 🤖 Autonomous Issue Resolution - Label issues with
agent-okand let Arbiter handle the rest - 🧠 Multi-AI Support - Works with Claude Code, Cursor, Ollama, and LM Studio
- 🔒 Local-First - Your code never leaves your machine
- 📊 Web Dashboard - Monitor progress, configure settings, view logs in real-time
- 🔄 PR Iterations - Comment-based commands to request changes on existing PRs
- ✅ Automated Testing - Runs your test suite before committing
- 🎨 AI Code Review - Optional second AI instance reviews PRs before posting
- 🔐 Security Layer - Protected commands and configurable policies
- Docker and Docker Compose installed
- GitHub Personal Access Token with repo access (Create one here)
- AI Provider (choose one):
- Claude Code - Recommended for best quality
- Cursor - Great for integrated workflows
- Ollama - Free, local models
- LM Studio - Free, local models with GUI
1. Pull and run Arbiter:
docker run -d \
--name arbiter \
-p 3927:3927 \
-v ~/.arbiter:/home/arbiter/.arbiter \
-v ~/.ssh:/home/arbiter/.ssh:ro \
gitarbiter/arbiter:latest2. Access the web dashboard:
Open your browser to http://localhost:3927
3. Configure your setup:
- Navigate to the Configuration tab
- Add your GitHub token
- Add repositories to monitor (e.g.,
owner/repo) - Configure your AI worker (Claude Code, Ollama, etc.)
- Click Save Configuration
4. Verify everything works:
Click Run Doctor Checks to verify:
- ✅ GitHub token is valid
- ✅ AI worker is accessible
- ✅ Repository permissions are correct
5. Start solving issues:
- Label a GitHub issue with
agent-ok - Click Run Now in the dashboard
- Watch Arbiter solve the issue and create a PR!
github:
token: ghp_xxxxx # Your GitHub Personal Access Token
repos: # Repositories to monitor
- owner/repo1
- owner/repo2
requiredLabel: agent-ok # Label to trigger ArbiterCreate a GitHub Token:
- Go to GitHub Settings → Tokens
- Click Generate new token (classic)
- Grant
reposcope (full repository access) - Copy the token and paste it in the Configuration tab
Arbiter supports multiple AI providers. Choose the one that fits your needs:
Best quality, paid API costs.
worker:
type: claude-code
model: sonnet # sonnet | opus | haiku
maxTurns: 50
maxBudgetUsd: 5.0Setup:
- Install Claude Code CLI
- Authenticate:
claude auth login - Configure in Arbiter dashboard
Great for developers already using Cursor.
worker:
type: cursor-agent
model: claude-sonnet-4-5
maxTurns: 50Setup:
- Install Cursor
- Authenticate Cursor with your Claude API key
- Configure in Arbiter dashboard
Run models locally on your machine. Free, but requires good hardware.
worker:
type: ollama
url: http://host.docker.internal:11434
model: llama3.1:8b-instruct-q8_0
maxTurns: 30Setup:
# Install Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Pull a model
ollama pull llama3.1:8b-instruct-q8_0
# Start server
ollama serveRecommended Models:
llama3.1:8b-instruct-q8_0- Fast, good for simple tasksllama3.1:70b-instruct-q8_0- Better reasoning (requires powerful GPU)qwen2.5-coder:7b-instruct- Code-focused model
Local models with a user-friendly GUI.
worker:
type: lmstudio
url: http://host.docker.internal:1234
model: model-name
maxTurns: 30Setup:
- Download LM Studio
- Download a chat/instruct model
- Load model and start local server
- Configure in Arbiter dashboard
Configure per-repo settings in the Repositories tab:
repos:
owner/repo1:
enabled: true # Enable/disable monitoring
allowPush: true # Push branches to GitHub
allowOpenPr: true # Open pull requests
openPrAsDraft: true # Open PRs as drafts
reviewers: # Auto-request reviewers
- username1
checks: # Run before committing
- npm test
- npm run lint
aiReviewer: # AI code review
enabled: true
mode: normal # lax | normal | hyper-critical- Label an issue in GitHub with
agent-ok - Arbiter picks it up on the next run
- AI solves the issue by reading code, making changes, running tests
- PR is created as a draft for your review
- Review and merge when satisfied
- Real-time status and logs
- "Jump In" to view live worker output
- Stop running tasks if needed
- Edit all settings via UI
- Manage GitHub repos
- Configure AI worker
- Test notifications
- View all monitored repos
- Enable/disable per repo
- Configure policies (push, PR, checks)
- Set up AI code review
- Query run history
- Filter by date, repo, status
- View detailed worker output
- Export logs for debugging
# Check system health
docker exec arbiter node dist/cli.js doctor
# Run once manually
docker exec arbiter node dist/cli.js run
# View current configuration
docker exec arbiter cat ~/.arbiter/config.yamlArbiter can iterate on existing PRs based on your comments:
Comment Commands:
/arbiter-change <instructions>- Request changes to the PR/arbiter-review- Request AI code review#arbiter-note <text>- Add context for next iteration
Example:
/arbiter-change Please add error handling for the API call and update the tests accordingly
Arbiter will:
- Read your comment
- Re-run the AI worker with your instructions
- Push new commits to the same PR
- Comment when complete
Run Arbiter automatically at intervals:
- Go to Dashboard tab
- Set interval (e.g., 60 minutes)
- Click Start Auto-Run
- Arbiter runs every N minutes
Perfect for overnight processing or continuous issue resolution.
Enable a second AI instance to review PRs before posting:
repos:
owner/repo:
aiReviewer:
enabled: true
mode: normal # lax | normal | hyper-criticalThe reviewer checks for:
- Security vulnerabilities
- Logic errors
- Code quality issues
- Missing edge cases
Results posted as GitHub review (Approve / Request Changes / Comment).
Get notified when runs complete:
notifications:
desktop:
enabled: true
onSuccess: true
onFailure: true
browser:
enabled: true # In-dashboard notificationsArbiter takes security seriously:
- Your code never leaves your machine
- All processing happens locally
- Only GitHub API calls go to the internet
- Command allowlisting for safety
- Forbidden path protection (e.g.,
.github/workflows/**) - Diff size limits (max files/lines changed)
- Draft PRs by default for human review
- Only repo members with write access can use PR iteration commands
- Unauthorized comments get 😕 reaction and are ignored
- GitHub token stored locally in
~/.arbiter/config.yaml - Never logged or exposed in output
- Only used for GitHub API calls
- Scan GitHub - Arbiter checks your repos for issues labeled
agent-ok - Prioritize - Issues sorted by labels, age, and custom rules
- Create Workspace - Clone repo, create feature branch
- AI Worker - Claude/Ollama/LM Studio reads the issue and implements solution
- Validate - Check diff size, run tests, validate changes
- AI Review (optional) - Second AI reviews the code
- Create PR - Open pull request as draft
- Iterate (if needed) - Respond to your comments with additional commits
- 💬 Discord Community: Join our Discord
- 📧 Email Support: support@git-arbiter.com
- 📖 Documentation: git-arbiter.com/docs.html
- 🌐 Website: git-arbiter.com
Arbiter isn't finding issues:
- Verify issues have the
agent-oklabel - Check GitHub token has repo access
- Run
docker exec arbiter node dist/cli.js doctor
AI worker not responding:
- Verify Claude Code / Ollama / LM Studio is running
- Check worker configuration in dashboard
- View logs in the Logs tab
Permission errors:
- Ensure GitHub token has
reposcope - Verify Docker volumes are mounted correctly
- Check file permissions in
~/.arbiterdirectory
- CPU: 2 cores
- RAM: 4GB
- Disk: 10GB free space
- Network: Internet connection for GitHub and AI APIs
- CPU: 8+ cores
- RAM: 16GB+ (32GB for large models)
- GPU: NVIDIA GPU with 8GB+ VRAM (for Ollama/LM Studio)
- Disk: 50GB+ free space (model storage)
Arbiter is a commercial product with flexible subscription options:
- Pay what you think is fair, starting at $3/mo or $32 (save 15% on annual plans)
- Unlimited repositories and issues
- 7-day free trial
- Student discount: 50% off
No auto-renewal - You decide if it's worth continuing each billing period.
Arbiter is commercial software. See Terms of Service for details.
Built with:
- Claude AI - Anthropic's AI assistant
- Cursor - AI-powered code editor
- Ollama - Local LLM runtime
- Docker - Containerization
Ready to automate your GitHub issues?
Get Started • Documentation • Join Discord
Made with ❤️ by Mason
