Your Slack channels have a new engineer
Toad sits in your Slack workspace and turns bug reports, feature requests, and casual mentions into pull requests — autonomously. No tickets, no context-switching. Just talk, and toad ships.
brew install cdre-ai/tap/toad
Requires Claude Code, GitHub CLI, and a Slack app
Someone drops a bug report. Toad reads it, understands it, writes the fix, validates it passes your tests, and opens a PR. The whole thing takes minutes.
Haiku classifies every message in ~1s. Bug, feature, question, or noise?
Spawns an autonomous agent in a git worktree. Claude Code writes the code.
Runs your test suite, linter, and file-count guardrails. Retries on failure.
Pushes, opens a PR, and replies in Slack. Then watches for review comments.
Catches bugs before anyone files them
Most AI coding tools wait for you to ask. The Toad King doesn't wait. It passively watches every message in your Slack channels — bug reports, Sentry alerts, CI failures, casual complaints — and when it spots something it can fix in one shot, it just fixes it.
No mentions, no triggers, no tickets. Toad King reads the room. Every non-bot message gets collected and batch-analyzed on an interval.
Only acts on high-confidence matches (>95%). Only allowed categories. Only tiny/small estimated size. Rate-limited per hour. Guardrails everywhere.
When confidence is high enough, a tadpole spawns automatically. The PR is the review gate. Zero-friction from complaint to fix.
ugh, the date picker is broken again. it doesn't parse dates with timezone offsets
Spotted this in the channel — looks like a clear bug in utils/time.go. Spawning a fix.
PR ready: #142 Fix timezone offset parsing in date picker
2 files changed · tests passing
Nobody asked. Toad King just handled it.
The Toad King is the standout, but toad handles the full spectrum — from answering questions to shipping fixes to iterating on review feedback.
Mention @toad with a question and Sonnet reads your code using read-only tools, then replies in-thread. Thread memory keeps follow-up conversations coherent.
Mention toad with a bug or feature request and a tadpole spawns immediately. Or react 🐸 on any message to trigger one. Toad creates a worktree, writes the fix, validates, and opens a PR.
After shipping a PR, toad watches for review comments. When a reviewer leaves feedback, toad auto-spawns a fix tadpole. Up to 3 rounds of iteration — toad doesn't just ship, it converges.
For monorepos: configure per-service test and lint commands. Tadpoles match changed files to services by path prefix and run each service's validation from its subdirectory.
Concurrent tadpole limits, per-run cost caps, max files changed, timeouts, and retry limits. Separate concurrency pools keep Q&A responsive while tadpoles run.
Run toad status to open a live web dashboard showing active runs, history, costs, triage breakdown, and config. Reads directly from SQLite, works even when the daemon is stopped.
brew install cdre-ai/tap/toad — or go install github.com/cdre-ai/toad@latest
Run toad init — it walks you through creating a Slack app with Socket Mode, setting scopes, subscribing to events, and saving tokens to .toad.yaml.
Run toad from your repo root. It connects to Slack, auto-joins public channels, and starts listening. Mention @toad and watch it work.
Config cascades: defaults → ~/.toad/config.yaml → .toad.yaml → env vars
repo:
path: /path/to/your/repo
test_command: go test ./...
lint_command: go vet ./...
limits:
max_concurrent: 2 # concurrent tadpoles
max_budget_usd: 1.00 # per-run cost cap
max_files_changed: 5 # safety guardrail
digest:
enabled: true # activate the Toad King
min_confidence: 0.95 # only act when sure