π€ Claude AutoFix Bot
Team-first AI coding assistant for Slack β One bot, whole team collaborates
Unlike Anthropicβs Claude Code for Slack which requires every user to have their own Claude account, Claude AutoFix Bot is a shared team resource. Anyone on your team can report bugs, provide context, and follow upβall in the same thread, all contributing to the same fix.
π― Why This Exists
The problem with per-user AI tools / Claude Code for Slack:
- PM reports a bug β needs Claude Pro ($20/mo)
- Dev wants to add context β needs their own session
- Designer attaches a screenshot β canβt contribute to the same thread
- Each person works in isolation
Claude AutoFix Bot solves this:
- One API key for the whole team
- PM reβ¦
π€ Claude AutoFix Bot
Team-first AI coding assistant for Slack β One bot, whole team collaborates
Unlike Anthropicβs Claude Code for Slack which requires every user to have their own Claude account, Claude AutoFix Bot is a shared team resource. Anyone on your team can report bugs, provide context, and follow upβall in the same thread, all contributing to the same fix.
π― Why This Exists
The problem with per-user AI tools / Claude Code for Slack:
- PM reports a bug β needs Claude Pro ($20/mo)
- Dev wants to add context β needs their own session
- Designer attaches a screenshot β canβt contribute to the same thread
- Each person works in isolation
Claude AutoFix Bot solves this:
- One API key for the whole team
- PM reports bug β Dev replies with technical context β Designer adds screenshot
- Bot uses ALL that context to create one PR
- Anyone can follow up in the thread to iterate
β‘ Key Differentiators
| Feature | Claude AutoFix Bot | Anthropicβs Claude Code for Slack |
|---|---|---|
| Team collaboration | Anyone can contribute to same thread | Sessions tied to individual accounts |
| Pricing | One API key (pay per use) | Every user needs Pro/Max/Team ($20-100+/mo per seat) |
| Non-technical users | Can trigger fixes, no account needed | Requires Claude account + Claude Code access |
| Self-hosted | Your infrastructure, your data | Runs on Anthropicβs servers |
| Auto-PR creation | End-to-end in Slack | Manual "Create PR" button click |
| Preview deployments | Vercel integration built-in | Not available |
β¨ Features
- π― Slack-Native: Report issues directly in your teamβs Slack channel
- π₯ Team Collaboration: Multiple people contribute context in the same thread
- π€ Claude Code CLI: Full agentic capabilities (explore, edit, run tests)
- π· Screenshot Support: Attach images for visual contextβClaude analyzes them
- π Auto-PR Creation: Creates properly formatted PRs with semantic branch names
- π¬ Rich Notifications: Real-time Slack updates throughout the process
- π Thread Follow-ups: Reply in threads to continue working on the same branch
- π Self-Hosted: Your infrastructure, your data, your control
π¬ How It Works
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. PM posts in Slack: "The checkout button is broken on mobile" β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2. Dev replies: "It's in CheckoutButton.tsx, z-index issue" β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. Designer attaches screenshot of the bug β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 4. @bot analyzes ALL context and generates fix β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 5. Creates branch: fix/checkout-button-mobile β
β Commits changes β Pushes to GitHub β Creates PR β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 6. Bot posts PR link to Slack thread β
β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 7. Anyone replies: "Also fix the hover state" β
β β Bot updates same branch + PR with follow-up changes β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Quick Start
Prerequisites
- Node.js 20+ installed
- Slack workspace with admin access
- GitHub account with repo access
- Railway account for deployment (or any Node.js host)
- Anthropic API key for Claude
1. Clone & Install
git clone https://github.com/MattKilmer/claude-autofix-bot.git
cd claude-autofix-bot
npm install
2. Configure Environment
cp .env.example .env.local
Edit .env.local with your credentials (see QUICKSTART.md for detailed setup):
| Variable | Description |
|---|---|
SLACK_BOT_TOKEN | Your Slack bot token |
SLACK_SIGNING_SECRET | Slack signing secret |
SLACK_CHANNEL_ID | Channel to monitor |
ANTHROPIC_API_KEY | Your Claude API key |
GITHUB_TOKEN | GitHub personal access token |
GITHUB_USERNAME | Your GitHub username |
TARGET_REPO_URL | Repository to fix |
BASE_BRANCH | Main branch name (usually main) |
3. Run Locally
npm run dev
In another terminal, expose your local server:
npx ngrok http 3000
4. Configure Slack
- Go to api.slack.com/apps
- Create a new app
- Enable Event Subscriptions
- Set Request URL to:
https://your-ngrok-url.ngrok.io/api/slack-events - Subscribe to bot events:
message.channels - Install app to your workspace
5. Test It!
Post a message in your Slack channel:
Fix the bug in the navbar where the menu doesn't close on mobile
The bot will:
- β React with π
- β Analyze with Claude
- β Create a new branch
- β Commit the fix
- β Create a PR
- β Post results back to thread
π Documentation
- QUICKSTART.md β Step-by-step setup guide with API key instructions
- CLAUDE.md β Technical context for developers and AI agents
ποΈ Project Structure
claude-autofix-bot/
βββ src/
β βββ server.ts # Express server & Slack webhook handler
β βββ config/ # Configuration management
β βββ types/ # TypeScript type definitions
β βββ services/ # Core services
β β βββ slack/ # Slack API integration
β β βββ claude/ # Claude Code CLI integration
β β βββ git/ # Git automation + GitHub API
β β βββ deployment/ # Deployment tracking
β βββ handlers/ # Business logic (issue-processor)
β βββ utils/ # Shared utilities
βββ QUICKSTART.md # Setup guide
βββ CLAUDE.md # Technical context
π οΈ Technology Stack
- TypeScript β Type-safe development
- Node.js 20 β Runtime
- Express β HTTP server
- Railway β Hosting (persistent server for Claude CLI)
- Claude Code CLI β Full agentic AI capabilities
- Slack API β Team communication
- GitHub API β PR automation
- simple-git β Git operations
- Zod β Schema validation
π Deployment (Railway)
- Connect your GitHub repository to Railway
- Set environment variables in Railway dashboard
- Railway will auto-deploy on push to main
- Update Slack Event Subscriptions URL:
https://your-app.railway.app/api/slack-events
π Security
- β Slack signature verification on all webhooks
- β Environment variables never committed
- β GitHub tokens with minimal required scopes
- β All operations logged for audit trail
- β Rate limiting via job queue
- β Self-hosted β your data stays on your infrastructure
π€ Contributing
Contributions welcome! Please open an issue or submit a pull request.
π§ Support
- π Report a Bug
- π‘ Request a Feature
- π Read the Docs
Made by Matt Kilmer
Team-first AI coding β because great software is built collaboratively.