Skip to content

Project · 2026

Zirkbot

A private chat bot that connects conversation with a small set of personal services using Claude.

Role: Creator
  • TypeScript
  • Node.js
  • Discord.js
  • Slack Bolt
  • Anthropic SDK
  • SQLite
  • Ollama
  • Vitest

Project snapshot

Status
Early-stage personal automation bot, actively extended as new needs appear.
Platforms
Discord and Slack adapters normalize messages into a common action-routing pipeline.
AI routing
Claude Haiku classifies intent, with optional Ollama classification to reduce API usage.
Services
Bridges a small set of private household workflows.

Technical proof

  • Adapters handle platform details and missed-message recovery while actions stay service-specific and typed.
  • SQLite conversation history supports context-aware responses across sessions.
  • A CLI REPL enables local action testing without connecting Discord or Slack.

What it is

Zirkbot is a private personal bot that connects chat to a small set of household services. 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

Capabilities include household controls, inventory lookup, library requests, and market-research queries. A CLI REPL supports local action testing without a chat connection.

Where it’s at

The project is early-stage and actively developed, with its action set expanding incrementally as new needs arise.