Skip to main content
ollim-bot gives the agent twelve Discord tools for sending messages, sending files, managing forks, reporting findings, scheduling reminders, and scheduling follow-ups — all without direct access to the Discord API. The agent also has access to a docs server — a remote server at docs.ollim.ai/mcp that lets it look up its own documentation and architecture.

Output tools

These tools send visible messages to the Discord channel.

discord_embed

Available in all contexts. Send a rich embed message with optional action buttons. Button actions follow a type:payload format: Button styles: success, danger, primary, secondary. Availability: Main session, interactive forks, and background forks. In background forks, the embed is blocked if allow-ping is false, the user is mid-conversation (unless critical is true), or the ping budget is exhausted. A source tag (bg or fork) is added to the embed footer when not in the main session.

ping_user

Background-fork-only. Send a plain text alert prefixed with [bg]. Availability: Background forks only. Not available in the main session or interactive forks. Subject to the same allow-ping, busy check, and ping budget gates as discord_embed.

send_file

Available in all contexts. Send a file from the local filesystem as a Discord DM attachment — documents, images, logs, or any file you need. Max 25 MB (Discord limit). The tool validates that the path points to an existing regular file via path.is_file(), supports tilde expansion, and enforces Discord’s 25 MB size limit. Availability: Main session, interactive forks, and background forks. In background forks, the tool is blocked if allow-ping is false, subject to the ping budget, and prefixes messages with [bg].
All three output tools register the message so that replies are correctly routed back to the fork that sent them.

Fork management tools

These tools control interactive fork lifecycle.

enter_fork

Start an interactive fork branching from the main session. Availability: Main session only. Returns an error if already inside any fork (interactive or background). The fork interrupts the current agent turn immediately.

save_context

Request to promote the current interactive fork to the main session. Instead of executing directly, this tool sends a yellow confirmation embed to Discord with three buttons: The save only happens when you click Confirm — the agent cannot assume the save succeeded. This prevents unintended saves when the agent calls the tool proactively. Takes no parameters. Availability: Interactive forks only. Returns an error in background forks or the main session.
Most forks don’t qualify — see exit strategies for when to use this vs. other options.

report_updates

Report a summary from the current fork to the main session. The summary is injected into the next main-session interaction via pending_updates.json.
Sets the exit action to REPORT. The fork is discarded after the agent finishes responding — further tool calls delay the exit.
Availability: Interactive forks and background forks. Returns an error in the main session.

exit_fork

Exit the current interactive fork. The fork is discarded and the main session resumes. No context is preserved. Takes no parameters. Availability: Interactive forks only. Returns an error in background forks or the main session.

Reminder tools

These tools manage reminders — one-shot time-based prompts. Available in the main session, interactive forks, and background forks.

add_reminder

Schedule a one-shot reminder. Provide either delay_minutes or run_at — not both. Availability: Main session, interactive forks, and background forks. Reminder tools are not gated by allow-ping — they are data operations, not output operations.

list_reminders

List all pending reminders with their IDs, scheduled times, modes, and descriptions. Takes no parameters. Availability: Main session, interactive forks, and background forks.

cancel_reminder

Cancel a pending reminder by ID. Availability: Main session, interactive forks, and background forks.

Chain tool

follow_up_chain

Schedule a follow-up reminder that continues the current chain. Used by reminders with max-chain to create self-continuing check-in sequences. The tool creates a new reminder with the chain depth incremented by one. The tool forwards all configuration from the current chain: background, model, thinking, isolated, update-main-session, allow-ping, allowed-tools, and skills. Returns an error if:
  • No active reminder context exists (the tool was called outside a reminder-triggered session)
  • The chain depth has reached max-chain — the error includes recovery guidance: “follow-up limit reached — this was the last check. If the task still needs attention, ping the user now.”
If the task is done or no follow-up is needed, don’t call follow_up_chain. The chain ends naturally.

Configuration tool

update_names

Update the bot and user display names. Writes to .env and takes effect after /restart. Returns an error if either name is empty. Availability: Main session only. Returns an error in interactive forks and background forks.

Background fork enforcement

Background forks enforce the update-main-session policy before the agent can finish: See background forks for how these modes are configured in routine and reminder YAML frontmatter.

Next steps

Forks

How interactive and background forks work.

Background forks

Configuration for background fork behavior, tool restrictions, and update modes.

Ping budget

How the refill-on-read budget gates output tools.

System prompt

How tool instructions are injected into the agent’s system prompt.