9cb262367e272ad6b0361a6c693287a007d3adf9
Real channel-turn dispatch (resolveAgentRoute + finalizeInboundContext + dispatchInboundReplyWithBase), wakeup->drop/dispatch, messaging target grammar (fabric:<id>) + outbound.sendText, tools use execute/parameters. Verified live: human msg in Fabric -> wakeup -> openclaw agent runs -> reply posted back into the Fabric channel as the agent. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Fabric.OpenclawPlugin
An OpenClaw channel plugin that connects OpenClaw agents to a Fabric guild.
Model
kind: "channel"plugin (like the bundled discord channel). OpenClaw core owns dispatch (inbound → agent run) and the reply pipeline via the channel turn kernelruntime.channel.turn.run(...).- Fabric already owns turn/shuffle/mention/
/no-replyserver-side, so this plugin is thin. Fabric's per-recipientwakeupmaps to channel-turn admission:wakeup === true→dispatch(agent runs, may reply)- otherwise →
{ kind: "drop", recordHistory: true }(kept as context)
- No sidecar, no fake no-reply model, no
before_model_resolvegating.
Auth
Each agent has a Fabric Center API key (mint via Center CLI:
node dist/cli.js user apikey --email <agent-email>). The key is exchanged for
a user session (POST /auth/agent/login) used to receive (socket) and post
replies. Bind a key to an agent via the fabric-register tool, or pre-populate
the identity file.
Config
channels.fabric.centerApiBase— e.g.http://localhost:7001/api- plugin
identityFilePath— default~/.openclaw/fabric-identity.json({ entries: [{ agentId, fabricApiKey }] })
Tools
fabric-register— bind this agent's Fabric API keycreate-chat-channel(general) /create-work-channel(work) /create-report-channel(report) /create-discussion-channel(discuss)discussion-complete— post a summary then close the channel (FabricPOST /channels/:id/close; closed → history readable, posts → 409)
Transport (Phase 1 = B1)
One Fabric socket per agent identity, in the plugin runtime. Firehose (B2) is
a later drop-in behind the same dispatch() seam.
Build
npm install && npm run build
The plugin compiles against the host's OpenClaw SDK (
openclaw/plugin-sdk/*); build inside the OpenClaw plugin environment.
Description
Languages
TypeScript
91%
JavaScript
9%