@hangox/popo-claude-code-channel
v0.3.0
Published
Claude Code Channel 插件 — 通过网易 Popo 机器人远程操控 Claude Code
Maintainers
Readme
Popo Remote Claude Code
基于 Claude Code Channels(MCP Channel 协议)的网易 Popo 桥接插件,让 Claude Code 可以通过 Popo 机器人收发消息,实现在手机/任意设备上远程操控本地 Claude Code。
参考 claude-code-wechat-channel(微信版),为网易 Popo 实现同类功能。
架构
Popo 用户发消息 → Popo 平台 → Mercury WebSocket (STOMP) → 本地
↓ (AES-128-CBC 解密)
MCP Channel notification
↓
Claude Code 会话
↓
popo_reply 工具
↓
Popo REST API (send-msg) → 回复用户支持的消息类型
| 类型 | msgType | 说明 | |------|---------|------| | 普通文本 | 1 | 直接转发 | | 语音消息 | 141 | 自动语音转文字,直接作为文本输入 | | 引用回复 | 211 | 包含引用上下文 | | 多条引用 | 213 | 多条引用列表 | | 文件消息 | 171 | 显示文件名和大小 | | 视频消息 | 142 | 显示视频文件名 | | 合并转发 | 161 | 摘要前 5 条 | | 云文档 | 182 | 云文档链接 | | 快捷指令 | - | 指令名称 + 变量参数 | | 撤回/编辑 | - | 事件通知 |
安装
npm install -g @hangox/popo-claude-code-channel流式推送
当 Claude Code 生成回复时,插件会通过 Popo 流式卡片实时推送输出内容,实现打字机效果。
工作原理:
- 监控 Claude Code 的
.jsonl会话文件(~/.claude/projects/目录下) - 捕获 assistant 类型消息的文本增量
- 通过 Popo 流式卡片 API 逐块推送给用户
- Claude 回复完成后自动结束卡片
配置
在你的工作目录下创建 config.json:
{
"appId": "你的appId",
"appKey": "你的appKey",
"appSecret": "你的appSecret",
"botName": "机器人名称",
"aesKey": "32位AES密钥",
"allowedSenders": ["[email protected]"]
}凭据获取方式:登录 Popo 机器人管理后台,创建或查看机器人的 appKey / appSecret / aesKey。
allowedSenders:发送者白名单,只响应列表中用户的消息。留空数组则不限制。
启动
在 config.json 所在目录下运行:
claude --channel "popo-claude-code-channel"启动后,在 Popo 上给你的机器人发消息即可远程操控 Claude Code。
从源码开发
git clone <repo-url>
cd popo-remote-claudecode
bun install
cp config.example.json config.json
# 编辑 config.json 填入凭据
claude --dangerously-load-development-channels server:popo技术栈
- Runtime: Node.js >= 18 / Bun
- 语言: TypeScript
- 协议: MCP Channel + STOMP over WebSocket
- 加密: AES-128-CBC 消息解密
- 认证: Popo 开放平台 appKey/appSecret → accessToken → onceToken
