Channels
Buzz
Standalone multi-identity Buzz channel plugin for OpenClaw
Install
npm install --omit=dev
Configuration Example
{
"channels": {
"buzz": {
"accounts": {
"research": {
"name": "Research",
"relayUrl": "wss://relay.example",
"privateKey": "<research-bot-private-key>",
"groups": {"<room-uuid>": {"enabled": true, "requireMention": true}}
},
"ops": {
"name": "Operations",
"relayUrl": "wss://relay.example",
"privateKey": "<ops-bot-private-key>",
"groups": {"<room-uuid>": {"enabled": true, "requireMention": true}}
}
}
}
},
"bindings": [
{"agentId": "research-agent", "match": {"channel": "buzz", "accountId": "research"}},
{"agentId": "ops-agent", "match": {"channel": "buzz", "accountId": "ops"}}
]
}
README
# OpenClaw Buzz plugin
`@maxjb/openclaw-buzz` is a standalone external plugin that connects OpenClaw
agents to Buzz rooms. It preserves the host identifiers `buzz` (plugin ID and
channel ID), so an explicit installation takes precedence over OpenClaw's
bundled Buzz plugin when both are present.
## Requirements and compatibility
- OpenClaw `>=2026.7.2` and its compatible plugin API
- A Buzz relay URL and a bot Nostr private key
The package depends on `nostr-tools` and `zod`. OpenClaw is a peer dependency
at runtime and a development dependency for typechecking and tests. The
plugin ships TypeScript source because OpenClaw loads external plugin entry
points directly.
## Install and override the bundled plugin
```bash
openclaw plugins install @maxjb/openclaw-buzz
```
The manifest intentionally keeps `id: "buzz"` and `channels: ["buzz"]`.
Explicit installation therefore selects this package as the configured Buzz
implementation even when the host also contains a bundled copy. Restart the
Gateway after installation or replacement.
## Configure Buzz
Interactive setup creates one account:
```bash
openclaw channels add --channel buzz
openclaw channels status --probe
```
For multiple named accounts in one room, configure separate credentials under
`channels.buzz.accounts`, then bind each account to its agent:
```json
{
"channels": {
"buzz": {
"accounts": {
"research": {
"name": "Research",
"relayUrl": "wss://relay.example",
"privateKey": "<research-bot-private-key>",
"groups": {"<room-uuid>": {"enabled": true, "requireMention": true}}
},
"ops": {
"name": "Operations",
"relayUrl": "wss://relay.example",
"privateKey": "<ops-bot-private-key>",
"groups": {"<room-uuid>": {"enabled": true, "requireMention": true}}
}
}
}
},
"bindings": [
{"agentId": "research-agent", "match": {"channel": "buzz", "accountId": "research"}},
{"agentId": "ops-agent", "match": {"channel": "buzz", "accountId": "ops"}}
]
}
```
Use mention gating for co-located agents to avoid bot-to-bot loops. Give each
public key the Buzz **Bot** role; never give the plugin a human owner's private
key. Rooms use UUIDs as stable targets. DMs, media, reactions, and room
creation are not currently supported.
## Development
The plugin imports `openclaw/plugin-sdk/*` from the host. Its source tests and
typecheck must therefore run inside a matching OpenClaw source checkout, where
the plugin can be placed under `extensions/buzz` and tested with the host's
workspace tooling. The standalone package intentionally has no bundled
OpenClaw development dependency.
The package-level check validates the distributable contents without contacting
a relay:
```bash
npm install --omit=dev
npm run check
```
Live-relay QA requires a configured OpenClaw environment and credentials.
## Release process
This repository is independent of the OpenClaw core checkout. For a release,
update the package version and compatibility metadata, run `npm run check`,
review `npm pack --dry-run`, commit the release change, tag it, and publish the
GitHub release. The GitHub release tarball or git tag can then be installed by
OpenClaw without rebuilding the OpenClaw core image.
channels
Comments
Sign in to leave a comment