不用坐在电脑前,我把 Claude Code 接到了微信和飞书

0 阅读12分钟

完整记录如何通过微信或飞书远程操控 Claude Code:从原理、平台对比、安装配置,到最终在手机上跑通验证。


一、先说结论:这套方案到底值不值得配?

如果你想要的是:

• 在开会、通勤、吃饭时也能让 Claude Code 继续干活

• 在手机上临时查代码、改配置、跑简单命令

• 不想给自己的电脑暴露公网 IP

那么 Claude-to-IM 是一套很实用的方案。

它的核心思路并不复杂:

在你的 Mac 上跑一个 Bridge 守护进程,一头连 IM(微信或飞书),一头连 Claude Code CLI。你在手机发消息,Bridge 把消息转给 Claude 执行,再把结果回发到手机。

这套方案最好的地方是:

• 不需要公网 IP

• 不需要自己配域名

• 家里 Wi-Fi、公司内网都能用

• 电脑保持开机联网即可


二、Claude-to-IM 到底是什么?

Claude-to-IM-skill 是一个 Claude Code 的 Skill 插件,作用就是把 IM 消息桥接到 Claude Code。

它目前支持 5 个 IM 平台:Telegram、Discord、飞书、QQ、微信。本文聚焦微信飞书两条链路。

工作原理

在你的电脑上跑一个后台服务(Bridge Daemon),它一头连接 IM 平台,一头连接 Claude Code CLI。

执行流程大致是这样:

手机发消息(微信/飞书)
→ IM 服务器
→ Bridge(你的 Mac)
→ Claude Code(你的 Mac)
→ 执行结果返回 Bridge
→ 手机收到回复

Bridge 使用长连接模式,所以它不是"服务器回调到你本地",而是你本机主动连出去。这也是为什么它不需要公网 IP。

适合哪些场景

• 临时查一个项目目录、配置项、日志

• 让 Claude 帮你改一小段代码或脚本

• 远程触发一些低风险命令

• 手机上快速接续一个没做完的编码任务

不太适合哪些场景

• 高风险命令执行

• 大规模重构

• 需要你频繁人工确认的复杂任务

• 电脑不稳定联网、经常休眠的场景


三、微信 vs 飞书:该选哪个?

Claude-to-IM 同时支持微信和飞书,两者各有优劣:

微信飞书
配置成本极低,扫码即用较高,需创建飞书应用 + 权限审批 + 发布
上手速度1 分钟10-15 分钟
群聊支持不支持,仅私聊支持群聊
稳定性登录态会过期,需重新扫码长连接稳定,不会过期
流式预览不支持(需等完整结果)不支持(需等完整结果)
审批按钮不支持,用文本命令或自动审批不支持,用文本命令或自动审批
风险零风险(官方 API)
账号要求个人微信号即可个人或企业飞书均可
适合场景偶尔用、快速体验日常高频使用、长期稳定

建议

先试微信——零门槛,扫码就能体验,确认好用后再决定要不要配飞书

长期用飞书——稳定可靠,不怕过期,支持群聊

两个都配——完全可以同时启用,CTI_ENABLED_CHANNELS=feishu,weixin


四、前置条件

先确认本机环境。

# Node.js 20+
node -v

# Claude Code CLI 已安装并认证
claude --version

五、安装 Claude-to-IM Skill

不管你选微信还是飞书,都需要先安装 Skill。这一步是共用的。

5.1 执行安装命令

npx skills add op7418/Claude-to-IM-skill --yes

安装成功后,大致会看到类似输出:

✓ ~/your-project/.agents/skills/claude-to-im
  symlinked: Claude Code, Continue, Kiro CLI, Trae CN

默认情况下,Skill 会安装到当前项目目录下的 .agents/skills/claude-to-im/

如果你希望它在任何目录都能用,后续可以把它移到:

~/.claude/skills/

5.2 macOS 用户一定要注意:大小写不敏感构建问题

如果你是 macOS,安装后第一次构建很可能会直接报错,典型错误像这样:

✘ [ERROR] Could not resolve "claude-to-im/src/lib/bridge/context.js"
✘ [ERROR] Could not resolve "claude-to-im/src/lib/bridge/bridge-manager.js"
✘ [ERROR] Could not resolve "claude-to-im/src/lib/bridge/adapters/index.js"

