Major Updates to Cheburek
Copy linkBy Kirill Siukhin • Saturday, Oct 17, 2026 • 3 minutes read
A few days ago, I wrote a post about my Discord bot, Cheburek.
In a nutshell, I built a bot that could divide messages into words, store them using Markov chains, and create random sequences of these words using historical word usage data. This allows it to produce text that is somewhat predictable and meaningful.
As Cheburek “learns” new words and connections between them, it can generate funny messages while preserving a server’s internal jokes and messaging style.
Cheburek just got a huge update, so here’s the post about it.
Privacy improvement
While old versions of Cheburek tracked messages in every Discord server and put them in one single database, the new version stores data in a separate directories. This keeps each server’s collected data separate, rather than mixing messages from different communities in the same database. This is a step in the right direction for privacy, although there’s still room for improvement.
More generation possibilities
Now, Cheburek saves images too. This opens up new possibilities for meme generation by combining images with text generated by Cheburek.
The core library
I made a dedicated library for Cheburek called cheburek-core. It is available on PyPI, though I really need to write a better documentation for it.
The core library contains all of Cheburek’s main functionality, including the Markov chain implementation, meme generation, data storage, and more.
Telegram bot
Using the shared cheburek-core library, I created a Telegram bot Cheburek implementation using aiogram. Since both bots use the same core library, I can implement most new features in one place and make them available on both platforms. Telegram bot has almost all of the features that Discord bot has.
Better CI/CD
I added more GitHub workflows to test, build and publish Cheburek packages. It automatically builds and publishes cheburek-core PyPI library and bot images, that I run using Docker.
Whenever a new version of cheburek-core, the publish workflow automatically builds and publishes a package to PyPI. Then, both Discord and Telegram bot can update to the new version of cheburek-core, receiving new functionality simultaneously.
What’s next?
These updates have made Cheburek easier to maintain and extend, while opening up new possibilities for generating text and memes across different platforms.
There’s still plenty of room for improvement, especially when it comes to privacy. But for now, I’m happy with how the project is evolving, and I’m looking forward to adding more features.
