This bot allows you to generate readable passwords directly from Telegram without necessity to open external utilities such as KeePass. An inspiration for this bot came from famous XKCD 936 strip.
Try it now: https://t.me/passgenbot
- Presets of different complexity;
- Ability to generate customized password;
- Inline mode with colored complexity;
- No personal data is collected!
- Basic multilanguage support (En+Ru), depending on
language_codefrom Bot API; - Docker support
- Python 3.7+
- aiogram – Telegram Bot API framework;
- Redis as backend for aiogram's finite state machine (FSM);
- XKCD-password-generator – It goes without saying :)
You can install all these requirements with pip install -r requirements.txt command. Redis must be done separately
(or will be automatically pulled if using Docker method below)
/generate_weak– 2 words, no digits or separators between words/generate_normal– 3 words, random UPPERCASE, separated by numbers/generate_strong– 4 words, random UPPERCASE, separated by numbers or special characters
With /settings command you can customize generated passwords. Currently supported settings are number of words (2 to 8),
prefixes and suffices in the beginning and in the end of password and separators between words in password.
Then just use /generate command to create password based on your settings.
You can also use this bot in inline mode. An indicator on the left shows rough password complexity (green is good, red is not).
This bot supports deployment via docker-compose. First create a directory structure for your bot, e.g.:
mkdir -p /opt/passgenbot/{bot-config,redis-config,redis-data}
touch /opt/passgenbot/bot-config/config.inibot-config directory contains config.ini file.
redis-config directory contains custom config file for Redis. If you don't place anything here, the following config
will be used:
port 6379
save 600 1
dbfilename redis_dump.rdb
redis-data directory contains your database file. You can place your own one if migrating from other bot's instance.
Don't forget to update redis.conf file if you rename or move your database file.
Use config.example.ini as an example
for your own configuration file, then place docker-compose.yml file
next to other created directories and start your bot using docker-compose up -d command. Check logs using docker-compose logs.