这不是你操作错了,而是一个已知问题。

根因是:

• Skill 依赖写的是 file:../Claude-to-IM

• Skill 目录叫 claude-to-im

• 核心库目录叫 Claude-to-IM

• macOS 默认 APFS 文件系统大小写不敏感

结果就是:npm 链接时把两个目录当成了"同一个名字",依赖指向错了,最终导致核心库目录解析失败。

这个问题基本只在 macOS 上明显,Linux 的区分大小写文件系统通常不会中招。

5.3 macOS 修复方法

最稳的办法是:把核心库克隆成一个不会撞名的新目录

# 进入全局 skills 目录
cd ~/.claude/skills/

# 1. 用不同目录名克隆核心库
git clone https://github.com/op7418/Claude-to-IM.git claude-to-im-core

# 2. 构建核心库
cd claude-to-im-core
npm install
npx tsc -p tsconfig.build.json
cd ..

# 3. 修改 skill 依赖路径
cd claude-to-im
sed -i '' 's|file:../Claude-to-IM|file:../claude-to-im-core|' package.json

# 4. 重新安装并构建
rm -rf node_modules
npm install
npm run build

如果最后看到类似 Built dist/daemon.mjs 的输出,说明构建已经通过。

补一个常见坑:

如果构建核心库时提示 tsc: command not found,不要直接装全局 TypeScript,优先用 npx tsc 调用项目本地版本。


六、微信接入(最快上手)

微信是最简单的接入方式——不需要创建应用、不需要审批权限、不需要发布,扫个码就能用。

6.1 扫码绑定微信

cd ~/.claude/skills/claude-to-im && npm run weixin:login

运行后会自动打开一个 HTML 页面,显示微信登录二维码。用手机微信扫码确认即可。

成功后终端会提示:

[weixin-login] Login successful. Saved linked account xxx
[weixin-login] You can now enable the `weixin` channel and start the bridge.

6.2 写配置文件

mkdir -p ~/.claude-to-im

创建 ~/.claude-to-im/config.env

CTI_RUNTIME=claude
CTI_ENABLED_CHANNELS=weixin
CTI_DEFAULT_WORKDIR=/Users/你的用户名
CTI_DEFAULT_MODE=code
CTI_AUTO_APPROVE=true
chmod 600 ~/.claude-to-im/config.env

6.3 启动并测试

bash ~/.claude/skills/claude-to-im/scripts/daemon.sh start

看到 "channels": ["weixin"] 就成功了。现在打开微信,私聊给绑定的账号发消息,Claude Code 就会响应。

微信接入后的聊天测试效果

6.4 微信接入注意事项

仅支持私聊,不支持群聊

• 每次扫码只绑定一个微信号,重新扫码会替换之前的

• 微信登录态可能过期,过期后需要重新 npm run weixin:login 扫码

• 不支持流式预览,需要等 Claude 完整执行完才返回结果


七、飞书接入(更稳定长期方案)

飞书配置流程比微信长,但胜在稳定、支持群聊。

7.1 进入飞书开发者后台

打开 open.feishu.cn,点击右上角 「开发者后台」

alt

注意:个人飞书和企业飞书都可以。如果还没有飞书账号,直接注册后创建一个免费团队(一个人也行,不需要营业执照),你就是管理员,拥有完整的开发权限。如果你用的是公司飞书且提示「无权访问」,需找管理员开通开发权限。

7.2 创建企业自建应用

选择 「创建企业自建应用」,应用名可以随便起,比如:

• Claude助手

• AI助手

• 编码助理

这里本质上是在创建一个企业内部可用的机器人外壳,用来接收飞书消息并转发给 Claude Code。

7.3 添加机器人能力

进入应用详情页后:

• 进入 「添加应用能力」

• 选择 「机器人」

• 点击启用

启用后,这个应用就具备"作为机器人收发消息"的能力。

alt

alt

7.4 开通权限

进入 「权限管理」,至少开通下面这些权限:

im:message 发送消息,必须

im:message:readonly 读取消息,必须

im:resource 读取图片/文件,必须

