Jakey Bot is a multi-model AI and music bot with personality, designed to give you access to popular AI chatbots from Google, OpenAI, Anthropic, Mistral right within Discord!
This bot primarily uses Gemini through the Gemini API as well as other models from OpenAI, Anthropic, Mistral, or use OpenRouter for unified access to some models using LiteLLM! Combined with best Python and Discord APIs to create a helpful AI assistants
Jakey AI is available as Discord Bot. Other platforms is coming soon!
- Access to the top AI flagship models right within Discord!
- Summarize text channels and messages
- Multimodality support and summarize file attachments!*
- Browse, run python code, edit images right within chat**
- Create images using and Stable Diffusion 3.5!
Other non-AI extras include:
- Listen to music using wavelink! Play with your tunes from Spotify, SoundCloud, YouTube, and more! Right within Discord!
- Mimic other users
* - Gemini can take images, videos, audio, certain text files, and full PDFs as input while others only accept image inputs
** - Tools are only supported through Gemini models
- Read message history (see #faq for privacy implications)
- Embed messages (required for rendering text more than 2000 and for most commands)
- Send messages (obviously)
- Attach files
- Create webhooks
- Create slash commands
- Voice related features such as connect, disconnect
The best way to get started is through Docker method... You can directly pull the image from my Docker 🐳 Hub repository and simply run the bot below:
~ $ docker pull zavocc/jakey:sugilite
~ $ docker run -it --env-file dev.env --rm zavocc/jakey:sugilite
NOTE: You need to provide the dev.env file as explained below
Manual installation
But if you prefer manual method without using containers, you need to install Python version atleast 3.10+ with pip and venv is highly preferred and run the commandsYou must create a virtual environment before proceeding which you can do by running:
python -m venv .venv
# Activate
. .venv/bin/activate
Install dependencies as needed
pip3 install -r requirements.txt
# This is optional
pip3 install wavelink gradio_client
pip3 uninstall py-cord discord.py
pip3 install py-cord
After you install the required dependencies, configure your bot first by heading over to dev.env.template and save it as dev.env
in the gitroot directory
You will need to provide Discord bot token from the developers portal.
Please see CONFIG.md for more information about configuration.
You can enable VC-related commands such as /voice play
(which plays videos from YouTube and other supported sources) by providing appropriate Lavalink sources
Please see CONFIG.md#voice to configure wavelink
You can use the list of 3rd party servers from and use servers from https://lavalink.darrennathanael.com/NoSSL/lavalink-without-ssl/ and configure the dev.env
file pointing the third party Lavalink servers, no installation required...
Alternatively, you can also host your own... Refer to lavalink documentation to configure your own lavalink setup... make sure to install OpenJDK before you proceed.
After everything is configured, you can run main.py
Get started by asking Jakey /ask prompt:Who are you and how can I get started
or @Jakey what can you do?
Once you added or installed Jakey to your server or yourself, you can mention @Jakey along with your prompt or directly message Jakey in DMs. If you use Gemini model, you can prompt files such as images, audio, video, and visual PDFs too!
When you enter a prompt to Jakey... you can use chat variables which are substrings to detect which action to perform before sending the request to LLM
prompt /chat:ephemeral
- Do not append the last message turn to chat history while having its previous memoryprompt /model:model-name
- Set model for the response on demand. (See/model list
to choose available model names)
By default, it uses Gemini 1.5 Flash (002) due to versatility with long context and multimodality, matching the performance of Gemini 1.5 Pro (0514), but other models can be used as well.
You can sticky set the model using /model set
command, or list models using /model list
command.
If you decide to use OpenRouter model, you will need to configure /openrouter
command first by setting the model names through https://openrouter.ai/models
When you set a model, you are switching chat threads to that model associated for that provider... So switching to GPT-4o model would have its own chat thread and files, but you can always switch back to previous provider with it's memory. Note that switching models for OpenRouter would result in chat thread being cleared to ensure consistency
If you decide to use other models please see Models comparison and the LLM arena by livebench to understand your models use cases
Jakey provides slash commands such as:
/ask
- Ask Jakey quick questions./sweep
- Clear the conversation/feature
- Extend Jakey skills by activating chat tools! (Clears conversation when feature are set, only supports Gemini models)/model set
and/model list
to list available models./openrouter
- Access additional models from OpenRouter (/model set:openrouter
must be set)/summarize
- Summarize the current text channel or thread and gather insights into a single summary thanks to Gemini 1.5 Flash's long context it can understand conversations even from the past decade!/mimic
- Mimics other users using webhook/voice
- Basic streaming audio functionality from YouTube, soundcloud and more!
Jakey also has message actions or apps which is used to take action on a selected message. Such as explain, rephrase, or suggest messages using Gemini 1.5 Flash.
Please see FAQ for more information.