Skip to main content
Every message you send builds on what came before. You talk to the bot through Discord DMs, and it streams responses back in real time — context carries across messages and survives restarts, so you never have to repeat yourself.

Talking to the bot

Send a direct message to the bot. Only the bot owner can interact — messages from other users are silently ignored. The bot adds an eyes reaction to your message to confirm it received it, then starts streaming a response. When the response is done, the eyes reaction is removed.

Example interactions

Check in on your day:
"Hey, what's on my plate today?"
Set up a recurring workflow:
"I need to set up a routine that checks my Google Tasks every morning
and nudges me about anything overdue."
Create a reminder with follow-up:
"I've been procrastinating on the dentist appointment. Can you remind
me tomorrow at 10am, and follow up if I haven't done it by noon?"
The bot responds based on the full conversation history — it knows what you’ve been working on, what routines are configured, and what came up in previous sessions.

Interrupting

You can course-correct mid-response. Send a follow-up message and the bot drops what it was doing to address your latest input. You can also interrupt manually with the /interrupt slash command. The one exception is during auto-compaction — interrupts are deferred until compaction finishes to avoid killing the post-compaction response.

Replying to messages

Replying to a previous message gives the bot additional context:
  • Reply to a fork message — the bot opens an interactive fork that resumes from that fork’s session, whether it was a background or interactive fork. If the fork session has expired (past the 7-day TTL), the bot signals this and falls back to quoting the message content instead. If you’re already in a fork, the reply is added as context to the current fork rather than opening a new one.
  • Reply to a regular message — the bot includes the quoted text for context alongside your new message.

Images

Attach images directly to your Discord message — no special syntax needed. The bot supports JPEG, PNG, GIF, and WebP formats.

File attachments

Non-image attachments — PDFs, text files, spreadsheets, etc. — are saved to ~/.ollim-bot/downloads/ so the bot can read them with its built-in Read tool. The file paths are included in the message automatically, so you can attach and ask. Filename collisions are handled with numeric suffixes (report-2.pdf, report-3.pdf). The bot can also send files back to you using the send_file tool — any file on the local filesystem up to 25 MB.

Streaming responses

Responses stream to Discord progressively — you see text appear in real time as the bot generates it. Long responses that exceed Discord’s character limit automatically split across multiple messages. During pauses (such as when the bot is using a tool), typing indicators show it is still working.
Tool invocations appear inline as dimmed labels (e.g., Tool(args)) so you can see what the agent is doing in real time. Denied and errored tools show with strikethrough — see Permissions.
For technical details on how streaming works, see Streaming.

Context and memory

Your conversation persists across bot restarts. Every message builds on the full conversation history, so the bot remembers what you’ve been talking about — even days later. When the conversation gets very long, the bot automatically compacts older context to stay within limits. When auto-compaction happens mid-response, the bot re-sends your original message against the freshly compacted context so the agent can respond without you needing to repeat yourself. A small annotation appears in the chat showing what occurred:
auto-compacted · 5k tokens · 8s
This tells you compaction happened, how much context was compacted, and how long it took. The response continues in a new message after the annotation. See Auto-compaction annotation for the technical flow. Before auto-compaction becomes necessary, the bot shows a context usage warning — a small annotation after responses when context exceeds 60% of the window. At 80%, the warning escalates to recommend /compact. This gives you a heads-up to compact proactively. See Context usage warning for the technical flow. You can also manage this manually:
  • /compact — compact conversation context while keeping the session. Use the optional instructions parameter to tell it what to preserve (e.g., “keep the routine config details”).
  • /clear — reset the conversation entirely and start fresh. All prior context is dropped.
For details on session lifecycle events, compaction mechanics, and fork tracking, see Session management.

Next steps

Slash commands

All commands available during conversations — model switching, context management, forks, and more.

Forks

Branch conversations into isolated contexts for focused exploration.

How ollim-bot works

Deeper look at the agent loop, session model, and context flow.

Streaming & Discord

Technical details of how responses stream to Discord.