im:message.group_msg 群聊里不需要 @ 也能收消息,可选

建议第一次配置时,先不要im:message.group_msg。 不开它,机器人只会在你 @ 它时响应,风险更低,也更容易排查。

alt

7.5 配置事件订阅

进入 「事件与回调」

1. 分发方式选择 「长连接」

2. 添加事件:im.message.receive_v1

这里有一个关键点:

一定要选"长连接",不要选需要公网回调地址的模式。

本文整个方案之所以省事,就是因为它不依赖公网回调。

alt

7.6 获取 App ID 和 App Secret

进入 「凭证与基础信息」,复制这两个值:

App ID

App Secret

后面写配置文件时会用到。

alt

7.7 发布应用

飞书应用创建完以后,还不能立刻生效。 你必须进入 「版本管理与发布」

1. 创建版本

2. 设置可用范围

3. 提交发布

建议第一次只把可用范围设成自己

飞书应用不发布,权限和事件订阅通常都不会真正生效。

alt

7.8 写配置文件

如果你只用飞书

CTI_RUNTIME=claude
CTI_ENABLED_CHANNELS=feishu
CTI_DEFAULT_WORKDIR=/Users/你的用户名
CTI_DEFAULT_MODE=code
CTI_FEISHU_APP_ID=cli_你的AppID
CTI_FEISHU_APP_SECRET=你的AppSecret
CTI_AUTO_APPROVE=true

如果你微信和飞书都用

CTI_RUNTIME=claude
CTI_ENABLED_CHANNELS=feishu,weixin
CTI_DEFAULT_WORKDIR=/Users/你的用户名
CTI_DEFAULT_MODE=code
CTI_FEISHU_APP_ID=cli_你的AppID
CTI_FEISHU_APP_SECRET=你的AppSecret
CTI_AUTO_APPROVE=true

只需要在 CTI_ENABLED_CHANNELS 中加上 weixin 即可,两个渠道共用同一份配置。


7.9 启动并测试

bash ~/.claude/skills/claude-to-im/scripts/daemon.sh start

如果启动成功,通常会看到类似输出:

{
  "running": true,
  "pid": 95007,
  "channels": ["feishu", "weixin"]
}

飞书测试:新建一个测试群,把机器人拉进去,@ 它发消息。

alt

可以从下面这些问题开始测试:

你好,测试下
当前在哪个目录下?
帮我看看这个项目里有哪些文件

如果这些都能正常返回,再逐步尝试更具体的任务。

九、日常管理命令

每次输入完整路径太麻烦,建议先配置一个快捷别名。在终端执行一次:

echo 'alias cti="bash ~/.claude/skills/claude-to-im/scripts/daemon.sh"' >> ~/.zshrc
source ~/.zshrc

之后就可以用 cti 代替长路径:

cti start      # 启动 Bridge(手机开始响应)
cti stop       # 停止 Bridge(手机不再响应)
cti status     # 查看运行状态
cti logs 50    # 查看最近 50 行日志
cti doctor     # 诊断问题

startstop 的作用start 启动 Bridge 后台进程后,手机端的消息才会被转发给 Claude Code 执行;stop 停止后手机发消息就无人响应了。日常使用就是开机 cti start 一次,不用时 cti stop 关掉。

这里有个实用区分:

status:只是看它在不在跑

doctor:它挂了、没反应了,帮你查问题

另外要记住:

修改 config.env 后,需要重启 Bridge 才会生效(cti stop && cti start)。


十、配置项详解

CTI_RUNTIME

可选 claude / codex / auto。桥接 Claude Code 直接写 claude

CTI_ENABLED_CHANNELS

可选 feishu / telegram / discord / qq / weixin,逗号分隔可同时启用多个。

CTI_DEFAULT_WORKDIR

Bridge 默认操作的目录。设成 Home 灵活但权限大,设成具体项目目录更安全。

CTI_DEFAULT_MODE

code:能读写文件、跑命令

plan:偏规划

ask:偏问答

CTI_AUTO_APPROVE

这是整套方案里最敏感的配置。飞书和微信都不支持交互式审批按钮,不开自动审批会导致工具调用卡住。大多数情况下要设为 true

代价是:

Claude 可以不经你再次确认,直接执行工具调用和命令。


