open-index/open-npm huggingface dataset:
npm package: @hangox/popo-claude-code-channel
Description: Claude Code Channel 插件 — 通过网易 Popo 机器人远程操控 Claude Code
Author: hangox
Latest version: 0.3.0

# Popo Remote Claude Code

基于 [Claude Code Channels](https://code.claude.com/docs/en/channels)（MCP Channel 协议）的网易 Popo 桥接插件，让 Claude Code 可以通过 Popo 机器人收发消息，实现在手机/任意设备上远程操控本地 Claude Code。

参考 [claude-code-wechat-channel](https://github.com/Johnixr/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 | 云文档链接 |
| 快捷指令 | - | 指令名称 + 变量参数 |
| 撤回/编辑 | - | 事件通知 |

## 安装

```bash
npm install -g @hangox/popo-claude-code-channel
```

## 流式推送

当 Claude Code 生成回复时，插件会通过 Popo 流式卡片实时推送输出内容，实现打字机效果。

工作原理：
- 监控 Claude Code 的 `.jsonl` 会话文件（`~/.claude/projects/` 目录下）
- 捕获 assistant 类型消息的文本增量
- 通过 Popo 流式卡片 API 逐块推送给用户
- Claude 回复完成后自动结束卡片

## 配置

在你的工作目录下创建 `config.json`：

```json
{
  "appId": "你的appId",
  "appKey": "你的appKey",
  "appSecret": "你的appSecret",
  "botName": "机器人名称",
  "aesKey": "32位AES密钥",
  "allowedSenders": ["your-email@corp.netease.com"]
}
```

凭据获取方式：登录 [Popo 机器人管理后台](https://open-dev.popo.netease.com)，创建或查看机器人的 appKey / appSecret / aesKey。

- `allowedSenders`：发送者白名单，只响应列表中用户的消息。留空数组则不限制。

## 启动

在 `config.json` 所在目录下运行：

```bash
claude --channel "popo-claude-code-channel"
```

启动后，在 Popo 上给你的机器人发消息即可远程操控 Claude Code。

## 从源码开发

```bash
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
npm package: @hangteam/babel-preset-tr
Description: Tr preset based on babel
Author: Hang
Latest version: 0.1.4

# babel-preset-tr
Tr preset based on babel

## config

babel.config.json

```json
{
  "presets": [["@hangteam/babel-preset-tr", {}]]
}
```

## options

|     name      |          type          |          default          |           description           |
| :-----------: | :----------------------: | :-----------------------------: | :-----------------------------: |
| autoInjection | {Boolean} | true | Automatic inject 'Tr' variable |
| from | {String} | '@hangteam/tr' | Automatic get the path of 'Tr' variable |