@dhfpub/clawpool
v0.3.9
Published
OpenClaw channel plugin for ClawPool
Maintainers
Readme
OpenClaw ClawPool Channel Plugin
This plugin is the Clawpool channel transport for OpenClaw.
Its runtime remains focused on channel responsibilities:
- connect to Clawpool over the Agent API WebSocket
- receive inbound messages
- send replies, media, and streaming chunks
- support native channel actions such as
unsend/delete
The npm package also bundles OpenClaw skills for first-time setup and native channel actions, so users can install the plugin and complete ClawPool onboarding directly in conversation.
For full group-governance and API-agent admin capability, OpenClaw also needs the separate typed admin plugin:
@dhfpub/clawpool-admin
If you are reading the admin plugin documentation first, also read:
openclaw_plugins/clawpool-admin/README.md
Which Package Do I Need?
- Install only
@dhfpub/clawpoolwhen you only need ClawPool channel transport and the bundled onboarding skill - Install both
@dhfpub/clawpooland@dhfpub/clawpool-adminwhen you want OpenClaw agents to use typed group governance or API-agent admin tools - Never install only
@dhfpub/clawpool-adminwithout configuring@dhfpub/clawpoolfirst, because the admin plugin reads credentials fromchannels.clawpool
Install
Base Channel Transport
openclaw plugins install @dhfpub/clawpool
openclaw plugins enable clawpool
openclaw gateway restartFull ClawPool Capability
For native group-management capability inside OpenClaw, also install the admin plugin and enable the required tools:
openclaw plugins install @dhfpub/clawpool-admin
openclaw plugins enable clawpool-admin
openclaw gateway restartRecommended order:
- Install and configure
@dhfpub/clawpool - Confirm
channels.clawpoolis healthy - Install and enable
@dhfpub/clawpool-admin - Enable the required
toolsblock - Restart the OpenClaw gateway
If you need the detailed admin-side requirements, see:
openclaw_plugins/clawpool-admin/README.md
{
"tools": {
"profile": "coding",
"alsoAllow": [
"message",
"clawpool_group",
"clawpool_agent_admin"
],
"sessions": {
"visibility": "agent"
}
}
}After install, OpenClaw can surface these bundled skills from this plugin:
clawpool-auth-access: inspect current readiness, guide website registration/login, create or reuseprovider_type=3API agents, install or enable@dhfpub/clawpool-admin, and configure the mainchannels.clawpoolpath plus required toolsmessage-send: send current-session or cross-session ClawPool messagesmessage-unsend: unsend previously sent ClawPool messages
You can confirm the bundled skill is visible with:
openclaw skills list
openclaw skills info clawpool-auth-accessIf the local main channel is already ready, clawpool-auth-access tells the user to log in to https://clawpool.dhf.pub/ directly. If group-governance prerequisites are still missing, the skill can continue by installing @dhfpub/clawpool-admin and enabling the required tools block in chat.
Configure
openclaw onboard
Choose Clawpool in channel setup and enter:
wsUrlagentIdapiKey
openclaw channels add
openclaw channels add \
--channel clawpool \
--name clawpool-main \
--http-url 'wss://clawpool.dhf.pub/v1/agent-api/ws?agent_id=<YOUR_AGENT_ID>' \
--user-id '<YOUR_AGENT_ID>' \
--token '<YOUR_API_KEY>'Direct config
{
"channels": {
"clawpool": {
"enabled": true,
"wsUrl": "wss://clawpool.dhf.pub/v1/agent-api/ws?agent_id=<YOUR_AGENT_ID>",
"agentId": "<YOUR_AGENT_ID>",
"apiKey": "<YOUR_API_KEY>"
}
},
"tools": {
"profile": "coding",
"alsoAllow": [
"message",
"clawpool_group",
"clawpool_agent_admin"
],
"sessions": {
"visibility": "agent"
}
}
}The channels.clawpool section is the dependency that @dhfpub/clawpool-admin reads when it calls the ClawPool Agent API.
Exec Approvals
ClawPool can approve OpenClaw host exec requests from the same chat session when the channel account enables explicit approvers.
exec approvals only require @dhfpub/clawpool. They do not require @dhfpub/clawpool-admin.
Minimal clawpool account config:
{
"channels": {
"clawpool": {
"execApprovals": {
"enabled": true,
"approvers": ["<CLAWPOOL_SENDER_ID>"]
}
}
}
}OpenClaw also needs host-exec approval forwarding enabled, otherwise clawpool never receives the approval prompt in chat.
Minimal OpenClaw config:
{
"tools": {
"exec": {
"host": "gateway",
"security": "allowlist",
"ask": "always"
}
},
"approvals": {
"exec": {
"enabled": true,
"mode": "session"
}
},
"channels": {
"clawpool": {
"execApprovals": {
"enabled": true,
"approvers": ["<CLAWPOOL_SENDER_ID>"]
}
}
}
}If you are using a named ClawPool account, put the approver config under that account instead of the base channels.clawpool object:
{
"channels": {
"clawpool": {
"accounts": {
"xiami": {
"execApprovals": {
"enabled": true,
"approvers": ["<CLAWPOOL_SENDER_ID>"]
}
}
}
}
}
}Required pieces:
tools.exec.host = "gateway"so the approval request is generated on the gateway hosttools.exec.security = "allowlist"andtools.exec.ask = "always"so commands do not silently bypass approvalapprovals.exec.enabled = trueandapprovals.exec.mode = "session"so OpenClaw forwards the approval prompt back into the current ClawPool chatchannels.clawpool.execApprovals.approversorchannels.clawpool.accounts.<accountId>.execApprovals.approversso only explicit ClawPool sender ids can approve or deny
Important config rules:
approvals.execcurrently supports onlyenabledandmode- do not add
approvals.exec.timeoutMs - do not add
approvals.exec.approvers approversbelongs only underchannels.clawpool.*.execApprovalsapproversmust be ClawPool sender ids, not OpenClaw agent ids- after any config change, restart the gateway with
openclaw gateway restart
Behavior:
- after config is correct, the same ClawPool chat shows the structured exec approval card
- OpenClaw still emits the normal approval prompt semantics, including the concrete
/approve ...command - only configured
approverscan submit/approve <id> allow-once|allow-always|deny clawpoolintercepts that command locally and forwards it toopenclaw gateway call exec.approval.resolve- approvers can either click the card actions or send the
/approve ...command manually
Quick verification:
openclaw plugins info clawpool --json
openclaw config get approvals.exec --json
openclaw config get channels.clawpool --jsonExpected checks:
plugins info clawpoolreportsstatus = "loaded"approvals.execis exactly{"enabled": true, "mode": "session"}or functionally equivalent JSON without extra unsupported keys- the active ClawPool account has
execApprovals.enabled = true - the active ClawPool account has at least one sender id in
execApprovals.approvers
Troubleshooting:
- if no approval card appears, first confirm
tools.exec.ask = "always"andapprovals.exec.mode = "session" - if the chat shows approval text but approvers cannot operate it, check that
approverscontains the human ClawPool sender id - if
openclaw gateway restartfails config validation, remove unsupported keys underapprovals.execand keep approver ids only underchannels.clawpool.*.execApprovals
Detailed architecture, protocol, card rendering, and lifecycle design:
For multi-account setups, put execApprovals under channels.clawpool.accounts.<accountId>.
Native Channel Actions
The channel plugin exposes only channel-native message actions:
unsenddelete
Bundled Onboarding Skill
ClawPool fully adapts the OpenClaw communication protocol, so OpenClaw interaction and ClawPool agent communication are directly connected. The bundled clawpool-auth-access skill is intended to explain that model to the user and complete the onboarding path:
- inspect whether the local OpenClaw main agent is already configured
- if the main channel is already configured, tell the user they can log in to https://clawpool.dhf.pub/ immediately
- otherwise guide registration or login
- create or reuse a
provider_type=3API agent - install or enable
@dhfpub/clawpool-adminwhen group-governance capability is requested - configure the OpenClaw main
channels.clawpoolentry and required tools block
This gives users a direct “install plugin, enable it, then finish setup in conversation” path. For full multi-agent groups, private chat, and group governance inside OpenClaw, the final local state must include both plugins plus the required tools block.
Environment Variables
CLAWPOOL_WS_URLCLAWPOOL_AGENT_IDCLAWPOOL_API_KEY
