6 大 IM 平台 | 6 大 CLI 工具 | 完全免费开源
English | 中文
这是一个 IM-CLI 桥接器,连接任意即时通讯平台和各种 AI 编程工具,让你在手机上远程操控电脑/服务器上的 CLI。
IM 平台 (微信/Telegram/Discord/飞书/Slack/企业微信)
| 桥接器 (本项目)
Claude Code / Codex / Cursor / Gemini / Kiro CLI (服务器/电脑)
本质:
- 这是一个桥接器 -- 连接 IM 和 CLI 工具的中间层
- CLI 跑在服务器 -- Claude、Cursor 等工具在你的服务器/电脑上运行
- IM 发指令 -- 在手机上发消息,远程操控 CLI
- 实时交互 -- 指令发送,结果返回,就像本地操作一样
不是什么:
- 不是 AI 本身 -- AI 能力来自 Claude、Codex 等官方 CLI 工具
- 不是 API 封装 -- 直接调用官方 CLI,保持原生体验
- 不是网页版 -- 运行在你自己的服务器,完全私有化
| 平台 | 消息接收方式 | 需要公网 IP | 状态 |
|---|---|---|---|
| 微信 (WeChat) | 本地轮询 (iLink Bot API) | 否 | 稳定 |
| Telegram | Long Polling | 否 | 稳定 |
| Discord | WebSocket Gateway | 否 | 稳定 |
| 飞书 (Feishu/Lark) | WebSocket 长连接 / Webhook | 仅 Webhook 模式 | 稳定 |
| Slack | Socket Mode WebSocket | 否 | 稳定 |
| 企业微信 (WeCom) | WebSocket 长连接 / Webhook | 仅 Webhook 模式 | 稳定 |
所有平台默认使用不需要公网 IP 的连接方式。飞书和企业微信可通过环境变量切换到 Webhook 模式。
| CLI 工具 | 状态 | 说明 |
|---|---|---|
| Claude Code | 稳定 | Anthropic 官方,推理能力强 |
| OpenAI Codex | 稳定 | GPT-5.3,每个 ChatGPT 计划都包含 |
| Cursor CLI | 稳定 | 独立 CLI 工具,无需 IDE |
| Gemini CLI | 稳定 | Google 官方,免费额度大 |
| Kiro CLI | 稳定 | AWS 官方,Claude 模型 (Win 需 WSL) |
| Qwen Code | 开发中 | Session 不稳定,暂不推荐 |
- Node.js 22+ (下载)
- 一个 AI CLI (Claude/Codex/Cursor/Gemini/Kiro 任选其一,需提前安装并登录)
# 克隆项目
git clone https://github.com/tmwgsicp/im-cli-bridge.git
cd im-cli-bridge
# 安装依赖
npm install
# 复制并编辑配置
cp .env.example .env编辑 .env,设置你要使用的 IM 平台:
# 选择平台: weixin, telegram, discord, feishu, slack, wecom
PLATFORM=telegram
# 选择 CLI: claude, codex, cursor, gemini, kiro, qwen
CLI_TYPE=claude然后填入对应平台的凭证 (详见 .env.example):
TELEGRAM_BOT_TOKEN=123456:ABC-DEF... # 从 @BotFather 获取DISCORD_BOT_TOKEN=your_bot_token # Discord Developer Portal
# 需要启用 MESSAGE CONTENT INTENTFEISHU_APP_ID=cli_xxxxx # 飞书开放平台
FEISHU_APP_SECRET=xxxxx
FEISHU_MODE=ws # ws (无需公网IP) | webhookSLACK_BOT_TOKEN=xoxb-xxx # Slack API
SLACK_APP_TOKEN=xapp-xxx # 需启用 Socket ModeWECOM_CORP_ID=ww_xxxxx # 企业微信管理后台
WECOM_CORP_SECRET=xxxxx
WECOM_AGENT_ID=1000002
WECOM_MODE=ws # ws (无需公网IP) | webhook无需额外配置,启动后扫码登录。
node src/index.mjs微信平台首次启动需要扫码登录,其他平台通过 Token 自动连接。
媒体能力自动安装: 启动时自动将媒体发送规则 (语音/图片/文件) 安装到所有 CLI 的 rules 目录 (
~/.claude/rules/im-media.md等)。无需手动操作,rules 在所有模式下生效(含 -p headless 模式)。如需手动安装:node scripts/install-rules.mjs
# 图片生成 + 语音合成 (共用一个 API Key)
MINIMAX_API_KEY=sk-xxx
# CLI 工作目录
CLAUDE_WORKDIR=/path/to/your/project你 (手机): 帮我写个 Python 爬虫,爬取豆瓣电影 Top250
Claude Code (服务器):
已保存到 douban_spider.py
你: /cli cursor
切换到 Cursor
你: /cli claude
切换到 Claude
你: 每天早上8点提醒我看日报
桥接器: [Scheduled Task Created]
ID: #task_abc1
Type: Reminder
Cron: 0 8 * * *
你: 每周一上午10点分析上周代码提交
桥接器: [Scheduled Task Created]
ID: #task_def2
Type: AI
CLI: CLAUDE
你: 分析整个项目的代码质量,给出改进建议
桥接器: [Task Accepted] Running in background
Type: 代码分析
Estimated: 5-10 min
(你可以继续其他操作,完成后自动通知)
在 IM 中发送:
/help # 查看所有命令
/cli # 查看/切换 CLI 工具
/status # 查看当前状态
/model # 查看/切换模型
/reset # 重新开始对话
/sessions # 查看所有对话
/task # 查看异步任务
/schedule list # 查看定时任务
/persona list # 查看可用人设
/persona set coder # 切换人设
一套代码支持 6 个 IM 平台。通过 PLATFORM 环境变量切换,零代码改动。
运行时通过 /cli <name> 切换 CLI 工具,每个用户独立会话。
自动检测长任务 (代码分析、重构等),在后台执行,完成后推送结果。
支持自然语言创建定时任务:
- 提醒任务: "每天8点提醒我站会"
- AI 任务: "每周一分析上周代码提交"
- 一次性任务: "30秒后提醒我休息"
检测 Token 失效,自动暂停 1 小时避免触发风控,到期自动恢复。
内置 4 种人设 (coder / companion / mentor / supervisor),支持自定义。通过 CLI rules 机制注入,所有模式(含 -p headless)都生效。
/persona list # 查看可用人设
/persona set companion # 激活伴侣模式
/persona off # 关闭人设
/persona create id|name|prompt # 创建自定义人设
代码块、加粗、链接等格式在各平台正确渲染:
- Telegram: Markdown 模式
- 飞书: Interactive Card
- Slack: mrkdwn 格式
- Discord: 原生 Markdown
- 企业微信: Markdown 消息类型
桥接层自动检测 AI 提出的高危操作 (rm -rf, DROP TABLE, format 等),拦截并要求用户确认后才执行。
- 图片识别 -- 发截图,CLI 分析调试
- 文件处理 -- 发代码/日志,CLI 分析
- 文件发送 -- CLI 可通过
发送文件: 路径格式发送本地文件到 IM - 语音合成 -- CLI 可语音回复 (需配置 MiniMax)
- 图片生成 -- CLI 可生成图片 (需配置 MiniMax)
通过 INSTANCE_ID 环境变量支持同一台机器运行多个实例,数据完全隔离:
npm install -g pm2# 1. 配置 .env (填入平台 token)
cp .env.example .env
# 2. 启动
pm2 start src/index.mjs --name im-bridge --node-args="--no-deprecation"
# 3. 常用命令
pm2 logs im-bridge # 查看日志
pm2 restart im-bridge # 重启
pm2 stop im-bridge # 停止
# 4. 开机自启
pm2 startup
pm2 save每个平台启动一个独立进程,用不同的 --platform 和 --name:
# 先在 .env 里填好各平台的 token,然后:
# 启动 Telegram
pm2 start src/index.mjs --name im-telegram --node-args="--no-deprecation" -- --platform=telegram
# 启动飞书
pm2 start src/index.mjs --name im-feishu --node-args="--no-deprecation" -- --platform=feishu
# 启动 Slack
pm2 start src/index.mjs --name im-slack --node-args="--no-deprecation" -- --platform=slack
# 启动微信
pm2 start src/index.mjs --name im-weixin --node-args="--no-deprecation" -- --platform=weixin
# 查看所有实例状态
pm2 status同一个平台跑多个 bot (比如两个 Telegram bot):
# Bot 1
TELEGRAM_BOT_TOKEN=token_1 pm2 start src/index.mjs \
--name im-tg-bot1 --node-args="--no-deprecation" \
-- --platform=telegram --instance=tg-bot1
# Bot 2
TELEGRAM_BOT_TOKEN=token_2 pm2 start src/index.mjs \
--name im-tg-bot2 --node-args="--no-deprecation" \
-- --platform=telegram --instance=tg-bot2关键: 不同 bot 用不同的
--instance隔离数据,不同的环境变量传入 token。
也可以编辑 ecosystem.config.cjs,取消注释需要的平台,然后一键启动:
pm2 start ecosystem.config.cjs # 启动所有配置的平台
pm2 status # 查看状态src/
index.mjs # 主入口
config.mjs # 配置中心
platforms/ # IM 平台适配器
base-platform.mjs # 平台抽象基类
index.mjs # 平台工厂
weixin/ # 微信
telegram/ # Telegram
discord/ # Discord
feishu/ # 飞书
slack/ # Slack
wecom/ # 企业微信
core/ # 核心逻辑
commands.mjs # 命令处理
cli-manager.mjs # CLI 管理 (懒加载)
message-queue.mjs # 消息队列
types.mjs # 统一消息类型
cli/ # CLI 适配器
claude.mjs
codex.mjs
cursor.mjs
gemini.mjs
kiro.mjs
qwen.mjs
utils/ # 工具模块
task-scheduler.mjs # 定时任务调度
task-parser.mjs # 自然语言任务解析
task-detector.mjs # 长任务检测
async-task-manager.mjs # 异步任务管理
session-guard.mjs # Session 保护
logger.mjs
- Windows 10/11/Server 2016+
- Linux (Ubuntu 18.04+, Debian 10+)
- macOS 10.15+ (Intel/Apple Silicon)
默认不需要。所有平台默认使用不需要公网 IP 的连接方式。飞书和企业微信的 Webhook 模式需要公网 IP,但它们默认使用 WebSocket 模式。
- 代码全开源,可自行审查
- 运行在你自己的服务器
- 各平台使用官方 API
使用官方 iLink Bot API,协议合规。内置 Session Guard 自动防风控。
可以。每个平台启动一个实例,通过 INSTANCE_ID 隔离数据。
- 6 IM + 6 CLI 全平台验证
- 人设/伴侣系统
- Markdown 渲染 (Telegram/飞书/Slack/Discord/WeCom)
- 危险操作确认
- 媒体 Rules 自动安装 (取代 Skills,-p 模式兼容)
- 飞书 64-bit varint 修复、事件去重
- Streaming 流式预览 (stream-json 模式)
- 跨 CLI 上下文接力 (切换 CLI 时自动注入对话摘要)
- 多 Agent 协作 (多 CLI 并行处理)
- Web 管理面板
| 功能 | 微信 | Telegram | Discord | 飞书 | Slack | 企业微信 |
|---|---|---|---|---|---|---|
| 文字消息 | O | O | O | O | O | O |
| Markdown 渲染 | - | O | O | O (Card) | O | O |
| 图片接收 | O | O | O | O | O | O |
| 文件接收 | O | O | O | O | O | O |
| 文件发送 | O | O | O | O | O | O |
| 原生语音 | - | O (opus) | - | - | - | - |
| 语音 (文件) | O (mp3) | - | O | O | O | O |
| TTS 语音合成 | O | O | O | O | O | O |
| 图片生成 | O | O | O | O | O | O |
| Typing 状态 | O | O | O | O* | O* | - |
| 无需公网 IP | O | O | O | O (WS) | O | O (WS) |
O = 支持, - = 平台不支持, O* = 模拟提示 (发送 "Thinking...")
- 6 IM x 6 CLI -- 任意组合,一套代码
- CLI 热切换 --
/cli codex一句话切换,会话独立保留 - 人设/伴侣 -- 4 种内置人设 + 自定义创建,跨 CLI 生效
- 异步长任务 -- 自动检测,后台执行,完成推送,不阻塞日常对话
- 定时任务 -- 自然语言 + AI 智能解析,支持中文数字
- 危险操作确认 -- 桥接层拦截 rm -rf / DROP TABLE 等高危操作
- Session Guard -- 自动检测 Token 失效,暂停防风控,到期恢复
- 消息队列 -- 每用户独立串行,不丢消息不打断
- 多实例隔离 -- PM2 多实例,数据完全隔离
- 图片生成 + TTS -- MiniMax 内置,CLI 直接输出到 IM
本项目采用 AGPL 3.0 协议开源,所有功能代码完整公开,私有化部署完全免费。
| 使用场景 | 是否允许 |
|---|---|
| 个人学习和研究 | 允许,免费使用 |
| 企业内部使用 | 允许,免费使用 |
| 私有化部署 | 允许,免费使用 |
| 修改后对外提供网络服务 | 需开源修改后的代码 |
详见 LICENSE 文件。
- 本项目仅供学习和研究使用
- 使用各 IM 平台 API 需遵守其官方服务条款
- 使用各 CLI 工具需遵守其官方许可协议
- 开发者不对使用本项目产生的任何后果负责
欢迎参与:
- 提交 Issue -- 报告 Bug、提出功能建议
- Pull Request -- 欢迎提交 PR
- Fork 项目 -- 自由修改和定制
- Star 支持 -- 给项目点 Star,让更多人看到
![]() 个人微信 技术交流 / 商务合作 |
![]() 赞赏支持 开源不易,感谢支持 |

