JermaBot is a Discord bot inspired by Jerma985. It is a 24/7 general-purpose bot with an emphasis on adding sound functionality to your server.
- Text-To-Speech - For those who cannot talk in voice, JermaBot offers TTS. Just use the
speakcommand. - Sound File Management - Add a sound file to JermaBot using
addsoundand you can play it back in a voice channel at any time withplay. - Join Sounds - A grand entrance is a good entrance, so if a sound's name matches your username, JermaBot will play it automatically when you join a voice channel.
- Fun - A plethora of random commands are at your disposal, such as
downsmash,jermalofi, anddrake.
You can add this bot to your server or install it locally.
Inviting Jerma to your server is the easiest way to get to use him! I recommend this over installing him locally.
Note: some commands you might see in the code are guild-specfic. Send $help to see what commands you can call.
- Install FFMPEG
ffmpegneeds to be on your system path.
- Set up TTS (Required only for
speak)- If you want to use
speak, you will need voice.exe if you're on Windows, orlibespeak1if you're on Linux. - The official JermaBot instance uses Mycroft Mimic as the TTS engine.
- Follow the mimic build directions
- (You will need to run
./configure CFLAGS="-g -O2 -Wno-error=discarded-qualifiers")
- (You will need to run
- Substitute
https://sourceforge.net/projects/pcre/files/pcre2/10.23/pcre2-10.23.zipfor theftplink inmimic1/dependency.sh - Add the path to
mimicto the launch flags
- Follow the mimic build directions
- If you want to use
- Set up Japanese TTS (Required only for
speakanime)- Install
espeakfrom here, if you're on Windows, or runsudo apt install espeakon Linux. - Make sure that
espeakis on your system path. - Install
open_jtalkwithsudo apt install open-jtalk. - Download the voice "Mei" from here.
- Put the "Mei" voice files somewhere safe, you will need to add that path to JermaBot's startup parameters.
- Install
- Clone the repo by pasting this in the command line:
git clone https://github.com/benrucker/JermaBot.git
cdinto the repo with this command:
cd JermaBot
- Install uv, then install the needed Python packages by pasting this in the command line:
uv sync
- Create a file called
.envin the folderjerma/holding your bot's token:
DISCORD_TOKEN=...
The bot loads .env on startup, so no environment configuration is needed in your shell profile or systemd unit. Variables already present in the process environment take precedence over the file.
JermaBot includes a minimal agent harness because it seems fun! These instructions set that up, but are not required for the rest of the bot to function.
- Install the Claude Code CLI
- Install the GitHub CLI (
gh) - Add the agent's credentials to
jerma/.env:
# From `claude setup-token` (skippable on a dev machine already logged in to `claude`)
CLAUDE_CODE_OAUTH_TOKEN=...
# A fine-grained personal access token for the target repos, with
# read/write on Contents and Pull requests:
# https://github.com/settings/personal-access-tokens/new
GITHUB_TOKEN=...
Run the bot through the command line like this:
cd jerma
uv run main.py [ (-mycroft MYCROFT_PATH | -voice VOICE_PATH | -espeak),
(-mv MYCROFT_VOICE)]
[-jd JTALK_PATH]
[-jv JAPANESE_VOICE]
-mycroft,-voice,-espeak: You must include one of these flags on startup to specify which tts engine Jerma will use. If you do mycroft or voice, you must also include the path to the mimic.exe or voice.exe after the flag.- e.g.
-mycroft tts/mimic.exe
- e.g.
-mv PATH_TO_VOICEallows you to specify which voice you want to use with mycroft mimic. This flag is optional.
Once JermaBot has joined your server, send $help to see a list of commands. Do $help <command> to see more details about a certain command (e.g. $help speak).