Project — 2026
Zirkbot
A self-hosted Discord and Slack bot that bridges chat with personal home services — smart lights, pantry inventory, a book library, and a financial dashboard — using Claude as its AI backbone.
- TypeScript
- Node.js
- Discord.js
- Slack Bolt
- Anthropic SDK
- SQLite
- Ollama
- Vitest
What it is
Zirkbot is a personal bot that runs on a Raspberry Pi and connects Discord and Slack to four internal home services: bewks (book library), pantry (household inventory), smarthome (Govee lighting), and fidash (financial dashboard). Messages arrive through platform-specific integration adapters, are normalized to a common BotMessage type, and dispatched to an action router that uses Claude Haiku to classify intent before routing to the appropriate registered action.
Architecture
The architecture is deliberately layered: integration adapters handle platform details (including missed-message recovery via a cursor file on startup), the router holds no service knowledge, and actions are self-contained units each wired to a typed service client. SQLite stores conversation history, enabling context-aware responses across sessions. A three-tier AI provider system gives the router the ability to use a lightweight model for classification while using a more capable model for actual responses — and an optional hybrid mode routes classification through a local Ollama instance to reduce API usage.
Capabilities
Specific capabilities include Govee light control (on/off, color, brightness, scenes, zone broadcast), pantry inventory search with ingredient-to-recipe cookability checking, book search and request submission, and stock/news queries. Certain Discord channels can be mapped to a specific service, making the bot respond without a mention and filtering actions to that domain. A CLI REPL is included for local testing without a Discord or Slack connection.
Where it’s at
The project is early-stage and actively developed. Slack integration code exists in the codebase but was not wired up in the main entry point at the time of writing. The action set is limited to the four services and expands incrementally as new needs arise.