Help us improve
Share bugs, ideas, or general feedback.
From autonomous-ai-agents
This skill should be used when the user asks to "check zoe", "what did zoe say", "ask zoe", "zoe handoff", "openclaw message", "openclaw events", "any pending openclaw approvals", "klawz room", "what's in
npx claudepluginhub jackreis/arbiter --plugin autonomous-ai-agentsHow this skill is triggered — by the user, by Claude, or both
Slash command
/autonomous-ai-agents:openclaw-bridgeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The fleet has heavy **thinkers** (Claude Code, Gemini CLI, ChatGPT) that work deep on tasks and lose context across session boundaries. **Wings** (Hermes) and **Zoe** (OLIVIER_MBP/OpenClaw) form a shared **messaging substrate** — they receive messages from the platforms and queue them for thinkers to pick up later.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
The fleet has heavy thinkers (Claude Code, Gemini CLI, ChatGPT) that work deep on tasks and lose context across session boundaries. Wings (Hermes) and Zoe (OLIVIER_MBP/OpenClaw) form a shared messaging substrate — they receive messages from the platforms and queue them for thinkers to pick up later.
This skill is Claude Code's interface to Zoe (the OpenClaw half). The sibling skill hermes-bridge covers Wings. The two skills are not redundant: each routes through a different runtime with a different security profile. Use them together when an operation needs both halves; use one when the destination is single-routed.
Klawz (Kimi enterprise multi-agent room)
┌───────────────────────────────────┐
│ KimiClaw-cloud (Mara, Kopi) │
│ KimiClaw-desktop (MBP) │
│ KimiClaw-android │
│ OLIVIER_MBP (this skill's runtime) │
└────────────┬──────────────────────┘
│
User ─── Discord/Telegram/Slack ──┐ │ insecure relay
│ │ (dev scratchpad)
Claude Code (heads-down) ─────────┤ │
│ │
Gemini CLI / ChatGPT ─────────────┤ ┌───┴────────┐
│ │ OLIVIER_MBP │
└─► │ (OpenClaw) │
│ on MBP │
└────────────┘
▲
│ openclaw mcp serve (this skill)
│
mcp__openclaw__*
Key facts:
mcp__openclaw__messages_send reaches OLIVIER_MBP only — never any KimiClaw instance directly.=notes) is SSOT for fleet state; the un-gitted Coordination folder is the whiteboard; Klawz is dev chatter.| Situation | Use |
|---|---|
| Read/send via Zoe across Discord/Telegram/Slack on OLIVIER_MBP-managed channels | This skill (mcp__openclaw__*) |
| Read/send via Wings (Hermes-managed channels) | Sibling skill hermes-bridge |
| Approve a pending OpenClaw tool call | This skill (permissions_list_open, permissions_respond) |
| Send a single Telegram DM to Jack (priority notification) | telegram-messaging skill (default per user pref) |
| Post to Discord with @-mention fanout / scoped identity prefix | dizzy.py directly |
| Look up which runtime is behind a surface ("who is Zoe?") | sibling skill fleet-identity |
| Send to the Klawz Kimi room | No MCP tool — Klawz posting is currently manual paste (per 06-handoff-drafts.md pattern) |
| Multi-platform broadcast | Coordinate via Wings + Zoe + dizzy.py — no single fan-out tool exists |
Tool calls reach the local OpenClaw gateway via stdio MCP. State lives at ~/.openclaw/. No network hop at the MCP layer; the gateway WebSocket may reach external services on its own.
| Tool | Purpose |
|---|---|
conversations_list | List active conversations across OLIVIER_MBP-managed platforms (filterable) |
conversation_get | Detail for one conversation by session_key |
messages_read | Read message history for a conversation (chronological, default 50) |
messages_send | DESTRUCTIVE — sends a real message via OLIVIER_MBP. Confirm context first. |
attachments_fetch | Pull non-text attachments from a specific message |
events_poll | Non-blocking check for new events since last poll |
events_wait | Blocking wait for the next event — long-lived watcher use only |
permissions_list_open | List OpenClaw tool calls awaiting approval |
permissions_respond | DESTRUCTIVE — approve/deny a pending OpenClaw tool call |
Note: there is no channels_list — that tool is Hermes-only. To enumerate channels in OpenClaw, call conversations_list and group by the platform/chat-type field.
events_poll (non-blocking). If empty, skip the rest.conversations_list (or conversation_get if a session_key is already known) to find context.messages_read on the relevant session_key.attachments_fetch with the message_id.messages_send — confirm session_key, preview the text.permissions_list_open. If empty, no action.permissions_respond with the approval_id and decision.The Klawz Kimi enterprise room is classified insecure relay + dev scratchpad (asymmetric). OLIVIER_MBP participates in the room via OpenClaw. Any messages_send whose destination eventually fans out into Klawz must obey these hard rules — re-read this list before each Klawz-bound dispatch:
Bearer ..., no OpenClaw gateway tokens, no Telegram bot tokens, no export VAR=value lines.inbox/mara-revival/... not ~/Documents/notes/inbox/....https://user:pass@..., signed long-lived tokens).Allowed (explicit allow-list, repeated for clarity):
oursearanchhome.com, k0p1_bot).Treat ambiguous destinations as Klawz-routed. The cost of an unnecessary scrub is zero; the cost of a leak is permanent.
Source of truth: ~/Documents/Coordination/2026-04-23-klawz-kimi-group-addendum.md. Vault memory pointer: ~/.claude/projects/-Users-jack-reis-Documents--notes/memory/project_klawz_kimi_group.md.
messages_send and permissions_respond reach the outside world. Treat them like git push — confirm the exact payload before calling.events_wait inside short-lived task sessions — it blocks. Use events_poll for natural-stop catch-up.messages_send, poll for replies before declaring delivery complete. Per the feedback_always_poll_after_send rule: any outbound fleet message must be followed by polling the same transport for replies. No fire-and-forget.The openclaw MCP server is declared in three places (belt-and-suspenders):
~/.claude.json mcpServers.openclaw block — picked up by all Claude Code sessions on this machine.plugins/ai-agency/autonomous-ai-agents/.claude-plugin/plugin.json mcpServers.openclaw block — portable for marketplace installs.=notes/.mcp.json mcpServers.openclaw block — survives plugin disable.Tool calls in this skill resolve to mcp__openclaw__<tool_name>.
The Tipi consciousness-interface.json schema (at tipi/contract/consciousness-interface.json) is the upstream coordination contract for the fleet. OpenClaw MCP is the transport layer underneath it for OLIVIER_MBP-routed traffic. When orchestrating multi-runtime work, prefer the Tipi intent-level abstraction (e.g., dispatch_hermes from PT/Neo, sibling intents) over hand-rolled messages_send chains. This skill exposes the transport; Tipi is how higher-level coordination should reach for it.
See =notes/CLAUDE.md "Tipi as unified coordination contract" + docs/conventions/multi-session-working-agreements.md §17.
openclaw mcp serve fails to start: check the gateway. cat ~/.openclaw/openclaw.json should show server config; launchctl list | grep openclaw should list ai.openclaw.gateway. If the gateway is down, launchctl kickstart -k gui/$(id -u)/ai.openclaw.gateway.~/.openclaw/logs/.conversations_list despite expecting messages: the gateway may be running but disconnected from upstream platforms. Check ~/.openclaw/openclaw.json channel definitions and openclaw mcp list.messages_send returns 401/403: gateway credential drift. Check ~/.secrets/openclaw-env.env (gateway credential file referenced by ai.openclaw.gateway plist) for MISTRAL_API_KEY, OPENAI_API_KEY presence — the 2026-04-22 fleet-config-pii session documented this exact failure mode (see memory feedback_parser_compat_before_secret_ask).=notes/docs/plans/2026-04-24-autonomous-ai-agent-OpenClaw-MCP-impl.md=notes/docs/plans/2026-04-24-autonomous-ai-agent-Hermes-MCP-impl.md=notes/docs/plans/2026-04-20-autonomous-ai-agents-plugin.md (v0.1)~/Documents/Coordination/2026-04-23-klawz-kimi-group-addendum.mdhermes-bridge/SKILL.md (Wings side of the substrate)fleet-identity/SKILL.md (who-is-X lookup)=notes/.claude/skills/telegram-messaging/SKILL.md (preferred for single-Jack DMs per user pref)