Skip to main content
The ollim-bot CLI is the single entry point for running the bot and managing routines, reminders, Google Tasks, Google Calendar, and Gmail from the terminal. With no subcommand, it starts the Discord bot. With a subcommand, it runs the corresponding operation and exits.
ollim-bot [command] [subcommand] [options]

Command overview

CommandDescription
ollim-botStart the Discord bot
ollim-bot routineManage recurring routines (cron-based)
ollim-bot reminderManage one-shot reminders
ollim-bot tasksManage Google Tasks
ollim-bot calManage Google Calendar events
ollim-bot gmailRead and search Gmail
ollim-bot helpShow help message

routine

Manage recurring routines stored as markdown files in ~/.ollim-bot/routines/.

routine add

Create a new routine with a cron schedule.
FlagTypeRequiredDefaultDescription
--message, -mstringYesAgent prompt to execute on each trigger
--cronstringYes5-field cron expression (minute hour day month weekday)
--description, -dstringNo""Short summary shown in routine list
--backgroundflagNofalseRun in a background fork instead of the main session
The --cron value must have exactly 5 space-separated fields. The command exits with code 1 if the expression is invalid.
When --background is set, additional options become available. See Background mode options.

routine list

List all routines. No arguments.
ollim-bot routine list
Output format:
  abc123  cron '0 9 * * 1-5'              Morning briefing
  def456  [bg] cron '30 8 * * *'          Check inbox
Background routines display tags like [bg], [isolated], the model name, and thinking status.

routine cancel

Remove a routine by ID.
ArgumentTypeRequiredDescription
idpositionalYesRoutine ID (shown in routine list)
ollim-bot routine cancel abc123
Exits with code 1 if the routine is not found.

reminder

Manage one-shot reminders stored as markdown files in ~/.ollim-bot/reminders/.

reminder add

Schedule a one-shot reminder that fires after a delay.
FlagTypeRequiredDefaultDescription
--message, -mstringYesReminder message
--delayintYesFire in N minutes from now
--description, -dstringNo""Short summary shown in reminder list
--backgroundflagNofalseRun in a background fork
--max-chainintNo0Maximum follow-up chain depth
When --background is set, additional options become available. See Background mode options.

reminder list

List all pending reminders. No arguments.
ollim-bot reminder list
Output format:
  xyz789  at 2026-02-25 14:30                             Take a break
  uvw456  [bg,isolated] at 2026-02-25 15:00 (chain 1/3)  Check email

reminder cancel

Remove a reminder by ID.
ArgumentTypeRequiredDescription
idpositionalYesReminder ID (shown in reminder list)
ollim-bot reminder cancel xyz789
Exits with code 1 if the reminder is not found.

tasks

Manage Google Tasks. Requires Google OAuth setup.

tasks list

List tasks from your default task list.
FlagTypeRequiredDefaultDescription
--allflagNofalseInclude completed tasks
ollim-bot tasks list
ollim-bot tasks list --all

tasks add

Create a new task.
Argument / FlagTypeRequiredDefaultDescription
titlepositionalYesTask title
--duestringNoDue date in YYYY-MM-DD format
--notesstringNoTask notes
ollim-bot tasks add "Fix login bug" --due 2026-02-15
ollim-bot tasks add "Buy groceries" --notes "Milk, eggs, bread"

tasks done

Mark a task as completed.
ArgumentTypeRequiredDescription
idpositionalYesTask ID

tasks update

Update an existing task. At least one of --title, --due, or --notes is required.
Argument / FlagTypeRequiredDescription
idpositionalYesTask ID
--titlestringNoNew title
--duestringNoNew due date in YYYY-MM-DD format
--notesstringNoNew notes

tasks delete

Delete a task.
ArgumentTypeRequiredDescription
idpositionalYesTask ID

cal

Manage Google Calendar events. Requires Google OAuth setup. All times use the configured timezone (OLLIM_TIMEZONE, defaults to system local).

cal today

Show today’s calendar events. No arguments.
ollim-bot cal today

cal upcoming

Show upcoming events.
FlagTypeRequiredDefaultDescription
--daysintNo7Number of days to look ahead
ollim-bot cal upcoming
ollim-bot cal upcoming --days 14

cal show

Show details for a specific event.
ArgumentTypeRequiredDescription
idpositionalYesEvent ID

cal add

Create a calendar event.
Argument / FlagTypeRequiredDefaultDescription
summarypositionalYesEvent title
--startstringYesStart time in YYYY-MM-DDTHH:MM format
--endstringYesEnd time in YYYY-MM-DDTHH:MM format
--descriptionstringNoEvent description
ollim-bot cal add "Team standup" --start 2026-02-25T09:00 --end 2026-02-25T09:30

cal update

Update an existing event. At least one of --summary, --start, --end, or --description is required.
Argument / FlagTypeRequiredDescription
idpositionalYesEvent ID
--summarystringNoNew title
--startstringNoNew start time in YYYY-MM-DDTHH:MM format
--endstringNoNew end time in YYYY-MM-DDTHH:MM format
--descriptionstringNoNew description

cal delete

Delete a calendar event.
ArgumentTypeRequiredDescription
idpositionalYesEvent ID

gmail

Read and search Gmail messages. Requires Google OAuth setup. Read-only access — no sending or modifying emails.

gmail unread

List unread emails.
FlagTypeRequiredDefaultDescription
--maxintNo20Maximum number of results
ollim-bot gmail unread
ollim-bot gmail unread --max 5

gmail read

Read a specific email by ID. Message bodies longer than 3000 characters are truncated.
ArgumentTypeRequiredDescription
idpositionalYesMessage ID
Search emails using Gmail query syntax.
Argument / FlagTypeRequiredDefaultDescription
querypositionalYesGmail search query
--maxintNo20Maximum number of results
ollim-bot gmail search "from:boss subject:urgent"
ollim-bot gmail search "after:2026/02/01 has:attachment"

gmail labels

List all Gmail labels. No arguments.
ollim-bot gmail labels

Background mode options

Both routine add and reminder add accept these flags when --background is set. These options control how the background fork executes.
FlagTypeDefaultDescription
--modelstringModel override for this fork
--no-thinkingflagfalseDisable extended thinking
--isolatedflagfalseFresh context, no session history
--update-main-sessionchoiceon_pingWhen to report to main session
--no-pingflagfalseDisable ping_user and discord_embed
The reminder add command also supports --allowed-tools and --disallowed-tools for restricting which SDK tools the background fork can use. Each accepts one or more tool name patterns.

--update-main-session modes

ModeBehavior
alwaysFork must report results to main session
on_pingReport only if the fork pings the user (default)
freelyReporting is optional
blockedreport_updates returns an error — no reporting
The --no-ping flag completely disables ping and embed tools. Even the critical bypass mechanism cannot override it.

Examples

# Morning briefing every weekday at 9 AM
ollim-bot routine add --cron "0 9 * * 1-5" -m "Morning briefing"

# Background email check every hour, isolated context
ollim-bot routine add --cron "0 * * * *" -m "Check inbox for urgent emails" \
  --background --isolated --model haiku -d "Hourly inbox check"

# List all routines
ollim-bot routine list

# Cancel a routine
ollim-bot routine cancel abc123

Next steps