Octo

All About Octo…

A personal AI assistant built on OpenClaw — connecting language models to real-world services through plugins, agents, and channels.


This is the documentation for Octo 🐙 — Jeff Steinbok’s personal instance of OpenClaw, a modular AI assistant framework.

Selected public plugins, services, and shared Python libraries documented here are also mirrored in openclaw-hub, which acts as the public source repo for those surfaces.

Much of this setup is inspired by Omar Shahine’s work on 🦞 Lobster — his docs inspired me to publish my own.


💬 Channels

I talk to Octo via Telegram and Discord. I’d prefer to use iMessage or WhatsApp, but until I’ve decided for sure that this is useful, I’m not going out and buying a Mac Mini or getting a new phone number.

🔒 Security

Security is the most important aspect of this experiment — even above just having fun.
  • Unprivileged account — OpenClaw runs under its own dedicated user on Ubuntu with no sudo permissions. It can configure itself new plugins, but it cannot install anything on its own.
  • Owner-only access — Octo only responds to me. Not even family members have access.
  • No secrets in Git — All tokens and credentials are kept in hidden files that are never synced to version control.
  • No exec on the main agent — Octo’s primary agent does not have exec permissions, meaning it cannot run arbitrary shell commands. If something truly dangerous needs to happen, I have to explicitly ask the root agent, which is the only one with elevated privileges. This also means we rely more heavily on purpose-built plugins rather than skills — since skills can’t execute code without exec, every real-world interaction needs a proper plugin behind it.

📬 Mail & Calendar

  • Full mail read access — Octo reads Jeff’s personal Outlook inbox directly via the Microsoft Graph API (OAuth2). Mail is never injected into the AI as raw content — Octo queries it on demand using structured API calls.
  • Calendar access — Octo fetches Jeff’s personal and family calendars via Graph API, Nicole’s calendar via ICS feed, and the work calendar via Exchange/Graph API. Calendars are synced to markdown files in memory every hour (7 AM–5 PM) and at midnight.
  • Dedicated mailbox — Octo has its own mailbox on Fastmail where it sends mail on Jeff’s behalf. Incoming mail to that address is monitored via a Python SSE service.

💰 Cost

  • Self-hosted — Runs on an old Lenovo X1 Yoga Gen 3 with 16 GB of RAM running Ubuntu Desktop.
  • Token-conscious — As much work as possible is pushed to Python plugins to reduce token usage. Primary model is GitHub Copilot Sonnet (covered by the Copilot subscription), with Anthropic and Gemini as fallbacks. Ongoing effort goes into keeping per-run costs low:
    • Recurring tasks that don’t need reasoning are rewritten as plain shell scripts executed via exec, eliminating model tokens entirely (e.g., calendar fetching dropped from ~75 s with 5 tool calls to ~6 s with zero tokens).
    • Cron jobs use lightContext: true to strip session history from the context window, cutting input tokens on every scheduled run.
    • Tool-allow lists (toolsAllow) are scoped narrowly on cron entries so agents can’t accidentally reach for expensive tools.
    • The general pattern is: push work into scripts, let agents just interpret results.
    Role Model Notes
    Primary github-copilot/claude-sonnet-4.6 Default for all agents (alias: copilot-sonnet)
    Fallbacks claude-haiku-4-5claude-sonnet-4-6gemini-2.5-flashgemini-3-pro-preview In priority order
    Image github-copilot/claude-sonnet-4.6claude-sonnet-4-6gemini-2.5-flash-preview  
    Web search gemini-2.5-flash-lite  
  • Development via GitHub Copilot CLI— All plugin and config development is done through Copilot CLI. Initially I had Octo debug itself, but it turned out to be far more effective to use a separate Copilot CLI session for development, log reading, and troubleshooting.
  • Crontab over agent jobs — Recurring tasks are pushed to crontab whenever possible to avoid spinning up agent sessions. If something fails, the script can send a message to OpenClaw to inform of the error.
  • Weekly cost report — Every Monday at 5 AM PT, the root agent runs a weekly cost report skill that parses OpenClaw’s usage logs, generates a Markdown report broken down by agent, model, and token type, renders it to PDF, and posts it to Discord. It covers token cost breakdown (input / output / cache read / cache write), per-agent spend, cron job vs. interactive split, daily trend, and a model split table — everything needed to spot where costs are climbing and why.

🔧 Self-Improvement — The Octo Engineering Harness

Octo has a small but growing set of mechanisms for detecting its own drift and quality problems — and fixing them automatically. Validation scripts run on a weekly cron, file GitHub issues for anything they find, and a state machine drives each issue from triage through planning, Copilot fix, PR review, and merge. The only manual step is approving the plan.

Engineering Harness →


🦞 How OpenClaw Works — Super High Level ✈️

🤖 Agents & Channels — Agents are personas powered by language models. Each agent has its own identity, personality, and set of permitted tools. Agents communicate with users through channels — messaging platforms like Telegram or Discord.

🧩 Plugins are self-contained capabilities that agents can invoke: sending email, checking restaurant availability, snapping a security camera, and more. Each plugin declares its own dependencies and is independently versioned.

🎯 Skills are lightweight, markdown-defined capabilities. Unlike plugins, skills don’t run code — they provide structured prompts and instructions that guide an agent’s behavior. Think of plugins as tools and skills as knowledge.

⌨️ CLI Tools are vetted shell scripts that agents can invoke via exec from ~/safebin/. They let agents run deterministic, token-free operations — file transforms, data exports, system queries — without reaching for a plugin.

⚙️ Services are long-running background daemons that watch for events (like incoming email) and route notifications through the system.

🪝 Hooks are event-driven entry points — camera webhooks and other signals that kick off targeted automations the moment something happens.