Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.jobot.jeppdev.com/llms.txt

Use this file to discover all available pages before exploring further.

This page answers the questions that come up most often when setting up and running JoBot. For step-by-step configuration help, see the configuration guides. For command usage, see the /settings reference.
JoBot itself is open-source under the MIT license — you can download, run, and modify it at no cost.However, it depends on external APIs that have their own pricing:
  • Anthropic (Claude) — required for AI responses. You need a paid Anthropic API key.
  • ElevenLabs — optional, for text-to-speech. Requires a paid or free-tier ElevenLabs account with available characters.
  • Subsonic — optional, for music search. Self-hosted, so costs depend on your own infrastructure.
There are no fees payable to JoBot itself.
JoBot requires the following Discord permissions to function correctly:
PermissionWhy it’s needed
Read Messages / View ChannelsTo see messages in channels where it’s active
Send MessagesTo reply to users
Attach FilesTo send the system-prompt.txt file with /settings view
ConnectTo join voice channels for music and TTS
SpeakTo play audio in voice channels
In addition, the Message Content privileged intent must be enabled in the Discord Developer Portal. Without it, JoBot cannot read the text of messages and will not respond to mentions.
Yes. JoBot supports multiple guilds simultaneously. Each Discord server gets its own isolated settings and conversation history — changes you make in one server have no effect on another.Use /settings view in any server to see that server’s current configuration.
The default model is claude-sonnet-4-6. You can override this by setting the Ai__Model environment variable in your Docker configuration to any model identifier supported by the Anthropic API.
environment:
  Ai__Model: claude-opus-4-5
Changing the model affects response quality and cost. Refer to the Anthropic documentation for the list of available model IDs.
Yes. JoBot stores per-guild conversation history in a local SQLite database so that the AI has context across messages. You control how much history is retained using the /settings set max-history command (1–100 messages, default 40).The database file is stored at the path specified by ConnectionStrings__JoBot. No conversation data is sent to any service other than Anthropic when generating a response.
No. Subsonic is entirely optional. If SUBSONIC_BASE_URL is not set, JoBot falls back to YouTube for music search and playback.If you do have a Subsonic-compatible server (Navidrome, Airsonic, etc.), JoBot will prefer it over other sources when searching for music.
No. ElevenLabs is optional. If ElevenLabs__ApiKey and ElevenLabs__VoiceId are not configured, the TTS feature is disabled and the bot will not speak in voice channels. All other features — AI chat, music playback, settings management — continue to work normally.
Yes. Use /settings set prompt to open the system prompt editor and replace or modify the default prompt. The system prompt is sent to Claude before every conversation and can define the bot’s name, persona, tone, areas of expertise, or any other behavioral instructions.The default prompt sets JoBot up as a music-focused character named JoMusic. You can replace this entirely with whatever persona fits your server.Changes take effect on the next message JoBot receives — no restart required.
Pull the latest image and recreate the containers:
docker compose pull && docker compose up -d
JoBot runs database migrations automatically on startup, so any schema changes are applied without manual intervention. Your existing data and settings are preserved as long as your database volume is mounted correctly.
Only to the services you explicitly configure:
  • Anthropic — message history is sent to generate AI responses.
  • ElevenLabs — text is sent to generate TTS audio (only if configured).
  • Your Subsonic server — search queries are sent when searching for music (only if configured).
No data is sent to any other service. JoBot does not include analytics, telemetry, or any external tracking.