Skip to content

Get started

What Habakkuk is, how it stays up, and where to go first for what you want to do.

On this page

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 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 cold transcripts.db and 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 turn job. 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