A multi-agent system that acts like a real teammate, automatically planning, coding, debugging, and managing software development tasks.
- π₯ Live Task Board: Real-time task tracking with Next.js SSR
- π§ Planner Agent: Converts problems into prioritized tasks using Gemini AI
- π¨βπ» Coder Agent: Generates code and creates GitHub PRs automatically
- π Debugger Agent: Analyzes failures and suggests fixes
- π£ PM Agent: Sends Slack notifications and progress updates
- πΎ Memory System: Persistent context storage with ChromaDB
- GitHub Integration: Automatic branch creation and PR management
- Slack Integration: Real-time notifications and summaries
- Vector Memory: Semantic search for past decisions and code
- Multi-Agent Orchestration: Intelligent task routing and execution
For a quick demo-ready setup:
# 1. Run the automated setup
./setup-mvp.sh
# 2. Add your API keys to .env.local:
# GEMINI_API_KEY=your_key_here
# GITHUB_TOKEN=your_token_here (optional)
# SLACK_WEBHOOK_URL=your_webhook_url (optional)
# 3. Start the app
npm run dev
# 4. Test the autonomous flow
# Visit http://localhost:3000
# Enter: "Add a /health endpoint"
# Watch the magic happen! πͺ- Node.js 18+
- Git
- Gemini API key (required for AI features)
- GitHub token (optional, for PR creation)
- Slack webhook URL (optional, for notifications)
- Clone and install dependencies:
git clone <your-repo-url>
cd HackMate
npm install- Set up environment variables:
cp .env.example .env.local
# Edit .env.local with your API keys- Start the development servers:
# Start the integrated Next.js application
npm run dev # Runs on port 3000 with integrated backend- Open your browser:
- Dashboard: http://localhost:3000
- API endpoints available at: http://localhost:3000/api/*
# AI Configuration
GEMINI_API_KEY=your_gemini_api_key_here
# GitHub Integration (optional)
GITHUB_TOKEN=your_github_personal_access_token
GITHUB_OWNER=your_github_username
GITHUB_REPO=your_repository_name
# Slack Integration (optional)
SLACK_BOT_TOKEN=xoxb-your-slack-bot-token
SLACK_CHANNEL_ID=your_slack_channel_id
# Vector Database (optional)
CHROMA_URL=http://localhost:8000
# Server Configuration
PORT=3001
NODE_ENV=development- Create a Personal Access Token with
repopermissions - Set
GITHUB_TOKEN,GITHUB_OWNER, andGITHUB_REPOin.env
- Create a Slack app and bot
- Add bot to your channel
- Set
SLACK_BOT_TOKENandSLACK_CHANNEL_IDin.env
- Create a Pinecone account at https://app.pinecone.io/
- Create a new index:
- Name:
hackmate-memory(or custom name) - Dimensions:
768(for Gemini embeddings) - Metric:
cosine - Cloud:
AWS(recommended)
- Name:
- Set
PINECONE_API_KEYandPINECONE_INDEX_NAMEin.env
The system will automatically:
- Create the index if it doesn't exist
- Generate embeddings using Gemini
- Store and retrieve context semantically
- Fall back to in-memory storage if Pinecone is not configured
-
Enter a Problem Statement:
- "Add a /health endpoint to the API"
- "Create a responsive dashboard component"
- "Fix the failing user authentication tests"
-
Watch the Magic:
- Planner Agent breaks down the problem
- Coder Agent generates and commits code
- Debugger Agent fixes any issues
- PM Agent sends updates to Slack
-
Review Results:
- Check the live task board
- Review generated code in the
generated/folder - See GitHub PRs created automatically
- Get Slack notifications
Problem: "Add a /health endpoint that returns server status"
β Planner creates tasks
β Coder generates endpoint + tests
β Creates GitHub PR
β Slack notification sent
Problem: "Create a user profile component with avatar and bio"
β Planner breaks down UI requirements
β Coder generates React component with TypeScript
β Creates styled component with Tailwind
β PR created with preview
- App Router: Modern Next.js with SSR and Server Actions
- Server Components: SSR-first architecture with client interactivity
- Tailwind CSS: Utility-first styling
- TypeScript: Type-safe development
- Real-time Updates: Server Actions with automatic revalidation
- Task Runner: Functional orchestration of agent execution
- Memory Manager: Handles persistent storage with ChromaDB
- Agent System: Functional AI agents (no classes)
- Server Actions: Type-safe server functions with automatic caching
- Planner Agent: Problem decomposition with Gemini
- Coder Agent: Code generation and GitHub integration
- Debugger Agent: Issue analysis and fix generation
- PM Agent: Communication and progress tracking
Problem Input β Planner Agent β Task Queue β Agent Execution β Results β UI Update
β
Memory Storage β GitHub PR β Code Generation β Coder Agent
β
Slack Notification β PM Agent β Task Completion
HackMate/
βββ app/ # Next.js app directory
β βββ layout.tsx # Root layout
β βββ page.tsx # Home page
β βββ globals.css # Global styles
βββ components/ # React components
β βββ Header.tsx # App header
β βββ TaskBoard.tsx # Live task board
β βββ TaskCard.tsx # Individual task cards
β βββ ProblemInput.tsx # Problem input form
βββ server/ # Backend server
β βββ index.js # Express server
β βββ core/ # Core system
β β βββ TaskRunner.js # Task orchestration
β β βββ MemoryManager.js # Memory management
β βββ agents/ # AI agents
β β βββ PlannerAgent.js
β β βββ CoderAgent.js
β β βββ DebuggerAgent.js
β β βββ PMAgent.js
β βββ routes/ # API routes
β βββ index.js
βββ generated/ # Generated code output
βββ package.json # Dependencies
βββ README.md # This file
POST /api/tasks/create- Create task from problemGET /api/tasks- Get all tasksGET /api/tasks/:id- Get specific taskPOST /api/tasks/:id/retry- Retry failed task
GET /api/agents/status- Get agent status
GET /api/memory/search- Search memory
GET /health- Server health check
# Run all tests
npm test
# Run specific test suites
npm run test:agents
npm run test:api
npm run test:uinpm run build
npm startdocker build -t ai-hack-mate .
docker run -p 3000:3000 -p 3001:3001 ai-hack-mate- Deploy frontend to Vercel/Netlify
- Deploy backend to Railway/Heroku
- Use managed ChromaDB or Pinecone
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
MIT License - see LICENSE file for details
Agents not working:
- Check API keys in
.env - Verify network connectivity
- Check server logs
GitHub integration failing:
- Verify token permissions
- Check repository settings
- Ensure branch protection rules allow bot commits
Slack notifications not sending:
- Verify bot token and channel ID
- Check bot permissions in Slack
- Ensure bot is added to the channel
DEBUG=hackmate:* npm run dev:fullTry these example problems:
- "Add a /health endpoint to check server status"
- "Create a responsive user dashboard with charts"
- "Implement JWT authentication middleware"
- "Add unit tests for the user service"
- "Fix the failing CI pipeline"
Built with β€οΈ by the AI Hack Mate team