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.

JoBot has a small set of hard requirements and two optional integrations that unlock music and voice features. This page lists what you need before you start, explains what each credential is used for, and provides a full reference table of every environment variable.

Required

RequirementWhere to get itUsed for
Docker and Docker Composedocs.docker.comRunning JoBot and its Lavalink audio sidecar
Discord bot tokenDiscord Developer Portal → Bot → Reset TokenConnecting JoBot to your Discord server
Anthropic API keyconsole.anthropic.comAll Claude AI chat functionality
Lavalink passphraseChoose any string yourselfAuthenticating the JoBot container to its Lavalink sidecar
When you create your Discord bot, you must also enable the Message Content privileged intent (Bot → Privileged Gateway Intents) and grant the bot Connect and Speak permissions so it can join voice channels.

Optional integrations

Subsonic

A Subsonic-compatible personal music server lets JoBot search your private library, play random tracks, and manage share links. Without Subsonic credentials, JoBot can still play music from YouTube. You need three values from your Subsonic server:
  • Base URL — the root URL of your server, e.g. https://music.example.com
  • Username — the Subsonic account JoBot will authenticate as
  • Password — the password for that account

ElevenLabs

ElevenLabs provides the text-to-speech voice JoBot uses when speaking aloud in voice channels. Without an ElevenLabs API key, TTS is unavailable. You need two values from your ElevenLabs account:
  • API key — found in your ElevenLabs profile settings
  • Voice ID — the ID of the voice you want JoBot to use (visible in the ElevenLabs voice library URL)

Environment variable reference

All configuration is passed to JoBot through environment variables. In Docker Compose, these map to the environment: block in docker-compose.yml and are typically stored in a .env file.
VariableRequiredDefaultDescription
Discord__TokenYesDiscord bot token
Anthropic__TokenYesAnthropic API key for Claude AI
Lavalink__PassphraseYesShared passphrase between JoBot and Lavalink
ConnectionStrings__JoBotNoData Source=/app/config/jobot.dbSQLite connection string
Lavalink__BaseAddressNohttp://lavalink:2333URL of the Lavalink server (change if not using the sidecar)
Ai__ModelNoclaude-sonnet-4-6Claude model ID
Ai__MaxTokensNo4096Maximum tokens per AI response
Ai__TemperatureNo0.7Global AI temperature (0.0–1.0)
Ai__MaxToolIterationsNo50Maximum tool-call loops per AI turn
Ai__MaxHistoryMessagesNo40Maximum messages kept in global AI history
GuildDefaults__MaxHistoryMessagesNo20Default per-guild conversation history length
GuildDefaults__AiTemperatureNo0.7Default per-guild AI temperature
GuildDefaults__MusicVolumeNo0.5Default per-guild music volume (0.0–1.0)
Subsonic__BaseUrlNoBase URL of your Subsonic server
Subsonic__UsernameNoSubsonic account username
Subsonic__PasswordNoSubsonic account password
ElevenLabs__ApiKeyNoElevenLabs API key for TTS
ElevenLabs__VoiceIdNoElevenLabs voice ID to use for TTS
Per-guild settings (GuildDefaults__*) set the starting values for new guilds. Server admins can override them at any time using the /settings set slash commands without restarting the bot.