dsh-feishu-cli:在 DSH 里用二维码登录并驱动飞书官方 CLI

前言

在 DeepSeek Harness(DSH)里让 Agent 读写飞书消息、日历、云文档或多维表格,常见做法是自行拼装 OpenAPI 调用、维护 token 与 scope。飞书官方提供了 lark-cli,命令行覆盖多个业务域,但要在 DSH 侧边栏里完成扫码登录、查看身份状态,并在对话里稳定执行 CLI,仍需要一层与 Host 的集成。

下面介绍社区插件 dsh-feishu-cli(维护者 hoyin-law):把官方 CLI 接入 DSH Desktop / Web,增加「飞书」侧边栏面板,并向 Agent 注册 feishu_cli、feishu_auth 两个工具。插件本身不替代飞书 API,能力边界与 lark-cli 一致。

这是什么

dsh-feishu-cli 是 DSH 的客户端类插件:在 Web UI 挂载飞书面板,负责定位或下载 lark-cli、展示登录二维码与命令输出;Host 侧封装 CLI 的执行与登录会话。真正访问飞书的是官方 larksuite/cli,登录与授权以你本机飞书账号及所授 scope 为准。README 明确说明这是社区插件,不是飞书或 DeepSeek 官方产品。

核心功能

面板与登录

  • 应用初始化:首次可在面板走官方 CLI 的一键建应用流程(扫码或打开链接),应用信息写入本机 lark-cli 配置。
  • 账号登录:面板展示二维码与授权链接,完成后显示已登录状态;可按业务域选择权限范围(消息、日历、云文档、多维表格、邮箱、任务、会议、通讯录等),或申请常用权限全集。
  • 身份状态:展示 App ID、登录用户、Open ID、已授权 scope 数量与过期时间,支持退出与取消进行中的登录。
  • 命令控制台:在面板输入 lark-cli 之后的命令,输出以等宽文本展示,并提供常用命令快捷入口。
  • CLI 安装引导:本机无 lark-cli 时,面板可触发下载安装(约 50MB,有进度与阶段提示)。

Agent 工具

  • feishu_cli:执行任意 lark-cli 命令(不经过 shell,不支持管道与重定向)。
  • feishu_auth:查看状态、发起应用初始化或账号登录、等待授权、退出、列出用户、取消登录。

README 归纳的覆盖面:18 个业务域、200+ 高层命令(+shortcut),以及通过 lark-cli api 调用的全量 OpenAPI(如 im、docs、base、sheets、calendar、mail、task、vc、审批、通讯录、云空间、知识库等)。Meegle(飞书项目)需单独 meegle-cli,不在本插件范围内。

环境与依赖

  • DSH Desktop 或 dsh web,且能安装 profile bundle;package.json 中 engines.dsh 为 >=0.2.1-rc.2 <0.3.0-0。
  • Windows(x64 / ARM64)、macOS(Intel / Apple 芯片)、Linux(x64 / ARM64 / RISC-V)。
  • 首次使用需联网下载对应平台的官方 lark-cli(README 写明推荐版本 1.0.98,解压至 $DSH_HOME/feishu-cli/bin,并按 SHA-256 校验);企业或离线环境可通过 LARK_CLI_BIN、FEISHU_CLI_HOME、FEISHU_CLI_DOWNLOAD_BASE 等环境变量控制二进制位置与下载源。

界面语言跟随 DSH 设置,支持中文与英文。

安装与启用

推荐从 GitHub 安装 main 分支源码包。Desktop 用户将命令中的 web 换成 desktop:

dsh plugin --profile web add github:hoyin-law/dsh-feishu-cli
dsh plugin --profile desktop add github:hoyin-law/dsh-feishu-cli

若已发布到 npm,也可按包名安装:

dsh plugin --profile web add dsh-feishu-cli

也可下载 v1.0.0 Release 中的 dsh-feishu-cli.tgz 后本地安装:

dsh plugin --profile web add ./dsh-feishu-cli.tgz

安装完成后重启 DSH,侧边栏会出现「飞书」入口。卸载示例:

dsh plugin --profile web remove dsh-feishu-cli

典型用法

首次使用:两步扫码

  1. 初始化应用(仅第一次):侧边栏打开「飞书」→「第 1 步 · 初始化飞书应用」→ 按提示在浏览器或飞书 App 中创建应用并授权。
  2. 登录账号:在「登录飞书账号」卡片扫码或打开链接确认授权;面板显示「已登录 · 你的名字」即完成。之后通常只需第 2 步;过期时面板会提示重新登录。

面板命令控制台

输入内容为 lark-cli 之后的 argv,例如:

  • calendar +agenda — 今日议程
  • task +list — 我的任务
  • im +chats-list — 群列表
  • docs +search --query 周报 — 搜索云文档
  • base +records-list --app-token xxx --table-id xxx — 读取多维表格记录
  • api GET /open-apis/calendar/v4/calendars — 直接调用 OpenAPI

Agent 调用示例

执行 CLI:

feishu_cli command="calendar +agenda"
feishu_cli command="im +messages-send --chat-id oc_xxx --text 你好"
feishu_cli command="docs +search --query 周报"
feishu_cli command="api GET /open-apis/calendar/v4/calendars"

可选参数包括 cwd、timeout_ms(默认 120000,范围 1000–600000)、stdin。

登录与身份:

feishu_auth action="status"
feishu_auth action="login_start" mode="init"
feishu_auth action="login_start" mode="login"
feishu_auth action="login_wait" login_id="..."
feishu_auth action="logout"
feishu_auth action="list"
feishu_auth action="login_cancel" login_id="..."

约定要点:默认输出 JSON,成功看 ok == true;写操作可先 --dry-run;退出码 10 表示 high-risk-write,需确认后在命令末尾加 --yes 重试。文件路径参数仅接受工作目录下的相对路径,必要时用 cwd 指定目录。

适用场景与注意

适合:已在 DSH 中开发 Agent,希望用同一套官方 CLI 语法操作飞书/Lark,并在 UI 里完成扫码登录与命令试跑;需要覆盖多业务域 shortcut 或直接 api 调 OpenAPI 的团队个人工作流。

权限与安全(摘自 README):

  • Agent 以你登录时授权的用户身份调用 API,请按需选择最小 scope;企业租户下创建自建应用或 scope 可能需要管理员审批。
  • 凭据由 lark-cli 存放在 ~/.lark-cli,插件不额外保存 app secret 或 access token。
  • 面板 Web API(/feishu-cli/api/*)仅接受同源、application/json 的 POST。
  • 第三方插件以当前 DSH 进程的用户权限运行;安装前请审阅源码与 SECURITY.md、PRIVACY.md。插件代码以 MIT 许可发布(当前 npm 包版本 1.0.0)。

DSH 生态采用「一切皆插件」;社区目录 SkillHub 插件页 为独立站点条目,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-feishu-cli 把飞书官方 CLI 搬进 DSH:侧边栏二维码登录、命令控制台,以及 feishu_cli / feishu_auth 供 Agent 复用同一套命令与 OpenAPI。经过上面的步骤安装并重启后,即可按「初始化应用 → 登录账号」完成首次配置,再在面板或对话中执行具体业务命令。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