可用于将 AtomCode 接入微信或飞书,在 IM 内收发消息并审批工具执行。项目提供渠道插件市场,内置微信 iLink 与飞书长连接插件,支持外置配置、自动拉起 daemon、白名单与卡片审批。【此简介由AI生成】
当前访问频次受限,请登录后继续访问
atomcode-channel
atomcode 渠道插件市场。当前插件:
- weixin — 个人微信(腾讯 iLink Bot 协议)。通用层(
adapter/) + atomcode 胶水(atomcode/)。 在微信里与 atomcode 收发消息,工具执行在微信内审批。整个插件零外部依赖(纯 Node 内置 + vendored QR 渲染器),装好即用、无需npm install。 - feishu — 飞书/Lark(
@larksuite/channelSDK + WebSocket 长连接)。通用层(adapter/) + atomcode 胶水(atomcode/)。 在飞书里与 atomcode 收发消息,工具执行用交互式卡片按钮审批。基于飞书官方@larksuite/channelSDK,无需公网回调域名,无需扫码登录,appId+appSecret即连。
微信渠道 (weixin)
用户流程(共两步手动:装 + 扫码一次)
1. 装插件
atomcode TUI 内:
/plugin marketplace add https://atomgit.com/atomgit_atomcode/AtomCode-Channel
/plugin install weixin@atomcode-channel
2. 配置(一次)
配置外置在 ~/.atomcode/weixin/config.json(不随插件副本、重装不丢):
mkdir -p ~/.atomcode/weixin
cp <插件目录>/plugins/weixin/config.example.json ~/.atomcode/weixin/config.json
# 编辑:daemonBaseUrl(你的 atomcode daemon)、workingDir、provider(可选);allowlist 可留空(放行所有)
3. 登录并启动(扫码一次)
在 atomcode 里运行:
/wechat
agent 会显示二维码 → 用微信「扫一扫」扫码 → 登录成功后自动后台启动 sidecar(无需重启 atomcode)。之后微信直接对话即可;以后每次 atomcode 启动,SessionStart hook 会自动复用 token 拉起 sidecar。
开发/调试也可在终端跑:
cd plugins/weixin/atomcode && npm run login(同样零安装)。
前置:daemon(可自动启动)
sidecar 连 config.daemonBaseUrl 指向的 atomcode daemon。sidecar 启动时会自动确保 daemon 在跑:health 探测,未起则按 config.daemonCmd 以 --port <端口> --idle-timeout 0 detached 拉起(--idle-timeout 0 防止 headless daemon 30 分钟空闲自退)。
要点:
- 该 daemon 必须是含渠道审批能力的构建(
SessionMode::Channel,见 atomcode 主仓 Phase 1)。官方版尚未合入前,把daemonCmd指向你自己的构建二进制,例如"/path/to/atomcode/target/debug/atomcode-daemon";合入后用默认"atomcode daemon"即可。 - 审批仅在 daemon 绑定回环
127.0.0.1+ 请求带X-AtomCode-Client: channel头时生效(adapter 已自动带;daemon 默认绑回环)。 - 若已有 daemon 在该端口跑(如 VSCode 的 13456),sidecar 探测到就直接复用、不重复起。
配置字段
ilinkBaseUrl / daemonBaseUrl / tokenPath / channelVersion / workingDir / allowlist(空=放行所有) / provider(空=daemon 默认) / thinkingAck(默认 true,turn 开始发「🤔 正在思考…」) / daemonCmd(未起 daemon 时用它自动拉起;指向 channel-mode 构建)。
已知边界
- iLink 对此类 bot 无可用文本流式(实测:client_id 去重、GENERATING 不原地编辑、上行流协议端点缺失);感知延迟用
thinkingAck提示气泡缓解。 - 首登需人扫码一次(微信 bot 鉴权要求,无法消除)。
日志
sidecar 日志:${TMPDIR}/atomcode-weixin.log。
飞书渠道 (feishu)
用户流程(装 + 配置,无需扫码)
1. 装插件
atomcode TUI 内:
/plugin marketplace add https://atomgit.com/atomgit_atomcode/AtomCode-Channel
/plugin install feishu@atomcode-channel
2. 安装依赖
飞书渠道依赖 @larksuite/channel SDK,需在 adapter 目录安装:
cd <插件目录>/plugins/feishu/adapter && npm install
3. 配置(一次)
配置外置在 ~/.atomcode/feishu/config.json(不随插件副本、重装不丢):
mkdir -p ~/.atomcode/feishu
cp <插件目录>/plugins/feishu/config.example.json ~/.atomcode/feishu/config.json
# 编辑:appId、appSecret(飞书开放平台应用凭证)、daemonBaseUrl、workingDir
4. 自动启动
atomcode 启动时 SessionStart hook 自动拉起 sidecar(WebSocket 连接飞书),无需手动操作。
开发/调试也可在终端跑:
cd plugins/feishu/atomcode && node src/launch.js
前置:daemon(可自动启动)
与微信渠道相同:sidecar 启动时自动探测并拉起 daemon。要求 SessionMode::Channel 构建。
配置字段
| 字段 | 说明 |
|---|---|
appId |
飞书开放平台 App ID(必填) |
appSecret |
飞书开放平台 App Secret(必填) |
domain |
"Feishu" (国内) 或 "Lark" (海外),默认 "Feishu" |
daemonBaseUrl |
atomcode daemon 地址,默认 http://127.0.0.1:13456 |
workingDir |
默认工作目录(沙箱) |
allowlist |
聊天 ID 白名单,空=放行所有 |
provider |
指定模型 provider,空=daemon 默认 |
thinkingAck |
turn 开始发「🤔 正在思考…」,默认 true |
daemonCmd |
未起 daemon 时自动拉起命令 |
policy.requireMention |
群聊中是否要求 @机器人 才响应,默认 true |
policy.dmMode |
私聊策略:"open" (所有私聊响应) / "allowlist" |
飞书渠道优势
| 特性 | 说明 |
|---|---|
| 交互式卡片审批 | 工具执行审批用按钮点击,无需手动输入 y/n |
| 无需扫码登录 | appId + appSecret 直连,无登录步骤 |
| WebSocket 长连接 | SDK 内置自动重连 + keepalive 看门狗 |
| 消息归一化 | SDK 处理文本/图片/文件/表情等,统一 NormalizedMessage 格式 |
| 安全管道 | SDK 内置去重、防重放、策略门(requireMention、dmMode) |
| 无需公网域名 | WebSocket 出站连接,无需回调 URL |
控制命令
/pwd— 查看当前工作目录/cd <path>— 切换工作目录(切换后开新会话);/cd无参回到默认目录
日志
sidecar 日志:${TMPDIR}/atomcode-feishu.log。
项目介绍
可用于将 AtomCode 接入微信或飞书,在 IM 内收发消息并审批工具执行。项目提供渠道插件市场,内置微信 iLink 与飞书长连接插件,支持外置配置、自动拉起 daemon、白名单与卡片审批。【此简介由AI生成】
定制我的领域