Butler Bearald
12 AI bots on Telegram, each with their own personality and purpose

The Problem
When Open Claude blew up, I loved the idea of a personal AI assistant that really knows you. But I didn't want the security risks, the per-call API bills, or the horror stories of people getting stuck in loops and racking up thousands of dollars. I wanted something that ran on my existing Claude subscription and was actually safe to use.
The Approach
Built on the grammY Telegram framework with Bun. Instead of one massive chatbot, I split it into 12 bots with fantasy-themed personas. Each one has its own personality, communication style, and area of expertise. They all share a Supabase database so Innkeeper Ilka knows your dietary preferences when Financier Fulnir sets a grocery budget. Separate Telegram chats for each bot keeps things organized instead of one chaotic thread.
Technical Highlights
Shared Memory Architecture
All 12 bots read and write to a shared Supabase memory layer. This is what makes the system feel cohesive instead of like 12 disconnected chatbots. Set a grocery budget with Fulnir and Ilka factors it into her meal suggestions automatically.
Personality-Driven System Design
Each bot has a persona that shapes not just what it says but how it says it. Battlemaster Brakos is blunt and motivating. Loremaster Lindell is thoughtful and curious. The personalities make you actually want to interact with them, which was the whole point.
What I Learned
Session management was the hardest problem. Originally each message tried to resume a previous Claude session, which caused the bots to hallucinate conversations that never happened. Switching to fresh sessions per message with curated history fixed it. Bearald was also my entry point into AI development and vibe coding. Everything I'm building now started here.