openclaw-esn-plugin
v0.1.0
Published
OpenClaw ESN channel plugin (local WS bridge)
Maintainers
Readme
OpenClaw ESN Channel Plugin
本插件在本地启动 WebSocket Server,接收桌面端连接,并将消息转发给 OpenClaw 通道;同时把 OpenClaw 的出站消息转发回桌面端。
本地开发
安装依赖:
npm install运行测试:
npx vitest run安装插件
本地安装:
openclaw plugins install -l ./openclaw-esn-plugin启用插件:
openclaw plugins enable openclaw-esn-plugin配置
配置节点:channels.esn
默认值(见 src/config-schema.ts):
enabled:truedebug:false(调试放行普通文本)host:127.0.0.1port:9001
示例:
{
"channels": {
"esn": {
"enabled": true,
"debug": false,
"host": "127.0.0.1",
"port": 9001
}
}
}注意:host/port 需与桌面端的 local_ws_url 对齐(例如 ws://127.0.0.1:9001)。
调试开关(.env)
插件会读取 .env,当设置 OPENCLAW_ESN_DEBUG_PLAINTEXT=1(或 true/yes/on)时,
会放行“无法解析为 ESN JSON 的普通文本”并转发给 OpenClaw。
架构与数据流
flowchart LR
Desktop[Desktop Bridge] <--> WS[本地 WS Server]
WS <--> Plugin[ESN 插件]
Plugin <--> Core[OpenClaw Core]数据流(简化):
- 入站(Desktop -> OpenClaw)
- WS 文本消息 ->
transformIncoming - 上报到 OpenClaw 通道
- WS 文本消息 ->
- 出站(OpenClaw -> Desktop)
- 通道消息 ->
transformOutgoing - 写回 WS
- 通道消息 ->
消息转换
- 位置:
src/transform.ts - 当前为占位实现(原样返回),待补充 ESN 协议细节。
关键文件
- 入口:
index.ts - 通道实现:
src/channel.ts - WS Server:
src/server.ts - 配置:
src/config.ts/src/config-schema.ts - 转换:
src/transform.ts
已知限制
- 仅支持文本帧;非文本消息会被丢弃。
- ESN 协议映射尚未实现。
插件 ID 说明
- 插件 ID:
openclaw-esn-plugin - 通道 ID:
esn
安装后如需启用插件条目,请使用插件 ID:
openclaw plugins enable openclaw-esn-plugin通道配置仍在:channels.esn。