十一、常见问题排查

1. 飞书应用没有发布

应用不发布,权限和事件订阅不会生效。

2. 飞书权限没开全

最少确保:im:messageim:message:readonlyim:resource

3. 飞书事件分发方式选错了

一定要选长连接,不要选公网回调。

4. macOS 上构建失败

优先看第五节的大小写冲突修复方法。

5. CTI_AUTO_APPROVE 没开

飞书和微信都需要开。不开它,工具调用会卡住等审批。

6. 微信登录态过期

重新运行 cd ~/.claude/skills/claude-to-im && npm run weixin:login 扫码。

7. 电脑休眠或断网

Bridge 是本地进程,电脑睡眠或断网后手机端就会"失联"。


十二、Skill 命令速查

在 Claude Code 终端中使用(不是在飞书/微信里):

命令说明
/claude-to-im setup交互式配置向导
/claude-to-im start启动 Bridge
/claude-to-im stop停止 Bridge
/claude-to-im status查看运行状态
/claude-to-im logs查看日志
/claude-to-im reconfigure修改配置
/claude-to-im doctor一键诊断

十三、完整命令清单

微信最快路径(1 分钟)

# 1. 安装 Skill(如果还没装)
npx skills add op7418/Claude-to-IM-skill --yes

# 2. macOS 用户修复大小写问题(见第五节)

# 3. 扫码绑定微信
cd ~/.claude/skills/claude-to-im && npm run weixin:login

# 4. 写配置
mkdir -p ~/.claude-to-im
cat > ~/.claude-to-im/config.env << 'EOF'
CTI_RUNTIME=claude
CTI_ENABLED_CHANNELS=weixin
CTI_DEFAULT_WORKDIR=/Users/你的用户名
CTI_DEFAULT_MODE=code
CTI_AUTO_APPROVE=true
EOF
chmod 600 ~/.claude-to-im/config.env

# 5. 启动
bash ~/.claude/skills/claude-to-im/scripts/daemon.sh start

飞书完整路径

# 1. 安装 Skill
npx skills add op7418/Claude-to-IM-skill --yes

# 2. macOS 用户修复大小写问题
cd ~/.claude/skills/
git clone https://github.com/op7418/Claude-to-IM.git claude-to-im-core
cd claude-to-im-core && npm install && npx tsc -p tsconfig.build.json && cd ..
cd claude-to-im
sed -i '' 's|file:../Claude-to-IM|file:../claude-to-im-core|' package.json
rm -rf node_modules && npm install && npm run build

# 3. 写配置
mkdir -p ~/.claude-to-im
cat > ~/.claude-to-im/config.env << 'EOF'
CTI_RUNTIME=claude
CTI_ENABLED_CHANNELS=feishu
CTI_DEFAULT_WORKDIR=/Users/你的用户名
CTI_DEFAULT_MODE=code
CTI_FEISHU_APP_ID=cli_你的AppID
CTI_FEISHU_APP_SECRET=你的AppSecret
CTI_AUTO_APPROVE=true
EOF
chmod 600 ~/.claude-to-im/config.env

# 4. 启动
bash ~/.claude/skills/claude-to-im/scripts/daemon.sh start

微信 + 飞书同时启用

在已配好飞书的基础上,只需两步:

# 1. 扫码绑定微信
cd ~/.claude/skills/claude-to-im && npm run weixin:login

# 2. 修改配置,加上 weixin
# 把 CTI_ENABLED_CHANNELS=feishu 改为 CTI_ENABLED_CHANNELS=feishu,weixin

# 3. 重启
cti stop && cti start

十四、最后总结

微信飞书
一句话扫码即用,零门槛体验配一次,长期稳定用
配置时间1 分钟20-30 分钟
推荐场景快速体验、偶尔使用日常高频、长期稳定

推荐路径:先用微信 1 分钟跑通体验 → 觉得好用再花 20 分钟配飞书 → 最终两个同时开着,随手就能用。

跑通之后,你就拥有了一个可以在手机上远程调度的 Claude Code。它不一定适合做高风险、大规模的改动,但非常适合临时查代码、远程接续小任务、不在电脑旁时快速让 Claude 继续工作。


image.png