Squash bugs and hammer down tasks with a coordinated team of agents.
whackAmole is a local-first, agent-native task manager. It bridges the gap between AI-driven development and human oversight, providing a structured way for agents to propose work and for humans to refine it.
- Agent Proposes: An AI agent (via MCP) analyzes your codebase and breaks a feature down into actionable tasks.
- Human Refines: You use the Web UI to review descriptions, adjust priorities, or merge tasks.
- Agent Executes: The agent picks up the "Not Started" tasks one by one, moving them to "In Progress" and finally "Review" for your approval.
- Web UI: a polished interface with dark mode support and a rich Markdown editor.
- Agent-Ready: native Model Context Protocol (MCP) server for seamless integration with Claude, ChatGPT, and other MCP-compatible clients.
- CLI-First: a fast Go binary (
whack) for terminal-native workflows and automation. - Zero-Config Persistence: uses SQLite (CGO-free) and embedded migrations. No external database required.
Quickly install the latest pre-built binary for your platform.
curl -sSL https://raw.githubusercontent.com/gosusnp/whackamole/main/install.sh | shwhack project add "My App" --key myapp
whack config set-local project myapp # writes .whackamole.yaml in the current directory, scoping this project to the repowhack task add "Fix login bug" --type bug --desc "Fails on empty password"
whack task listwhack ui # opens at http://localhost:8080
whack ui --port 9000 # use a different portwhackAmole exposes a standard MCP server (whack mcp). Any MCP-compatible client can connect using command: whack and args: ["mcp"].
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"whackamole": {
"command": "whack",
"args": ["mcp"]
}
}
}Other clients (Cursor, Continue, etc.) follow the same command/args pattern — consult your client's MCP documentation for the exact config format.
- Architecture Overview - How data validation and persistence work.
- Frontend Guide - Details on the Preact + Vite setup.
MIT