Skip to main content
AD
Back to home

Butler Bearald

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

JavaScriptBungrammYSupabaseClaude AI
Butler Bearald hero

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.