Key features
Conversations
Persistent DM conversations with Claude. Context carries across sessions with automatic compaction.
Routines & reminders
Recurring cron-based routines and one-shot chainable reminders that run as background forks.
Forks
Branch conversations into interactive or background forks. Save context back, report updates, or discard.
Google integration
Google Tasks, Calendar, and Gmail (read-only) via shared OAuth. Manage tasks and events from Discord.
Webhooks
HTTP endpoints for external triggers. JSON Schema validation, Haiku screening, and bearer token auth.
Slash commands
Discord commands for model switching, context management, forking, permissions, and ping budget control.
Find what you need
| I want to… | Go to |
|---|---|
| Get the bot running quickly | Quickstart |
| Understand the full setup (Discord, Google, webhooks) | Setup guide |
| Create a recurring daily routine | Routines |
| Set a one-time reminder | Reminders |
| Branch a conversation without losing context | Forks |
| Connect Google Tasks, Calendar, or Gmail | Google integration |
| Trigger the bot from an external service | Webhooks |
| Add a new integration or MCP tool | Adding integrations |
| Customize the bot’s personality | System prompt |
| Run my own instance | Self-hosting guide |
| Look up environment variables | Configuration reference |
| Understand the architecture | Architecture overview |
How it works
ollim-bot runs as a Discord bot that routes messages through the Claude Agent SDK. Each message enters a persistent session — the agent remembers prior conversations and picks up where it left off. The bot operates on three surfaces:- DM conversations — direct messages flow through the main agent session. Responses stream back to Discord in real time with throttled edits and 2000-character overflow handling.
- Scheduled tasks — routines (recurring crons) and reminders
(one-shot, chainable) fire on schedule. Each runs as a background fork
with its own disposable session, using
ping_userordiscord_embedto reach out. - Webhooks — external HTTP triggers dispatch through the same background fork path as scheduled tasks.
report_updates, which queues a summary that gets
prepended to the next main session interaction. A
ping budget controls how often background forks
can notify you — refill-on-read with configurable capacity and refill rate.
The agent has MCP tools for sending embeds, pinging the user, managing
forks, and persisting context. Discord buttons on embeds route back through
the agent for actions like completing Google Tasks or exiting forks.
ollim-bot uses Claude Code OAuth for authentication — no Anthropic API key is needed. A Claude subscription (Pro or Max) is recommended for access to the latest models.
Core design principles
- Context quality is the product — every design decision asks whether it improves or degrades contextual understanding. Autonomy, features, and integrations are secondary.
- Proactive over reactive — the bot reaches out, not the other way around. Features that wait to be invoked solve nothing for ADHD.
- Meet the user where they are — integrate with existing tools (Discord, Google), don’t add new surfaces.
- Files as shared language — markdown for anything both human and agent touch (routines, reminders, config). JSONL for code-only data. No databases.
- Single-user by design — built to serve one human deeply. Others fork the repo.
Next steps
Quickstart
Get ollim-bot running in under 5 minutes.
Setup guide
Full setup with Discord bot creation, Google OAuth, and environment configuration.
How it works
Understand the agent loop, session persistence, fork model, and context flow.
Design philosophy
The rationale behind framework choices, patterns, and architecture.
