max_chain set can spawn follow-ups via
the follow_up_chain MCP tool, letting the agent continue a task across
multiple steps.
Overview
A reminder tells ollim-bot to run a prompt at a specific future time. When created, you specify a delay in minutes and the scheduler computes the absolute fire time. Like routines, reminders can run in the foreground (sending you a DM) or in the background (running silently in a fork). Reminders are stored as markdown files in~/.ollim-bot/reminders/. The
scheduler polls this directory every 10 seconds. After a reminder fires,
it is removed automatically (unless it chains into a follow-up).
The agent has direct file access to create and manage reminders — you can
ask it in conversation, or use the CLI.
File format
Each reminder is a.md file in ~/.ollim-bot/reminders/. The message
field is the markdown body after the closing ---; all other fields go
in the YAML frontmatter. Only non-default fields are written to the
frontmatter.
reminders/check-on-deployment.md
The
message field does not appear in the frontmatter — it is the
markdown body below the closing ---.Frontmatter fields
| Field | Type | Default | Description |
|---|---|---|---|
id | str | — | Auto-generated 8-char hex ID |
run_at | str | — | ISO datetime (computed from delay) |
description | str | "" | Short summary for reminder list |
background | bool | false | Run in a background fork |
chain_depth | int | 0 | Current position in a chain |
max_chain | int | 0 | Max follow-up depth (0 = plain one-shot) |
chain_parent | str | null | ID of the chain root |
model | str | null | Model override (bg only) |
thinking | bool | true | Extended thinking (bg only) |
isolated | bool | false | Fresh context, not forked (bg only) |
update_main_session | str | "on_ping" | Sync mode: always / on_ping / freely / blocked |
allow_ping | bool | true | Allow pings and embeds (bg only) |
allowed_tools | list[str] | null | MCP tool whitelist (bg only) |
disallowed_tools | list[str] | null | MCP tool blacklist (bg only) |
File naming
Filenames are slugified from the message text (lowercase, hyphens, max 50 characters). Theid field in the YAML frontmatter is authoritative
— filenames are for human readability only. Collisions append -2,
-3, etc.
Managing reminders
- CLI
- Agent
The Additional flags for background reminders:
For chainable reminders, add List pending reminders:Output:Cancel a reminder:
ollim-bot reminder subcommand manages reminders from the
terminal.Add a reminder:| Flag | Description |
|---|---|
--model <model> | Model override |
--no-thinking | Disable extended thinking |
--isolated | Run with fresh context |
--update-main-session <mode> | always, on_ping, freely, or blocked |
--no-ping | Disable ping_user and discord_embed |
--allowed-tools <tool> ... | MCP tool whitelist |
--disallowed-tools <tool> ... | MCP tool blacklist |
--max-chain:Follow-up chains
A plain reminder (max_chain: 0) fires once and is removed. A
chainable reminder (max_chain: N) can spawn follow-ups: when the
agent runs the reminder, it can call the follow_up_chain MCP tool to
schedule a continuation at chain_depth + 1.
Chains end when:
- The agent decides not to call
follow_up_chain(task complete, nothing to report) chain_depthreachesmax_chain(no more follow-ups allowed)
reminders/check-email-response.md
chain_parent and
increments chain_depth. Chain reminders also inherit tool restrictions
from the parent via ChainContext.
Background vs foreground
By default, reminders run in the foreground — the agent sends you a DM when the reminder fires, running the prompt in the main session context. Setbackground: true to run the reminder silently in a background
fork. Text output is discarded — the agent must use ping_user or
discord_embed to reach you.
- Foreground
- Background
The reminder fires and the agent sends you a DM with its response,
just like a normal conversation.
reminders/standup-prep.md
Examples
Simple one-shot reminder (foreground)
reminders/take-a-break.md
Background monitoring with chain
reminders/wait-for-ci.md
Quiet background check (no pings)
reminders/inbox-scan.md
Next steps
Routines
Recurring cron-based schedules for daily and weekly prompts.
Background forks
Deep dive into background fork configuration and behavior.
Ping budget
How notification rate limiting works for background tasks.
Real-world examples
One-shot, future-dated, and chain reminder examples from
an actual data directory.
