OpenClaw channel plugin for Placet — human-in-the-loop reviews and messaging.
openclaw plugins install openclaw-placet-channel
openclaw gateway restartAdd to ~/.openclaw/openclaw.json:
{
"channels": {
"placet": {
"instanceUrl": "https://app.placet.io",
"apiKey": "hp_your-api-key",
"enabled": true,
"agentName": "OpenClaw Agent"
}
}
}| Option | Required | Description |
|---|---|---|
instanceUrl |
Yes | Placet instance URL |
apiKey |
Yes | Placet API key (starts with hp_) |
agentName |
No | Name for the auto-created agent (default: OpenClaw Agent) |
agentId |
No | Use an existing Placet agent instead of auto-creating |
enabled |
No | Enable/disable the channel (default: true) |
You can override config values with environment variables:
PLACET_URL— overridesinstanceUrlPLACET_API_KEY— overridesapiKey
- Outbound: OpenClaw sends messages to Placet via the REST API (
POST /api/v1/messages) - Inbound: A background Socket.IO connection listens for user messages and review responses from Placet
- HITL: OpenClaw tool confirmations are mapped to Placet review types (approval, text-input, selection)
Placet User OpenClaw Agent
| |
|--- types message ----------------------->| (Socket.IO → message:created)
| |--- processes...
|<--- agent responds ----------------------| (REST → POST /api/v1/messages)
| |
|<--- needs approval (HITL) ---------------| (REST → message with review)
| (Placet review UI appears) |
|--- approves/rejects -------------------->| (Socket.IO → review:responded)
npm install
npm test
npm run typecheck- "Channel not configured": Ensure
instanceUrlandapiKeyare set in config or env vars - WebSocket disconnects: The plugin auto-reconnects with exponential backoff (1s → 30s max)
- Agent not found: If
agentIdis set but doesn't exist, the plugin creates a new agent by name
MIT