Skip to content
DuseusPublic

About

aiduCAT☤爱嘟可爱糖 = Claude-code Agent Texting · 飞书泡波流式卡(Claude Code / Codex)

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

aiduCAT☤爱嘟可爱糖 — Claude-code Agent Texting · 飞书泡波流式卡

aiduCAT 爱嘟可爱糖 · 泡波横幅(aidu 家族同款)

aiduCAT = Claude-code Agent Texting ——一只住在飞书里的猫,随时替你敲代码

提问在上方,过程收进一只小面板,结果由面板颜色说话。

给 Claude Code / Codex CLI 穿上泡波流的飞书卡片:宣白纸面上灌一道深蓝流光,一只猫,零噪音。

Version License: MIT Node 20+ Claude Code aiduCAT

中文 | 📖 English

分发说明:aiduCAT 不发 npm / PyPI 安装包,直接从本仓库源码运行(npm install && npm run build)。源码中的 .bin 入口仅用于本地开发与测试。


aiduCAT 是什么?

aiduCAT☤爱嘟可爱糖,全称 Claude-code Agent Texting(Claude 代码代理短信/消息化),是给 Claude Code / Codex CLI 装上的一只飞书猫 —— 把本地编程 agent 的思考、工具调用和最终答案,实时装进一张仿 aiduPOP 泡波样式的飞书流式卡片。

aiduCAT 起源并致敬上游 zarazhangrui/lark-coding-agent-bridge(npm 包 lark-channel-bridge),在MIT 协议的代码基础之上,做了一套完整的泡波化改造:

特性 说明
🏷 Hermes 顶层彩头 飞书原生 Header Banner:运行中蓝色 💭 处理中... ⚡ <工具名>;完成绿色 ✅ 已完成;出错/中断红色
🫧 单面板过程收纳 答案流式显示在上方;思考与工具调用收进一只折叠面板;面板标题精简为 🧠 N 轮 · 🛠️ N 个工具 · ⏳ N.N 秒
📊 Hermes 底部状态行 任务结束后在卡片末尾插入 hr 分割线与小字 notation 状态行:✅ 已完成 · 7s · 28.2k/1M (3%) · ⚕default
👩🏻‍💻 工具专属 emoji Bash👩🏻‍💻 Read👩🏻‍🏫 Edit👩🏻‍🔧 Write👩🏻‍🎨 Grep🕵🏻 Glob🥷🏻 Web👩🏻‍🚀 Agent👯🏻 —— 每类工具一个脸
🚦 边框即状态 完成绿 / 停止黄 / 出错红 —— 面板边框颜色直观反映执行结果
🎹 打字机反应 消息一落就打上敲键盘表情;真正开跑立刻消失,干净利落
🗣 /model 自由切模型 免费 pass-through 任意 gateway combo id(如 Gemini-3.8-Flash),不做白名单收口
📝 文案点菜单 全部展示文案列成 wiki 表格,按行点菜式定制

快速开始

git clone https://github.com/monkey2jack/aiduCAT.git
cd aiduCAT
npm install
npm run build

# 前台运行(首次启动扫码绑定 PersonalAgent 应用)
npm run dev -- run

需要 Node.js >= 20.12.0,且本机已装好 Claude Code 或 Codex CLI。

首次运行会做三件事:渲染绑定二维码 → 让你扫码并选择/创建 PersonalAgent 应用 → 把配置写入 ~/.lark-channel/config.json。

常用命令

飞书内斜杠命令

命令 效果
/help 列出所有命令
/model 查看 / 切换模型(支持任意 gateway combo id;/model default 还原默认)
/new 中断当前任务并开新会话
/stop 停止当前正在运行的任务
/timeout [N|off] 设置会话空闲超时
/cd <path> 切换工作目录
/ws 管理命名工作区
/resume 恢复同会话历史
/status 显示运行状态
/config 调整展示偏好与访问策略

宿主机 CLI

aiduCAT run      # 前台运行
aiduCAT start    # 后台守护进程(launchd/systemd)
aiduCAT status
aiduCAT stop
aiduCAT ps
aiduCAT kill <id|#>

卡片长相

一张卡,三段式:

[顶部彩色 Header: 💭 处理中... / ✅ 已完成]

