> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ollim.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Install ollim-bot, create a Discord bot, and start chatting — 7 steps.

Get ollim-bot running and send your first message in 7 steps.

## Before you start

You need:

* **A computer** running macOS, Windows, or Linux
* **A Discord account** — [create a Discord account](https://discord.com/register) if you don't have one
* **A Claude subscription** — Pro (20 USD/month) or Max (100 USD/month) at [Claude](https://claude.ai). Pro works fine to start. **Not required if self-hosting** — see [self-hosted models](/self-hosting/model-providers#self-hosted-models) to run with a local model instead

<Note>
  ollim-bot is a single-user bot designed to run as a personal assistant
  in Discord DMs. No server is required.
</Note>

## Open a terminal

You'll paste commands into a terminal throughout this guide. Open one now:

<Tabs>
  <Tab title="macOS">
    Press **Cmd + Space**, type **Terminal**, and press **Enter**.
  </Tab>

  <Tab title="Windows">
    Press the **Windows key**, type **PowerShell**, and click **Windows PowerShell**.
  </Tab>

  <Tab title="Linux">
    Press **Ctrl + Alt + T**.
  </Tab>
</Tabs>

A window with a blinking cursor appears — this is where you'll paste
commands from this guide. To run a command, paste it in and press
**Enter**.

<Steps>
  <Step titleSize="h3" title="Install Git and uv">
    ollim-bot needs two tools: **Git** (downloads code) and **uv**
    (manages Python, the language the bot is written in).

    #### Install Git

    <Tabs>
      <Tab title="macOS">
        Git is pre-installed on macOS. Verify by pasting this and pressing **Enter**:

        ```bash theme={null}
        git --version
        ```

        You should see something like `git version 2.39.0`. If you see
        "command not found", download Git from
        [git-scm.com](https://git-scm.com/), run the installer, then
        run `git --version` again to confirm.
      </Tab>

      <Tab title="Windows">
        Download the installer from [git-scm.com](https://git-scm.com/)
        and run it. Use all the default options.

        After it finishes, **close PowerShell and open it again** so it
        can find Git. Then verify:

        ```powershell theme={null}
        git --version
        ```

        You should see something like `git version 2.44.0.windows.1`.
      </Tab>

      <Tab title="Linux">
        ```bash theme={null}
        sudo apt install git
        ```

        On Fedora, use `sudo dnf install git` instead.
      </Tab>
    </Tabs>

    #### Install uv

    <Tabs>
      <Tab title="Linux / macOS">
        ```bash theme={null}
        curl -LsSf https://astral.sh/uv/install.sh | sh
        ```
      </Tab>

      <Tab title="Windows">
        ```powershell theme={null}
        powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
        ```
      </Tab>
    </Tabs>

    <Tip>
      Prefer to inspect the script first? On Linux or macOS, download it,
      review it, then run it:

      ```bash theme={null}
      curl -LsSf https://astral.sh/uv/install.sh -o /tmp/uv-install.sh
      less /tmp/uv-install.sh
      sh /tmp/uv-install.sh
      ```

      You can also install uv via `pip install uv` or your system package manager.
    </Tip>

    After uv installs, **close your terminal** so your PATH updates.
    The next step is in the browser, so you won't need it yet.
  </Step>

  <Step titleSize="h3" title="Create a Discord bot">
    Open the [Discord Developer Portal](https://discord.com/developers/applications)
    in your browser and click **New Application**. Give it any name
    (e.g. "ollim-bot").

    <Frame>
      <img src="https://mintcdn.com/ollim/g8xwmprSSMUHL4lj/images/discord-new-app.png?fit=max&auto=format&n=g8xwmprSSMUHL4lj&q=85&s=4855a70e3994420275555261535ebbe3" alt="Discord Developer Portal with a red arrow pointing to the New Application button in the top right" width="897" height="114" data-path="images/discord-new-app.png" />
    </Frame>

    In the left sidebar, click **Bot**. Then click **Reset Token** (or
    **Add Bot** if you see that instead) and copy the token that
    appears.

    <Frame>
      <img src="https://mintcdn.com/ollim/hJUC7N1fuMkUMglL/images/discord-reset-token.png?fit=max&auto=format&n=hJUC7N1fuMkUMglL&q=85&s=c47282842b13cb84439b2e12b49eb15f" alt="Screenshot of the Bot page showing the Reset Token button" width="898" height="120" data-path="images/discord-reset-token.png" />
    </Frame>

    <Warning>The bot token is shown only once. If you lose it, click **Reset Token** again to get a new one.</Warning>

    Scroll down to **Privileged Gateway Intents** and
    turn on **Message Content Intent** (this lets the bot read your
    messages).

    <Frame>
      <img src="https://mintcdn.com/ollim/g8xwmprSSMUHL4lj/images/discord-message-intent.png?fit=max&auto=format&n=g8xwmprSSMUHL4lj&q=85&s=b418de5e9e9a05244c8b302df64ae6d1" alt="Screenshot of the Privileged Gateway Intents section with the Message Content Intent toggle switched on" width="899" height="512" data-path="images/discord-message-intent.png" />
    </Frame>
  </Step>

  <Step titleSize="h3" title="Install to your Discord account">
    Click **Installation** in the left sidebar.

    Under **Installation Contexts**, check **User Install** and uncheck
    **Guild Install**. Verify the install link dropdown is set to
    **Discord Provided Link** (the default for new apps). Under
    **Default Install Settings**, verify that `applications.commands`
    is listed in the scopes — Discord adds it by default. If either
    is missing, set them manually. Then click **Save Changes** at the
    bottom.

    <Frame>
      <img src="https://mintcdn.com/ollim/g8xwmprSSMUHL4lj/images/discord-installation.png?fit=max&auto=format&n=g8xwmprSSMUHL4lj&q=85&s=42179487165c28b655423a5f437510c4" alt="Screenshot of the Installation page with User Install checked, Discord Provided Link selected, and applications.commands scope added" width="1151" height="855" data-path="images/discord-installation.png" />
    </Frame>

    Copy the **Install Link** shown on this page and open it in your
    browser. Click **Authorize** to install the bot to your Discord
    account.

    Finally, go back to **Bot** in the left sidebar and uncheck **Public
    Bot**.

    <Frame>
      <img src="https://mintcdn.com/ollim/hJUC7N1fuMkUMglL/images/discord-public-bot.png?fit=max&auto=format&n=hJUC7N1fuMkUMglL&q=85&s=00964df5daac4d2eca5c396f7576ddaa" alt="Screenshot of the Public Bot toggle under Authorization Flow, switched off" width="898" height="146" data-path="images/discord-public-bot.png" />
    </Frame>

    <Warning>
      You must set the install link and install the app *before* unchecking
      **Public Bot**. Discord does not allow private apps to have an
      install link, so doing these out of order causes an error.
    </Warning>
  </Step>

  <Step titleSize="h3" title="Download and install ollim-bot">
    Verify uv is working:

    ```bash theme={null}
    uv --version
    ```

    You should see a version number like `uv 0.6.0`. If you see
    "command not found", close the terminal, open a new one, and run
    `uv --version` again. If it still fails, see
    [troubleshooting](/development/troubleshooting).

    Download the bot's code:

    ```bash theme={null}
    git clone https://github.com/Ollim-AI/ollim-bot.git
    ```

    Move into the downloaded folder:

    ```bash theme={null}
    cd ollim-bot
    ```

    Install the bot:

    ```bash theme={null}
    uv tool install --editable .
    ```

    This also installs
    [`claude-history`](https://github.com/Ollim-AI/claude-history), a
    tool that lets the bot search past conversations so it can remember
    things.

    Verify the bot installed:

    ```bash theme={null}
    ollim-bot --help
    ```

    You should see a list of commands starting with
    `ollim-bot -- ADHD-friendly Discord assistant`. If you see "command
    not found", see [troubleshooting](/development/troubleshooting).
  </Step>

  <Step titleSize="h3" title="Configure the bot">
    Create the configuration file:

    <Tabs>
      <Tab title="Linux / macOS">
        ```bash theme={null}
        cp .env.example .env
        ```
      </Tab>

      <Tab title="Windows">
        ```powershell theme={null}
        copy .env.example .env
        ```
      </Tab>
    </Tabs>

    Open the file in a text editor:

    <Tabs>
      <Tab title="macOS">
        ```bash theme={null}
        open -e .env
        ```

        This opens the file in TextEdit.
      </Tab>

      <Tab title="Windows">
        ```powershell theme={null}
        notepad .env
        ```
      </Tab>

      <Tab title="Linux">
        ```bash theme={null}
        nano .env
        ```

        Use arrow keys to move around. When done editing, press
        **Ctrl + O** then **Enter** to save, then **Ctrl + X** to exit.
      </Tab>
    </Tabs>

    Find these three lines and fill in the values:

    ```bash title=".env" theme={null}
    DISCORD_TOKEN=paste-your-bot-token-here
    OLLIM_USER_NAME=YourFirstName
    OLLIM_BOT_NAME=Ollim
    ```

    * Replace `paste-your-bot-token-here` with the token you copied in step 2
    * Replace `YourFirstName` with your name (the bot will call you this)
    * Replace `Ollim` with whatever you want to call the bot

    Save the file and close the editor. On Linux or macOS, restrict the
    file permissions so only you can read it:

    ```bash theme={null}
    chmod 600 .env
    ```

    <Tip>
      These three env vars are all you need for a Claude subscription. On first launch, the bot's welcome message includes a **"Get started — 3 questions"** button that walks you through personality and user context interactively. You can also run `/setup` anytime.
    </Tip>

    <Note>
      Using a [local model](/self-hosting/model-providers#self-hosted-models) instead of Claude? Add `ANTHROPIC_BASE_URL`, `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_MODEL`, and `ANTHROPIC_SMALL_FAST_MODEL` to your `.env` as well — see the [self-hosted models](/self-hosting/model-providers#self-hosted-models) section for values. You can skip the sign-in step in step 6.
    </Note>
  </Step>

  <Step titleSize="h3" title="Start the bot">
    In the same terminal, start the bot:

    ```bash theme={null}
    ollim-bot
    ```

    <Warning>
      Keep this terminal window open. The bot runs as long as the terminal
      is open — closing the terminal stops the bot.
    </Warning>

    If you're using a Claude subscription, the bot sends you a Discord
    DM with a sign-in link on first launch. Open the link and log in
    with your Anthropic account.

    <Note>
      If you configured a [local model provider](/self-hosting/model-providers#self-hosted-models)
      or set `ANTHROPIC_AUTH_TOKEN` in your `.env`, no sign-in link
      appears — the bot connects directly to your inference server.
    </Note>

    Once ready, the bot sends you a startup DM in Discord.

    <Tip>
      Bot not starting? See [common startup issues](/development/troubleshooting#startup-failures).
    </Tip>
  </Step>

  <Step titleSize="h3" title="Run first-time setup">
    The bot's startup DM includes a **"Get started — 3 questions"**
    button. Click it to walk through guided setup — the bot asks your
    name, its personality, and context about your work and schedule.

    At the end, setup offers to create a **morning check-in routine**
    that messages you every weekday at 9 AM with your schedule and
    priorities. If you accept, the bot writes the routine file
    immediately — no extra steps needed.

    Setup also checks your Google integration status and points you to
    the next step if it's not connected yet. See
    [Google integration](/getting-started/google-integration) for the
    full walkthrough.

    <Tip>
      You can skip the button and just start talking — setup is optional.
      You can always run it later with `/setup`.
    </Tip>

    Once setup is done (or skipped), try a message to see the bot in
    action:

    > Remind me to take out the trash tomorrow at 10am, and follow up if I haven't done it by noon

    The bot creates a reminder and a follow-up chain — at noon it
    checks whether you've confirmed, and only pings you if the task is
    still outstanding.

    <Note>
      After [setting up Google integration](/getting-started/google-integration), try: "What's on my calendar today?"
    </Note>
  </Step>
</Steps>

## CLI commands

Beyond running the bot, `ollim-bot` provides commands for managing
routines, reminders, and Google services. Run these in your terminal:

```bash theme={null}
ollim-bot routine list     # Show all routines
ollim-bot reminder add --delay 30 -m "take a break"
ollim-bot tasks list       # List Google Tasks
ollim-bot cal today        # Show today's calendar events
ollim-bot help             # Show all available commands
```

## Troubleshooting

<AccordionGroup>
  <Accordion title="&#x22;Private application cannot have a default authorization link&#x22;">
    This error appears on the **Installation** page when **Public Bot** is
    already unchecked. Discord does not allow private applications to have a
    default authorization link.

    **Fix:** go to **Bot** in the sidebar, check **Public Bot**, then return to
    **Installation** and configure the install link. After you've installed the
    app to your account, go back and uncheck **Public Bot**.
  </Accordion>

  <Accordion title="Bot not responding to DMs">
    Verify that **Message Content Intent** is enabled under **Bot** >
    **Privileged Gateway Intents**. Without it, the bot connects but cannot
    read your messages.
  </Accordion>

  <Accordion title="Slash commands not appearing">
    Slash commands sync on startup. If they don't appear:

    1. Confirm you installed via **User Install** (not Guild Install) — slash
       commands in DMs require user installation
    2. Wait a few minutes — Discord caches command lists and may take time to
       update
    3. Restart Discord (Ctrl+R on desktop) to force a cache refresh
  </Accordion>
</AccordionGroup>

For runtime issues (startup failures, session problems, scheduling), see
[troubleshooting](/development/troubleshooting).

## Next steps

<Columns cols={2}>
  <Card title="Set up Google integration" icon="puzzle-piece" href="/getting-started/google-integration">
    Connect Google Tasks, Calendar, and Gmail to the bot.
  </Card>

  <Card title="How ollim-bot works" icon="gears" href="/architecture/how-it-works">
    Understand the agent loop, sessions, and fork model.
  </Card>

  <Card title="Conversations" icon="comments" href="/core-usage/conversations">
    Learn how DM conversations, context, and streaming work.
  </Card>

  <Card title="Set up your first routine" icon="clock" href="/scheduling/routines">
    Morning briefings, task reviews, and proactive check-ins — the feature that makes the difference.
  </Card>
</Columns>
