Another Discord bot of biblical proportions.
Balaam Bot mixes YouTube audio, sound effects and other fun features into a single Discord bot. It uses slash commands provided by discord.py and includes a small cat adoption mini‑game, jokes and meme generation.
- Music playback – queue YouTube URLs or search terms with 
/playand manage the queue with/list_queue,/skip, and/clear_queue. - Sound effects – schedule random effects, trigger them manually or list the available files with 
/list_sfx. - Cat commands – adopt a cat, pet it and keep track of the guild’s collection.
 - Jokes and memes – 
/joketells a joke and/memefetches a random meme image. 
- Python 3.10+
 ffmpeginstalled and available in thePATH.
- Clone the repository and install dependencies:
uv sync && uv run pre-commit install --install-hooks - Copy 
env.templateto.envand setDISCORD_BOT_TOKENto your bot’s token. - Unpack the bundled sound effects (optional):
make unpack
 - Start the bot locally:
make run
 
Alternatively build and run using Docker:
docker build -t balaambot:latest .
docker run --rm -it --env-file .env -v $(pwd)/persistent:/app/persistent balaambot:latestFollow the discord.py guide when creating your application. When inviting the bot, grant it the following scopes and permissions:
Scopes:
applications.commandsbot
Permissions:
ConnectSend MessagesSpeakUse Voice ActivityView Channels
Privileged intents:
Message Content Intent
Run the unit tests with:
make testUse make test-integration to run the slower integration tests.
For planned work see TODO.md.