Get started
What Habakkuk is, how it stays up, and where to go first for what you want to do.
Habakkuk is a personal AI agent in one Go binary. It talks to you over the terminal, a web dashboard, a desktop app and chat apps (WhatsApp, Telegram, Slack, Discord, Signal, Matrix, email, SMS, Microsoft Teams, Google Chat, iMessage and more). It uses tools, remembers what matters, runs work on a schedule, and can run several agents that hand each other work.
Every turn is a job with a lease in a SQLite queue. A kill -9 at any moment loses nothing: a restart picks up where it stopped.
Pick your goal#
| I want to | Start with |
|---|---|
| Try it in a few minutes | Quickstart |
| Install it on macOS, Linux, Windows or Docker | Installation |
| Talk to it on WhatsApp | |
| Talk to it on Telegram, Slack, Discord or another app | Channels |
| See what people set up with it | Use cases |
| Bring my setup over from another agent | Move from another agent |
| Use a local model, or a cheap one for quick messages | Providers and routing |
| Run a team of agents | Multi-agent teams |
| Keep it running on a server | Run it on a server |
| Understand the config file | Configuration |
Why Habakkuk#
- One binary. One static binary, no CGO and no runtime to install.
- Crash-proof by design. Every turn is a leased job. A dead process's work is reclaimed on restart, and interrupted tool calls are repaired, never blindly repeated.
- Storage that stays small. A hot
control.db, a coldtranscripts.dband content-addressed blobs, with retention on by default. - Channels that stay connected. Every adapter runs under a supervisor with a heartbeat watchdog. A stuck socket is torn down and reconnected, not left hanging.
- Never answers twice. Redelivered messages are dropped, replies are delivered once, and a long reply resumes at the first unsent chunk after a crash.
- Any model. Claude, GPT, Gemini, DeepSeek, Grok, Mistral, Qwen, Bedrock, OpenRouter, local models and more, with a cheap model for quick messages if you want one.
- Config that catches typos. Keys Habakkuk does not know are reported, not silently accepted.
How it stays up#
- Durable turns. A message becomes a
turnjob. Workers claim jobs with a lease and heartbeat while running. Every transcript write checks the lease, so a worker that lost its job can never write. - Fast crash recovery. Leases record host and PID. On start, Habakkuk reclaims jobs whose owner process is dead instead of waiting for the lease to expire.
- Transcript repair. A tool call whose result was never recorded gets an "interrupted, check state first" result, so side effects are not blindly repeated.
- Model resilience. Errors are classified. Transient ones retry with jittered backoff, rate limits rotate keys with cooldowns, and errors another model can fix fall back down the chain.
- Cache-stable prompts. The system prompt is frozen per session, tools are sorted, the time goes in the user turn, and transcripts are append-only.
Architecture explains the design in depth.
Next steps#
In this section
- QuickstartInstall Habakkuk, run the setup wizard, get your first reply in about a minute, and learn the everyday commands.
- InstallationInstall Habakkuk with the install script for your OS, a release archive, go install or the container image.
- UpdatingMove to a new release with habakkuk update, follow the beta channel, roll back, and how config and database changes are handled.
- ConfigurationHow config.yaml is laid out, where keys go, what lives in $HABAKKUK_HOME, and which changes need a restart.
- Use casesEight concrete setups, from a personal assistant on WhatsApp to a team of agents run from Slack, each with the config and commands it takes.
- Move from another agentBring your agents, memory, skills, schedules, MCP servers, channels and keys over from another agent with habakkuk migrate.