FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

umbrellage/feishu-claude-code: cc-feishu 通道 · GitHub

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Feishu Claude Code Channel

通过飞书机器人连接本地 Claude Code CLI,在飞书中直接与 Claude Code 对话。

复用 Claude Max/Pro 订阅,不需要 API Key,不需要公网 IP。

功能

  • 流式回复 — Claude 边生成边推送,卡片实时更新
  • 图片识别 — 发截图直接分析(base64 多模态,不绕路)
  • 多轮对话 — 基于 Claude Code session 持久化,重启不丢上下文
  • 工具进度显示 — 实时显示 🔧 Bash(npm install)... 等工具调用状态
  • 新消息中断旧任务 — 不用等上一次执行完
  • 模型切换 — /model opus、/model sonnet、/model haiku
  • 会话管理 — /resume 恢复历史会话,从 ~/.claude/history.jsonl 读取
  • 工作目录切换 — /cd ~/project 为不同项目切换目录
  • 群聊支持 — @机器人触发,每个群独立 session

架构

飞书用户 ◄──WebSocket长连接──► 飞书开放平台 ◄──WebSocket──► Bot Server
                                                            │
                                                            ├── 消息路由 & 会话管理
                                                            ├── Claude Code CLI (stdin → stream-json)
                                                            └── 飞书卡片 PATCH 实时更新

核心原理: Bot 通过飞书 WebSocket 长连接接收消息,spawn Claude Code CLI 进程,通过 stdin 写入消息,解析 stream-json 输出,实时推送回复到飞书卡片。

前置条件

  • Node.js 18+
  • Claude Code CLI 已安装并可用(claude --version)
  • Claude Max/Pro 订阅
  • 飞书开放平台应用(已有 App ID 和 App Secret)

飞书开放平台配置

  1. 创建应用 → 添加机器人能力
  2. 权限管理 → 开启:
    • im:message — 获取与发送消息
    • im:message:send_as_bot — 以机器人身份发消息
    • im:resource — 获取消息中的资源文件(图片)
    • im:message:update — 更新消息(流式卡片 PATCH)
  3. 事件订阅 → 选择长连接模式 → 添加 im.message.receive_v1
  4. 发布应用

快速开始

git clone https://github.com/umbrellage/feishu-claude-code.git
cd feishu-claude-code

npm install
cp .env.example .env
# 编辑 .env 填入飞书 App ID 和 App Secret

npm run dev

配置

编辑 .env 文件:

FEISHU_APP_ID=cli_xxx          # 飞书应用 App ID
FEISHU_APP_SECRET=xxx          # 飞书应用 App Secret
CLAUDE_CLI_PATH=claude         # Claude CLI 路径
PERMISSION_MODE=bypassPermissions  # 权限模式
DEFAULT_MODEL=                 # 默认模型(留空用 Claude Code 默认)
DEFAULT_CWD=~                  # Claude 默认工作目录
LOG_LEVEL=info                 # 日志级别

命令

会话管理

命令 说明
/new 开始新会话
/resume 列出历史会话
/resume <编号> 恢复指定会话
/stop 停止当前任务
/status 查看当前 session、模型、工作目录

模型与工作目录

命令 说明
/model opus 切换到 Opus
/model sonnet 切换到 Sonnet
/model haiku 切换到 Haiku
/cd ~/project 切换工作目录

项目结构

src/
├── index.ts              # 入口:WebSocket 连接 + 消息路由 + 命令分发
├── config.ts             # 环境变量配置
├── feishu/
│   ├── auth.ts           # 飞书客户端初始化
│   └── message.ts        # 消息收发 + 图片下载(base64) + 卡片更新
├── claude/
│   ├── process.ts        # Claude CLI 进程管理(stdin/stdout、中断、超时)
│   ├── stream.ts         # stream-json + stream_event 解析
│   └── session.ts        # 会话管理(~/.claude/history.jsonl)
└── utils/
    └── logger.ts         # 日志

注意事项

  • 不需要公网 IP,使用飞书 WebSocket 长连接
  • 会话数据保存在 data/sessions.json 和 ~/.claude/ 下,重启不丢失
  • Claude Code CLI 每条消息启动一个进程,处理完自动退出
  • PERMISSION_MODE=bypassPermissions 会跳过工具调用确认,注意安全风险
  • im:message:update 权限必须开启,否则流式卡片不会刷新

License

MIT

About

cc-feishu 通道

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages


Back | FazBrowse Home | New Git URL