by deepcoldy
Bridge Feishu/Lark to AI coding CLIs — Claude Code, Codex, Gemini, OpenCode… every DM, group or topic spawns its own live-streaming CLI session
# Add to your Claude Code skills
git clone https://github.com/deepcoldy/botmuxGuides for using cli tools skills like botmux.
Last scanned: 6/10/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@larksuiteoapi/node-sdk: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@midscene/core: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@midscene/playground: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@midscene/shared: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@midscene/web: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@modelcontextprotocol/sdk: Anthropic's MCP TypeScript SDK has a ReDoS vulnerability",
"severity": "high"
},
{
"type": "npm-audit",
"message": "axios: Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF",
"severity": "high"
},
{
"type": "npm-audit",
"message": "js-yaml: js-yaml has prototype pollution in merge (<<)",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "pm2: pm2 Regular Expression Denial of Service vulnerability",
"severity": "low"
},
{
"type": "npm-audit",
"message": "uuid: uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided",
"severity": "medium"
}
],
"status": "WARNING",
"scannedAt": "2026-06-10T08:08:26.469Z",
"npmAuditRan": true,
"pipAuditRan": true
}See how botmux compares with popular alternatives.
botmux is an open-source cli tools skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by deepcoldy. Bridge Feishu/Lark to AI coding CLIs — Claude Code, Codex, Gemini, OpenCode… every DM, group or topic spawns its own live-streaming CLI session. It has 1,408 GitHub stars.
botmux returned warnings in SkillsLLM's automated security scan. It has no critical vulnerabilities, but review the flagged issues in the Security Report section before adding it to your workflow.
Clone the repository with "git clone https://github.com/deepcoldy/botmux" and add it to your Claude Code skills directory (see the Installation section above).
botmux is primarily written in TypeScript. It is open-source under deepcoldy on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other CLI Tools skills you can browse and compare side by side. Open the CLI Tools category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh botmux against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Daemon 监听飞书消息,为每个新会话自动 spawn 一个独立的会话进程,把 AI 编程 CLI / Agent 的输出实时流式回传成飞书卡片,并提供可交互的 Web 终端。它不重造 Agent 能力,而是直接桥接你已经在用的工具(20+ CLI / Agent 适配器,见 支持的 CLI / Agent)。
/relay 原样搬到另一个群,上下文一点不丢。约 5 分钟:
botmux setup一次飞书扫码就连续建好应用、配全权限、发版(加--no-open-platform-auto则只建应用、跳过权限与发版的自动配置,之后需手动完成;手动创建 / 粘贴凭证是 setup 里的另一个选项)。
curl -fsSL https://raw.githubusercontent.com/deepcoldy/botmux/master/install.sh | sh
botmux setup # 一次扫码建应用 → 选 CLI → 选工作目录(自动配权限 + 发版)
botmux start # 启动 daemon(botmux autostart enable 设开机自启)
botmux 本体是一个自包含单文件二进制,运行时已嵌在里面——装它和跑它都不需要机器上有 Node(你要接的 AI 编程 CLI 自己需要什么另算)。装到
~/.botmux/bin/botmux(BOTMUX_INSTALL_DIR可改),按 OS/arch 自动选对应二进制、校验 SHA-256,并把~/.botmux/bin写进你当前 shell 的启动文件(zsh / bash / fish 各写对的那个),开个新终端就能用。安装过程不编译任何原生模块(不需要 Python / node-gyp / 编译器):PTY 已经嵌在二进制里。支持 linux / macOS × x64 / arm64(Alpine 等 musl 环境自动选 musl 版);Windows 请在 WSL2 里安装(daemon 依赖 PTY / tmux / Unix 信号,原生 Windows 跑不了;WSL2 报告为 linux,是完整支持的一等环境)。平台不在列表里、或下下来的二进制在本机跑不起来,安装会明确报错并保留原有版本,而不是装上一个起不来的命令。
升级:
botmux upgrade(原地换二进制),或重跑一遍上面那条 curl 命令——同样原地升级,不会重复往启动文件里追加 PATH。
npm install -g botmux # 需要 Node >= 22 装包本身
npm 包内带的是同一个自包含二进制(按 os/arch 只装匹配的那一个),postinstall 把 ~/.botmux/bin/botmux 指向它并同样写 PATH。所以装完只有一个 botmux 版本,不再出现「装了两个 Node 版本、各自带一份全局 botmux 互相打架 / 不知道更新了哪个」。
区别只在谁来装、以后谁来升:npm 路径需要 Node ≥ 22 才能执行安装本身,升级交回 npm i -g botmux@latest;curl 路径全程不碰 Node。跑起来之后两者完全一致——同样的二进制、同样的命令。
然后私聊机器人、或 botmux dashboard 拉个群,直接开聊。完整步骤(含 Lark 国际版、--no-open-platform-auto 后手动配置权限 / 发版、排查)见 5 分钟快速接入。
/adopt 接管;/relay 把整个会话(原进程、原记忆)搬进团队群继续。更多:角色与团队 · 文件沙盒 · Dashboard 管控面 · tmux 会话常驻 · 飞书会议智能体(效果展示)。
bots.json 里用 cliId 一键切换。20+ 适配器,覆盖本地 CLI(进程隔离,tmux attach 可直连)和 API / 云 Agent(如 Mira、riff——通过 API / 远端接入,非本地进程;mojo 为 API 驱动、默认在宿主机执行工具,可配 cloud: true 走云沙箱)。代表项:
claude-code · codex · gemini · cursor · opencode · opencode2 · antigravity · copilot · grok · kimi · kiro-cli · reasonix · dsh · aiden · coco(TRAE) · hermes · ebsd · mira · riff(云 Agent) … · mojo(API 驱动,默认宿主机执行) · minimax(MiniMax mmx text repl;区域由 mmx auth login --region cn|global 决定,同机多区用 per-bot env 的 MMX_CONFIG_DIR 隔离) …
ebsd 使用独立的外部服务身份和原生 OMP 会话目录;部署方必须通过受限权限文件配置 Diag Gateway token 与 ByteCloud service account,不能把密钥写入 bots.json。
bots.json 里只放非敏感元数据和密钥文件路径,例如:
{
"cliId": "ebsd",
"workingDir": "/var/lib/botmux/ebsd-work",
"sandbox": true,
"env": {
"EBSD_BOTMUX_DIAG_ENDPOINT": "https://ebsbot.example",
"EBSD_BOTMUX_DIAG_TOKEN_FILE": "/run/secrets/ebsd-botmux/diag-token",
"EBSD_BOTMUX_BYTECLOUD_ACCESS_KEY_FILE": "/run/secrets/ebsd-botmux/bytecloud-ak",
"EBSD_BOTMUX_BYTECLOUD_SECRET_KEY_FILE": "/run/secrets/ebsd-botmux/bytecloud-sk",
"EBSD_BOTMUX_SUBJECT": "botmux-ebsd@prod",
"EBSD_BOTMUX_REPOSITORY_ROOT": "/srv/repos"
}
}
三个密钥文件必须是运行 BotMux 的账号持有的 0600 普通文件,不能是符号链接;文件内容、AK/SK 和 Gateway token 都不得写进 bots.json。workingDir 应是专用空目录,仓库通过只读的 EBSD_BOTMUX_REPOSITORY_ROOT 暴露。Linux 开启 sandbox 前需安装 bubblewrap,隔离建立失败时会拒绝启动。当前/上一把 Gateway key 可以在服务端并存完成轮换,subject 保持不变。
当前完整 cliId 以 src/adapters/cli/registry.ts 为准;各 CLI 的配置与套 wrapper / 网关方法见 多 CLI 适配器。
在会话尚未启动前,可以用 /cli <cliId> 为当前会话选择已注册的 CLI,例如:
/cli codex
这个选择只切换裸 CLI 适配器,不继承当前 bot 配置中的 wrapperCli、model 或 startupCommands。因此依赖 ttadk、aiden 等 wrapper / 网关才能启动的 CLI,不适合用会话级选择切换;应直接把 bot 默认配置设为对应的 wrapper 组合。会话启动后 CLI 选择冻结,后续消息和恢复都会继续使用该 CLI。
同一 Bot 的 Codex 多登录目录可使用 会话级 Codex 实例:显式 codexHome 与默认实例、加权随机新会话分配,以及固定实例的恢复/fork。初始化和登录见该文档;不提供额度不足自动换号。
在单个 bots.json 条目中设置 feedback.enabled: true,可在最终回答卡片中收集固定三态语义 positive / progress / negative 的反馈;默认按钮为“结论可用 / 有效推进 / 结论有误”。按钮文案、样式、顺序、可见语义、负向原因、说明框与是否允许改选均可配置。默认关闭,apiOnly bot、进度卡、自定义卡、通知和语音不显示反馈控件。当前仅本次提问者可反馈,提交后原卡片原地更新,自由文本不会回显到群卡。
{
"feedback": {
"enabled": true,
"visibleSemantics": ["positive", "progress", "negative"],
"buttons": [
{ "key": "conclusive_usable", "label": "结论可用", "semantic": "positive", "style": "primary" },
{ "key": "effective_progress", "label": "有效推进", "semantic": "progress", "style": "default" },
{ "key": "incorrect", "label": "结论有误", "semantic": "negative", "style": "danger" }
],
"negativeFollowup": {
"reasons": [{ "key": "wrong_result", "label": "结论或结果错误" }],
"comment": { "enabled": true, "required": false, "maxLength": 1000 }
}
}
}
也可在 Dashboard 的「Bot 配置 → 卡片 → 最终回答反馈」编辑,或用 /botconfig set feedback '<json>' 热更新。策略支持本地团队 → bot → bot-scoped chat 分层,优先级为 chat > bot > team;Dashboard 可预览最终生效策略。策略修改只影响之后交付的新卡;已发送卡片继续使用发送时快照。Agent 主动发送可声明 botmux send --response-kind progress ... 或 botmux send --response-kind final ...;未声明时默认按 progress/非 final 发送,只有显式 final 才挂反馈。数据仅落在本机 botmux-feedback.sqlite;可选 webhook 通过 durable outbox 投递 turn.completed 与 feedback.revised 事件。完整实现和边界见 docs/feedback-capability-current-implementation.md。
严格兼容 Codex 参数、交互与会话存储的独立发行版无需新增适配器:保留 cliId: "codex",通过 cliRuntime 声明自己的 executable、展示名和更新源。BotMux 会按发行版隔离版本与会话身份,未知更新源不会回落到官方 Codex。详见 Codex 兼容发行版。
botmux 不重新实现记忆、上下文管理、工具调用、权限体系——多数 CLI 原生能力无需 botmux 重造,CLI 升级通常直接受益(接口 / 参数 / 输出格式 / resume 语义有变时,adapter 仍可能要跟进)。用户照常发人话,daemon 在后台把上下文封装成结构化 prompt 再喂给 CLI。基于 Agent SDK 的方案则相反:能力取决于 SDK 暴露的接口面与你自己的集成实现。
下表只对比可核验的集成边界,不对其它方案下「必然缺失」的结论:
| 集成边界 | botmux | 基于 Agent SDK 的方案 |
|---|---|---|
| 桥接对象 | 完整 CLI 进程(含 hooks / memory / plan mode / MCP / / 命令等 CLI 自带运行时) |
SDK 暴露的接口面 |
| CLI 升级 | 多数直接受益;接口 / resume 有变时 adapter 跟进 | 取决于 SDK 版本与集成实现 |
| 记忆 / 上下文 | 直接复用 CLI 内建 | 取决于 SDK / 自建 |
| 多 CLI / Agent | 20+ 适配器一键切换 | 取决于 SDK 覆盖面 |
| 多机器人 | 同群多 bot @mention 路由 | 取决于实现 |
| 终端直连 | 本地 CLI 可 tmux attach 进真进程 |
取决于实现 |