As a software engineer who spends most of the day in terminals and chat apps, I was heavily fatigued by bloated SaaS setups, complex cloud architectures, and runaway subscription bills. I wanted a personal AI assistant that lived exactly where I already work: Telegram. Not yet another web dashboard, not a Slack bot, not a CLI tool I'd forget to open. Just me, a chat thread, and an AI that can actually do things.

I use Telegram for work, for personal chats, for notifications, for everything. It's the one app I never close. So it made sense: instead of building a standalone AI tool that I'd have to remember to visit, I'd build one that shows up in my existing message flow. A bot I can ask to check my email, remind me to call someone at 6 PM, remember that I prefer async communication in the mornings, or summarize my unread messages - all without leaving my chat list.

Here is how I built it, the architecture under the hood, the security model, the scheduling pipeline, and the trade-offs I made along the way to keep this entirely zero-infrastructure.

The Stack: Bun, Telegraf, Composio

The tech choices were driven by one strict constraint: zero infrastructure. No servers to deploy, no Docker containers, no cloud bills. This had to run on a $5 VPS or my laptop. The entire stack had to fit in a single process, use a file-based database, and have no external dependencies aside from the APIs it calls.