The AI teammate that finds bugs before your users do.
Toad is a self-hosted Go daemon that watches your Slack channels, identifies bugs from conversations and alerts, verifies them against your codebase, and opens fix PRs β all before anyone files a ticket. It's like having a senior engineer who reads every message and quietly fixes things.
Most AI coding tools wait for you to ask. Toad doesn't.
The Toad King passively monitors every message in your Slack workspace, batch-analyzes them with Haiku, investigates feasibility against your actual codebase, and autonomously spawns fix agents for high-confidence one-shot bugs. No @mentions, no tickets, no human in the loop until PR review.
On top of that, toad handles the full reactive path too β @mention it with a bug report and get a PR in minutes, ask it a question and get a codebase-grounded answer in seconds.
Why toad over Copilot, Devin, or Claude Code?
| Toad | Copilot Agent | Devin | Claude Code | |
|---|---|---|---|---|
| Proactive bug detection | Yes (Toad King) | No | No | No |
| Self-hosted (code stays local) | Yes | No | No | No |
| PR review feedback loop | Yes (3 rounds) | No | No | No |
| CI failure auto-fix | Yes | No | No | No |
| Cost | Your existing Claude sub | Per-seat | Per-seat | Per-seat |
| Slack-native | Yes | No | Coming | Coming |
| MCP integration (Claude Desktop) | Yes | No | No | No |
Slack message β Triage (Haiku, ~1s) β Route by category:
π Toad King β passive batch analysis β investigate β auto-fix PR
π£ bug/feature β spawn tadpole β worktree β Claude Code β validate β PR
πΈ question β ribbit reply (Sonnet + read-only codebase tools)
Tadpoles run the full lifecycle autonomously: create a git worktree, invoke Claude Code, validate with your test/lint commands, retry on failure, push and open a PR. After shipping, toad watches for review comments and CI failures, auto-spawning fix tadpoles for up to 3 rounds.
Ribbits are for when you just need an answer. Mention toad with a question and it reads your codebase with read-only tools, then replies in-thread. Thread memory means follow-ups stay coherent.
Everything in toad is named after the lifecycle of a frog:
| Term | What it means |
|---|---|
| πΈ Toad | The daemon β sits in your Slack pond, watching |
| π₯ Triage | Every message classified by Haiku in ~1s |
| πΈ Ribbit | Codebase-aware answer to a question |
| π£ Tadpole | Autonomous coding agent β worktree, Claude Code, validate, PR |
| π Toad King | Passive monitoring β investigation β auto-fix |
| π PR Watch | Review comment and CI failure auto-fixing |
- Claude Code CLI (
claude), authenticated - GitHub CLI (
gh) or GitLab CLI (glab), authenticated - A Slack app with Socket Mode enabled
brew tap scaler-tech/pkg https://github.com/scaler-tech/pkg
brew install --cask toadmacOS security note: If macOS blocks the app, the cask's post-install hook should handle it. If not:
xattr -d com.apple.quarantine $(which toad)
scoop bucket add scaler-tech https://github.com/scaler-tech/pkg
scoop install toad# Binary releases
# Download from https://github.com/scaler-tech/toad/releases/latest
# Go install
go install github.com/scaler-tech/toad@latest
# Build from source
git clone https://github.com/scaler-tech/toad.git && cd toad && make buildtoad init # Setup wizard β Slack tokens, repo config, Toad King opt-in
toad # Start the daemonToad connects to Slack via Socket Mode, auto-joins public channels, and starts listening. Mention @toad in any channel with a question or bug report and watch it work.
For detailed Slack app setup, configuration, and advanced features, see the Setup Guide.
| Command | Description |
|---|---|
toad |
Start the daemon |
toad init |
Interactive setup wizard |
toad run "task" |
Spawn a tadpole from the CLI (no Slack needed) |
toad status |
Open live monitoring dashboard in browser |
toad version |
Print version info |
toad update |
Self-update to latest version |
toad restart |
Gracefully restart the daemon |
cmd/
root.go Daemon, message routing
run.go CLI one-shot mode
init.go Setup wizard
status.go Web dashboard
internal/
slack/ Socket Mode client, event routing, dedup
triage/ Haiku classification
ribbit/ Q&A with read-only tools
tadpole/ Worktree, agent runner, validation, shipping
state/ In-memory + SQLite state, crash recovery
reviewer/ PR review + CI watcher, fix tadpole spawning
digest/ Toad King: batch analysis, investigation, auto-spawn
config/ YAML config with cascading defaults, multi-repo profiles
agent/ Coding agent provider abstraction (see PROVIDERS.md)
vcs/ VCS provider abstraction (see PROVIDERS.md)
issuetracker/ Issue tracker abstraction (see PROVIDERS.md)
mcp/ MCP server for Claude Desktop/Code integration
Three packages use a provider/plugin pattern for extensibility. See the PROVIDERS.md in each directory for the interface contracts, current implementations, and how to add new ones.
- Single binary, zero infra β Go binary, git worktrees, your Claude subscription. No Docker, no cloud.
- Three-tier intelligence β Haiku for triage (~$0.001), Sonnet for investigation (read-only), Sonnet for execution (full tools).
- 6-layer guardrails on proactive spawning β disabled by default, 0.95 confidence threshold, category + size restrictions, hourly cap, existing validation + human PR review.
- Write-through state β in-memory cache + SQLite for crash recovery and dashboard.
- MCP server β optional Streamable HTTP endpoint lets Claude Desktop and Claude Code query toad (ask questions, read logs) via authenticated tokens managed through Slack.
Toad includes an optional MCP (Model Context Protocol) server that lets Claude Desktop and Claude Code interact with your toad instance directly β ask codebase questions, read daemon logs, and check health.
Setup:
- Enable in config:
mcp.enabled: trueand setmcp.port: 8099 - Add a
/toadslash command to your Slack app (see Setup Guide) - Run
/toad mcp connectin Slack to get a personal token - Add toad as an MCP server in Claude Desktop or Claude Code
Available tools:
askβ Ask toad a codebase question (uses ribbit engine with read-only tools)logsβ Read and filter daemon logs (dev role required)
For full setup instructions, see the Setup Guide.
make build # Build binary
make test # Run tests with race detector
make lint # Run golangci-lint
make vet # Run go vet
make fmt # Format codeElastic License 2.0 (ELv2) β free to use, modify, and distribute. You may not offer toad as a hosted/managed service.
Built with Claude Code. Toad eats bugs. πΈ