Octo
Octo channel plugin for OpenClaw
Audits
PassInstall
openclaw plugins install clawhub:octoopenclaw-channel-octo
OpenClaw channel plugin for Octo. Connects via WebSocket for real-time messaging.
Prerequisites
- Node.js >= 22 (OpenClaw >= 2026.4.15 requires Node 22)
- OpenClaw installed and configured (
npm i -g openclaw) - A bot created via BotFather in Octo (send
/newbotto BotFather)
Install
This plugin is published exclusively on ClawHub for fresh installs:
openclaw plugins install clawhub:octo
Configure a bot account
After installing, use OpenClaw's standard channels add flow.
Non-interactive (recommended for scripts and CI):
openclaw channels add --channel octo \
--account my_bot \
--bot-token bf_your_token_here \
--http-url https://your-server.example/api
Interactive (prompts for token and API URL):
openclaw channels add
After the account is written, restart the gateway (openclaw gateway run --force)
or wait for the next auto-reload — the plugin watches channels.octo and
reconnects on changes.
Configuration
Bot accounts are stored in ~/.openclaw/openclaw.json under channels.octo.accounts:
{
"channels": {
"octo": {
"enabled": true,
"accounts": {
"my_bot": {
"enabled": true,
"botToken": "bf_your_token_here",
"apiUrl": "https://your-server.example/api"
}
}
}
}
}
Configuration fields per account:
botToken(required): Bot token from BotFather (bf_prefix)apiUrl(required): Octo server REST API base URL (e.g.https://your-server/api). The defaulthttp://localhost:8090/apionly works for a local Octo dev server with the standard/apimount.wsUrl(optional): WebSocket URL. Auto-detected fromapiUrlif omitted.cdnUrl(optional): CDN base URL for media filesrequireMention(optional): Only respond when @mentioned in groupshistoryLimit(optional): Group chat history message limit (default: 20)
What it does
- Registers the bot with the Octo server via REST API
- Connects to WebSocket for real-time message receiving
- Auto-reconnects on disconnection
- Sends a greeting to the bot owner on connect
- Dispatches incoming messages to OpenClaw's message handler
- Supports typing indicators and read receipts
Architecture
index.ts is a standard OpenClaw plugin entry. When loaded:
api.registerChannel(octoPlugin)registers the Octo channel runtime- The bundled
setupEntryexposesdefineBundledChannelSetupEntry(...)soopenclaw channels addworks without first enabling the plugin setupWizard+setupadapters onoctoPlugincover both interactive and CLI-flag setup paths- Configuration is read from
channels.octoin OpenClaw's config; the plugin hot-reloads when that block changes
Disconnect
To disconnect a bot, send /disconnect to BotFather in Octo. This invalidates
the IM token and kicks the WebSocket connection.
