Blacki | Chirag Patil
The curve of the Earth at night from orbit: a thin blue rim of atmosphere over scattered amber city lights.

Blacki is the personal AI agent I run on my own server and talk to over Telegram. Why it exists when ChatGPT and Claude already do so much, what it can do, and how I use it every day.

Why another agent

Blacki is my personal AI assistant. I use it alongside the ChatGPT and Claude apps, and since those two already do most things, it’s fair to ask why anyone would need a third. The same question applies to OpenClaw and Hermes Agent.

I started Blacki because I loved OpenClaw when it launched, but it burned through tokens without getting much done. I also wanted to write code from my phone when I was away from my MacBook. I used that constantly until Codex Remote came out.

After a few weeks I found a handful of jobs Blacki does better than anything else I have, and those are what this page is about.

What it is

Blacki is named after a friend’s dog. It is an agent built on the Google ADK harness and deployed on my Hetzner server. You talk to it in Telegram, which turns out to be a good interface if you don’t have an app of your own, and anyone with Telegram can use it.

Today it has:

  • Web search, through Exa and Brave
  • Reminders
  • Macro and workout tracking
  • Google Health integration
  • Files and a sandbox for running real commands
  • Memory across conversations
  • Custom data: define your own table and Blacki becomes the tool for it
One amber window lit on a dark residential wall at night, a thin antenna against a deep blue sky.
Pl. I. The sandbox runs at home, on a residential line.

How it’s built

I use Blacki every day for reminders and for tracking calories and macros, so I keep improving it. It deploys through a GitHub Actions pipeline and has 100% pytest coverage. Sessions are stored in SQLite, there is a dashboard for observability, and logs and traces are exported as OpenTelemetry JSON.

How I use it

A Taylor Swift bridges mashup

I asked Blacki to cut 25 Taylor Swift bridges into one 25-minute track with a fade between each. It worked in the sandbox with ffmpeg, checked the output with ffprobe, then sent me the file in the chat.

A Telegram thread: Blacki runs sandbox commands, confirms a 25-minute, 24.6 MB file of 25 bridges, and sends Taylor_Swift_Bridges_25min.m4a.
The end of the thread, including an apology for misreading the first request as two hours.
The result: 25 bridges, 25:00.

Downloading videos from Instagram, X and YouTube

I wrote a skill that tells Blacki to run yt-dlp in the sandbox and send me the video. The sandbox server launches ephemeral Linux environments, and it runs on my old Ubuntu laptop at home. That gives it a residential IP, so these downloads work, and I use them to share memes and clips.

Aerial view of pale dunes with long black shadows and one small concrete slab half buried in the sand.
Pl. II. Each task gets a fresh Linux box, then it's thrown away.

A weekly calorie chart

Before Google Health was integrated, I asked Blacki for a chart like this every week.

Stacked bar chart of six days of calories split into protein, carbohydrates and fat, against a 2,000 kcal daily goal.
Six days in May, split by macronutrient, against the 2,000 kcal line.

Tables you define yourself

Being able to make your own tables is one of the most useful parts. A friend who uses Blacki built their own finance tracker this way, and they log their expenses in it.

Close crop of old ledger paper with faded teal and red ruled columns, one corner in warm sunlight.
Pl. III. A table is just columns until you give it a job.

A browser on a home connection

The sandbox can also install agent-browser, a command-line browser for agents, and do browser tasks for me: filling in forms and exploring sites that need a real browser. Because it runs on a residential IP, it reaches some sites that block the remote browsers used by ChatGPT agent mode and Claude Cowork.

This is still in development. The feature I’m building now lets me log in to a site without sharing a password in the chat.

What’s next

This project is far from done, and new ideas keep pulling me back to it. The current focus is a new template written in Rust, to cut the RAM Blacki uses on the Hetzner server. I’ll cover that in a separate post on Athena.