> ## 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 frequently asked questions

> Answers to common questions about JoBot: self-hosting, supported music sources, AI model, data privacy, Subsonic setup, and more.

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](/commands/settings).

<AccordionGroup>
  <Accordion title="Is JoBot free to use?">
    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.
  </Accordion>

  <Accordion title="What Discord permissions does JoBot need?">
    JoBot requires the following Discord permissions to function correctly:

    | Permission                    | Why it's needed                                            |
    | ----------------------------- | ---------------------------------------------------------- |
    | Read Messages / View Channels | To see messages in channels where it's active              |
    | Send Messages                 | To reply to users                                          |
    | Attach Files                  | To send the `system-prompt.txt` file with `/settings view` |
    | Connect                       | To join voice channels for music and TTS                   |
    | Speak                         | To 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.
  </Accordion>

  <Accordion title="Can I use JoBot in multiple Discord servers?">
    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.
  </Accordion>

  <Accordion title="What Claude model does JoBot use?">
    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.

    ```yaml theme={null}
    environment:
      Ai__Model: claude-opus-4-5
    ```

    Changing the model affects response quality and cost. Refer to the [Anthropic documentation](https://docs.anthropic.com/en/docs/about-claude/models/overview) for the list of available model IDs.
  </Accordion>

  <Accordion title="Does JoBot store conversation history?">
    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.
  </Accordion>

  <Accordion title="Do I need a Subsonic server?">
    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.
  </Accordion>

  <Accordion title="Do I need ElevenLabs?">
    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.
  </Accordion>

  <Accordion title="Can I change the bot's personality?">
    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.
  </Accordion>

  <Accordion title="How do I update JoBot?">
    Pull the latest image and recreate the containers:

    ```bash theme={null}
    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.
  </Accordion>

  <Accordion title="Is my data sent to third parties?">
    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.
  </Accordion>
</AccordionGroup>
