AI-powered GitHub automation tool that processes issues and generates code automatically using Claude.
- Automatic Code Generation: Responds to GitHub issues with complete code solutions
- Smart File Management: Creates, updates, and organizes files based on issue context
- Iterative Development: Uses evaluation scripts to refine solutions across multiple steps
- Safe Local Testing: Interactive mode for local development with manual confirmations
- GitHub Actions Integration: Fully automated workflow for production use
-
Add Repository Secrets:
ANTHROPIC_API_KEY
orOPENROUTER_API_KEY
-
Create Workflow (
.github/workflows/berrry-committer.yml
):
name: Berrry Committer
on:
issues:
types: [opened, edited]
issue_comment:
types: [created]
jobs:
berrry-committer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '18'
- name: Run Berrry Committer
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: node src/main.js
- Create an Issue: Describe your coding request to trigger Berrry Committer
# 1. Set up environment
export ANTHROPIC_API_KEY="your-api-key"
# 2. Direct prompting mode (new!)
berrry --prompt "Create a login component with email/password validation"
# 3. GitHub event mode
export GITHUB_EVENT_PATH="/tmp/test_event.json"
cat > /tmp/test_event.json << 'EOF'
{
"issue": {
"number": 1,
"title": "Add user authentication",
"body": "Please create a login component with email/password validation"
}
}
EOF
berrry
# 4. Or run in YOLO mode (auto-execute)
berrry --yolo
Variable | Required | Default | Description |
---|---|---|---|
ANTHROPIC_API_KEY |
Yes* | - | Anthropic API key |
OPENROUTER_API_KEY |
Yes* | - | OpenRouter API key (alternative) |
MODEL |
No | anthropic/claude-sonnet-4 |
Main LLM model |
COMMIT_MODEL |
No | anthropic/claude-3.5-haiku |
Model for commit messages |
TEST_COMMAND |
No | - | Command to run for validation |
YOLO |
No | false |
Skip confirmations (auto true in Actions) |
*One of the API keys is required
# Custom model configuration
export MODEL="anthropic/claude-3-opus"
export COMMIT_MODEL="anthropic/claude-3-haiku"
# Test integration
export TEST_COMMAND="npm test && npm run lint"
# API endpoint override (for proxies)
export API_URL="https://your-proxy.com/v1/chat/completions"
- Issue Processing: Parses GitHub issue/comment for coding requests
- Context Gathering: Automatically includes relevant files and repository structure
- Code Generation: Uses AI models to generate complete solutions with analysis
- File Creation: Writes files using the
=== FILENAME: path ===
format - Evaluation: Runs bash scripts to validate and determine if more work is needed
- Iteration: Continues refining until solution is complete (max 5 steps)
- PR Creation: Automatically creates pull request with all changes
The AI outputs files in this format:
## CODE
=== FILENAME: src/components/Login.tsx ===
import React from 'react';
export const Login = () => {
// Component implementation
};
=== END: src/components/Login.tsx ===
## EVAL
```bash
#!/bin/bash
set -euo pipefail
# Validation script
npx tsc --noEmit || exit 1
exit 0
Title: Add dark mode toggle
Body: Please add a dark mode toggle to the settings page
Title: Implement user authentication system
Body: Need a complete auth system with:
- Login/signup forms
- JWT token handling
- Protected routes
- User profile management
See existing code in `src/auth/` for context.
Title: Fix memory leak in data processing
Body: The data processor in `src/utils/processor.js` is causing memory leaks.
Please refactor to use streaming and proper cleanup.
- Local Mode: Manual confirmation for all script execution
- No Automatic Pushes: Creates commits locally, manual push in local mode
- Script Preview: Shows generated evaluation scripts before execution
- Git Safety: Easy to reset changes with standard git commands
- API Key Protection: Uses environment variables, never logged
"GITHUB_EVENT_PATH not found"
# Create mock event for local testing
export GITHUB_EVENT_PATH="/tmp/test_event.json"
"API key required"
export ANTHROPIC_API_KEY="your-key-here"
Permission denied on eval.sh
# Ensure you're in a writable directory
chmod +x eval.sh
Add verbose logging:
berrry --verbose
- CLAUDE.md - Technical architecture guide for Berrry Committer
- dev.md - Detailed local development guide
This project uses itself for development! You can request AI-generated code:
- Create an issue describing your coding request
- Berrry Committer will analyze, code, test, and create a PR automatically
Add --version flag support
Please improve error handling in the parser
Add Docker configuration for easy deployment
- Fork the repository
- Create your feature branch (or use Berrry Committer)
- Test locally with
npm test
- Submit a pull request
MIT License - see LICENSE file for details.
Made with 🍓 by Strawberry Computer