py_vyrtuous is a multipurpose Discord bot in Python. It brings together:
- Chemistry tools (structure rendering, comparison, logP prediction)
- Scripture lookup (Bible & Quran)
- Moderation (message wiping)
- Tagging & routine posts
- PDF-based research management
Chemistry
• d <compound1> <compound2> — Render a molecule or peptide by name and/or get side-by-side comparison
• In-bot help: help d
• logp <name> — Predict octanol–water partition coefficient
• smiles <name> — Return the SMILES string for a given molecule
Scripture
• script ESV <book>.<chapter>.<verse>
• script quran <sura>.<ayah>
Moderation & Tagging
• wipe <count> — Bulk-delete last <count> messages
• In-bot help: help wipe
• tag add <key> <value> / tag <key> / tag list
• In-bot help: help tag
PDF Manager
• A suite of pdf subcommands to upload, search, annotate, and retrieve PDFs
• In-bot help: help uploadpdf
Prerequisites:
• Python 3.13+ (python3 --version)
• pip (pip --version)
• PostgreSQL (psql --version)
- Clone the repo
git clone https://github.com/brandongrahamcobb/Vyrtuous.git
cd lucy- Create & activate a virtual environment
python3 -m venv .venv
# macOS / Linux
source .venv/bin/activate
# Windows (PowerShell)
.venv\Scripts\Activate.ps1- Inside the venv, install Poetry
pip install poetry- Build the wheel
poetry build --format wheel
pip install dist/omnipy-2.8.9-py3-none-any.whl- Create the PostgreSQL database
createdb omnipy- Run the SQL setup script
psql omnipy < script.sqlOn first run, py_vyrtuous will prompt you to enter and confirm: • Discord bot token
How many api keys do you want to make?
1
"Discord"
Enter api_key• Discord command prefix • Discord character limit (regular = 2000, nitro = 4000) • Discord owner ID • Discord test guild
Your settings are saved to:
<installation_directory>/.config/config.ymlSubsequent launches read from this file—no environment variables needed.
With your venv active, simply run:
omnipyThe bot will load or create its config, connect to Discord, and register commands.
Replace <prefix> with your configured prefix (default !).
Chemistry
• <prefix>draw <name>
• <prefix>d <compound1> <compound2>
• <prefix>logp <name>
Scripture
• <prefix>script bible <book> <chapter>:<verse>
• <prefix>script quran <sura>:<ayah>
Moderation & Tagging
• <prefix>wipe <count>
• <prefix>tag set <key> <value>
• <prefix>tag get <key>
• <prefix>tag list>
PDF Manager
• <prefix>listpdfs ...
• <prefix>uploadpdf ...
• See <prefix>help uploadpdf for full subcommand list
- Fork the repo
- Create a feature branch
- Commit your changes
- Push and open a Pull Request
Distributed under GPL-3.0-or-later. See LICENSE for details.