[模型长答案,流式打字]

┌────────────────────────────────────────┐
│ 🧠  1 轮 · 🛠️  0 个工具 · ⏳  0.0 秒    │  ← 过程折叠面板标题
└────────────────────────────────────────┘

──────────────────────────────────────────  ← 底部分割线
✅ 已完成 · 28.2k/1M (3%) · ⚕Gemini-3.8-Flash ← 底部 notation 状态行
  • 顶部彩色 Header:飞书原生 Header Banner(流式中为蓝色,调用工具时带 ⚡ 跑命令/读文件/改文件 等白话提示;结束变为绿色 ✅ 已完成 或红色 ❌ 出错)
  • 中间折叠面板:标题精简展示过程概览 🧠 N 轮 · 🛠️ N 个工具 · ⏳ N.N 秒;展开后可查看思考脉络与各个工具调用的输入输出;边框颜色说结果 —— 完成绿 / 停止黄 / 出错红
  • 底部状态行:结束时追加分割线 hr,小字 notation 输出完整统计:状态 · 上下文用量及比例 · ⚕模型名,开启 wide_screen_mode: true 保证单行不折行。

会话与队列

  • 每个私聊 / 群 / 话题 / 文档评论独立会话
  • 快速连发的消息自动合并处理;运行中再来的消息进入队列,等这轮跑完作为下一轮输入
  • 会话历史本地持久化,/resume 恢复

运行时说明

按 profile 的服务与 CLI

守护进程为每个 PersonalAgent 应用安装一个按 profile 的服务(per-profile service):macOS launchd ai.lark-channel-bridge.bot.<profile>、Linux systemd lark-channel-bridge.bot.<profile>.service、Windows 计划任务 LarkChannelBridge.Bot.<profile>(经 .cmd 包装启动)。宿主机 CLI 参考:

aiduCAT profile create claude --agent claude
aiduCAT profile create codex --agent codex
aiduCAT profile list
aiduCAT profile use <name>
aiduCAT profile remove <name>            # 归档本地状态
aiduCAT profile remove <name> --purge --yes
aiduCAT profile export <name> [--output ./profile.json] [--force]
aiduCAT profile export <name> --include-secrets --yes

会话内访问控制

私聊无需 @;群与话题默认需要 @bot。直接在聊天里管理访问:

/invite user @name     允许某用户私聊
/invite admin @name    添加访问控制管理员
/invite group          允许某个群
/invite all group      允许所有群
/remove user @name
/remove admin @name
/remove group

云文档评论

云文档评论按文档权限生效(document-scoped):评论触发的运行跟随文档本身的权限,而不是单独的访问闸门。在受支持的文档评论中 @ 机器人即可运行。

lark-cli 身份策略

每个 profile 使用独立的当前 profile 的 lark-cli 目录:~/.lark-channel/profiles/<profile>/lark-cli。agent 进程会拿到指向该目录的 LARKSUITE_CLI_CONFIG_DIR,因此一个 profile 里的个人授权不会被另一个 profile 共享。默认策略 bot-only;/config 可把已授权用户切到 user-default。/status 显示摘要(lark-cli: app / lark-cli: user-ready)。

这套 lark-cli 身份策略是按 profile 隔离的,不是全局的。

工作目录与工作区

每个 profile 可通过 workspaces.default 定义默认工作目录。/cd 切换当前目录并重置会话;/ws 保存并复用命名工作区(/ws list、/ws save <name>、/ws use <name>、/ws remove <name>)。工作目录只是 agent 的当前目录,不是文件系统沙箱 —— 实际文件访问仍取决于本地 agent 进程及其权限模式。

权限(permissions)

访问由标准的 "permissions" 块控制:

{
  "permissions": {
    "defaultAccess": "full",
    "maxAccess": "full"
  }
}

把任一值设为 workspace 或 read-only 可收紧 profile。旧版 sandbox 配置键已不再读取(legacy sandbox keys are ignored)。

开发

pnpm install
pnpm test
pnpm typecheck
pnpm build

致谢


用 💕 制作 by aidu

License

MIT

About

aiduCAT☤爱嘟可爱糖 = Claude-code Agent Texting · 飞书泡波流式卡(Claude Code / Codex)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages