MCPInstall

feishu-cli-okr

飞书 OKR 查询与进度上报。okr cycle list 列租户级 OKR 周期; okr progress list/create 查/创建进度记录。 注意:sourceurl 字段 API 强制必填,默认占位 https://www.feishu.cn/okr/progress 可改。 使用 SDK Okr.ProgressRecord + v1/periods HTTP 直调(v2/cycles 不存在)。 当用户请求"查 OKR 周期"、"上报 OKR 进度"、"OKR 更新"时使用。

Installs
151
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/riba2534/feishu-cli --skill feishu-cli-okr
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads feishu-cli-okr automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

飞书 OKR 查询与进度上报技能

通过 feishu-cli 查询 OKR 周期、列出/创建进度记录。覆盖 OKR 最高频的 3 个操作。

feishu-cli:如尚未安装,请前往 riba2534/feishu-cli 获取安装方式。

核心概念

OKR 数据模型

飞书 OKR 由 4 层对象组成,本技能涉及前 3 层:

层级对象说明本技能命令
1Period(周期)租户级全局,如 2026-Q1。所有成员看到的周期一致cycle list
2Objective(目标 O)一个周期内的目标,归属用户仅做引用(--objective-id)
3Key Result(关键结果 KR)O 下的可量化结果仅做引用(--key-result-id)
4Progress Record(进展记录)O 或 KR 下的一条进展更新progress list/create

关键约束:

  • 周期是租户级的,cycle list 没有 user_id 参数——所有人看到的周期相同。你不能"查某人的 OKR 周期",只能"查租户当前都有哪些周期"。
  • Objective ID 和 Key Result ID 二选一(不是同时):每条进展记录只能挂在一个目标 或 一个关键结果上。
  • 进展记录可以独立于周期:API 不需要传 period_id,但通常一个 O/KR 都属于一个 period。

身份:应用 Token / Tenant Token

OKR 模块当前强制使用 应用 Token / Tenant Token。实测 OKR 服务端拒绝 User Token(99991668 user access token not support),因此命令不读取 --user-access-token,也不需要 auth login。

  • 需要在飞书开放平台为应用开通 OKR tenant scopes
  • 本地只需配置 FEISHU_APP_ID / FEISHU_APP_SECRET 或 config.yaml
  • 如服务端返回 99991672,按错误里的开放平台链接申请对应应用权限

命令速查

子命令说明必填参数
okr cycle list列出当前租户所有 OKR 周期—
okr progress list列出某 O/KR 下的所有进展--objective-id 或 --key-result-id
okr progress create创建一条新进展目标 ID(二选一)+ 内容(二选一)

cycle list — 查租户 OKR 周期

# 默认文本输出(带名称 + 时间 + 状态)
feishu-cli okr cycle list

# JSON 输出(脚本消费)
feishu-cli okr cycle list --output json

输出字段:

  • id — 周期 ID(后续创建 O/KR 时会用,本技能不涉及)
  • zh_name / en_name — 周期名称(如 "2026-Q1")
  • start_time / end_time — 周期起止时间
  • cycle_status — 周期状态(如 normal / archived)

实现细节:底层走 HTTP 直调 /open-apis/okr/v1/periods,自动分页。

progress list — 查进展记录列表

# 查目标下的所有进展
feishu-cli okr progress list --objective-id 7123456789012345678

# 查关键结果下的所有进展
feishu-cli okr progress list --key-result-id 7123456789012345678

# JSON 输出
feishu-cli okr progress list --objective-id 7xxx --output json

参数:

参数说明默认值
--objective-id目标 ID(与 --key-result-id 二选一)—
--key-result-id关键结果 ID(与 --objective-id 二选一)—
--user-id-type用户 ID 类型:open_id / union_id / user_idopen_id
-o, --output输出格式:json文本

输出字段:

  • progress_id — 进展 ID
  • create_time / modify_time — 创建/修改时间(已转本地时区 YYYY-MM-DD HH:MM:SS)
  • progress_rate.percent / progress_rate.status — 进度百分比和状态(如果有)

progress create — 创建进展记录

最常用:周报/日报中手动同步进度。

最简形式(纯文本)

feishu-cli okr progress create \
  --objective-id 7123456789012345678 \
  --content "本周完成核心模块联调,下周开始联调测试"

CLI 会自动把纯文本包装成飞书 ContentBlock 富文本 JSON(paragraph + textRun)。

带进度百分比

feishu-cli okr progress create \
  --key-result-id 7123456789012345678 \
  --content "完成 8/10 任务" \
  --progress-percent 80 \
  --progress-status normal
  • --progress-percent 数字(0-100)
  • --progress-status 取值:normal(正常)/ risky(有风险)/ overdue(已延期)— v1 PR 修正:飞书官方枚举不含 done,旧文档说的 done 实际就是 overdue
  • ⚠️ --progress-status 必须配合 --progress-percent 使用,单独传 status 会报错

富文本(ContentBlock JSON)

需要 @某人、嵌入链接、加粗等富文本场景:

feishu-cli okr progress create \
  --objective-id 7xxx \
  --content-json '{"blocks":[{"type":"paragraph","paragraph":{"elements":[{"type":"textRun","textRun":{"text":"加粗内容","style":{"bold":true}}}]}}]}'

--content 和 --content-json 互斥,只能填一个。

自定义 source(来源标题 + URL)

feishu-cli okr progress create \
  --objective-id 7xxx \
  --content "本周完成 X" \
  --source-title "周报:W18" \
  --source-url "https://xxx.feishu.cn/docx/abc123"

进展卡片在飞书 OKR 页面会展示来源标题,点击跳转 URL。

完整参数表

参数说明默认值
--objective-id目标 ID(与 --key-result-id 二选一)—
--key-result-id关键结果 ID(与 --objective-id 二选一)—
--content纯文本内容(与 --content-json 二选一)—
--content-json原始 ContentBlock JSON(与 --content 二选一)—
--progress-percent进度百分比(数字)—
--progress-status进度状态:normal / risky / overdue—
--source-title来源标题(flag 注册默认空字符串,运行时 client 层注入默认值 created by feishu-cli)created by feishu-cli
--source-url来源 URL(⚠️ API 必填;flag 注册默认空字符串,运行时 client 层注入默认值 https://www.feishu.cn/okr/progress)https://www.feishu.cn/okr/progress
--user-id-type用户 ID 类型open_id
-o, --output输出格式:json文本

⚠️ 关键踩坑

1. source_url 字段 API 强制必填

飞书 OKR progress_record/create API 在 source 字段下强制要求 url,不传会直接报错。CLI 已经默认填了占位值 https://www.feishu.cn/okr/progress,但建议显式覆盖为有意义的 URL(如周报文档地址),这样进展卡片在 OKR 页面才有真正的跳转价值。

2. cycle 路径是 v1/periods 不是 v2/cycles

历史上有过混淆——飞书 OKR 周期 OpenAPI 的正确路径是:

GET /open-apis/okr/v1/periods   ✅ 真实存在
GET /open-apis/okr/v2/cycles    ❌ 不存在,404

cycle list 命令的 cycle 是 CLI 子命令名(更符合用户直觉),实际调用走 v1/periods。如果手动拼 HTTP 请求时不要写错。

3. progress create 走 SDK,cycle list / progress list 走 HTTP 直调

实现层面有分工:

命令实现方式
progress create飞书 Open SDK v3.5.3 的 Okr.ProgressRecord.Create
cycle list通用 HTTP client 直调 /open-apis/okr/v1/periods
progress list通用 HTTP client 直调(按 target 类型分两条路径):<br>• OKRTargetObjective: /open-apis/okr/v2/objectives/{id}/progresses<br>• OKRTargetKeyResult: /open-apis/okr/v2/key_results/{id}/progresses

原因:SDK 在 v3.5.3 版本只暴露了 progress record 的 Create 方法(没有 List/Get/Update/Delete),其他能力都得自己拼 HTTP。

4. cycle 是租户级,没有 user_id 参数

不要试图传 --user-id 给 cycle list——周期是全租户共享的,所有成员看到的都是同一份列表。这点容易被"OKR 是个人目标"的直觉误导。

权限要求(应用 Token / Tenant scope)

命令所需 scope(任一即可)
cycle listokr:okr:readonly 或 okr:okr.period:readonly
progress listokr:okr:readonly 或 okr:okr.progress:readonly
progress createokr:okr 或 okr:okr.progress:writeonly

这些是应用权限,不是 OAuth 用户授权;用开放平台应用权限管理页面开通。

典型工作流

周报同步进展

# 1. 查当前有哪些周期(可选,确认正在哪个 Q)
feishu-cli okr cycle list

# 2. 看某个目标历史进展(可选,回顾上次说了啥)
feishu-cli okr progress list --objective-id 7xxx

# 3. 同步本周进展
feishu-cli okr progress create \
  --objective-id 7xxx \
  --content "W18: 完成 X 和 Y,下周冲刺 Z" \
  --progress-percent 60 \
  --progress-status normal \
  --source-title "周报 W18" \
  --source-url "https://xxx.feishu.cn/docx/<your-weekly-doc-id>"

脚本化批量同步多个 KR 进展

for kr_id in 7xxx 7yyy 7zzz; do
  feishu-cli okr progress create \
    --key-result-id "$kr_id" \
    --content "自动同步: 当前推进中" \
    --output json
  sleep 1
done

未实现的能力(按需后续补 CLI)

以下 OKR API 飞书都支持,但本 PR 的 MVP 范围只覆盖 3 个最高频动词。internal/client 层已经部分实现,CLI 子命令暂未暴露:

能力状态
okr progress get <progress-id>❌ 未实现
okr progress update <progress-id>❌ 未实现
okr progress delete <progress-id>❌ 未实现
okr progress image upload❌ 未实现(图片素材上传)
okr objective list/get❌ 未实现
okr key-result list/get❌ 未实现
okr review list/query(评审/复盘)❌ 未实现

如有需要,提 issue 或 PR 时参考 cmd/okr_progress_create.go 的模式扩展。

错误处理

错误原因解决
必须指定 --objective-id 或 --key-result-id 之一没传目标 ID二选一传入
--objective-id 和 --key-result-id 只能填一个同时传了两个只保留一个
必须指定 --content 或 --content-json 之一没传内容二选一传入
--content 和 --content-json 只能填一个同时传了两个只保留一个
--progress-status 必须配合 --progress-percent 一起使用单独传 status加上 --progress-percent
--content-json 不是合法 JSONJSON 语法错误用 jq . 校验后再传
source_url is required 或类似飞书 API 强制必填CLI 已默认填占位,理论上不会触发;如出现请显式传 --source-url
99991672 / scope not authorized应用缺少 OKR tenant scope到开放平台应用权限管理开通 okr:okr* 相关权限
99991668 user access token not support使用了 User Token不传用户 token,使用应用身份运行

相关技能

  • feishu-cli-auth — 通用认证诊断;OKR scopes 需要在开放平台应用权限管理开通
  • feishu-cli-msg — 发飞书消息(进展同步后通知 leader/小组)
  • feishu-cli-toolkit — 综合工具箱(任务、日历等其他周报相关工具)

FAQ

What does the feishu-cli-okr skill do?

飞书 OKR 查询与进度上报。okr cycle list 列租户级 OKR 周期; okr progress list/create 查/创建进度记录。 注意:sourceurl 字段 API 强制必填,默认占位 https://www.feishu.cn/okr/progress 可改。 使用 SDK Okr.ProgressRecord + v1/periods HTTP 直调(v2/cycles 不存在)。 当用户请求"查 OKR 周期"、"上报 OKR 进度"、"OKR 更新"时使用。

How do I install feishu-cli-okr?

Run npx skills add https://github.com/riba2534/feishu-cli --skill feishu-cli-okr in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/feishu-cli-okr/ (personal) or .claude/skills/feishu-cli-okr/ (project).

Which AI agents can use feishu-cli-okr?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is feishu-cli-okr safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains feishu-cli-okr?

It is published by riba2534 in riba2534/feishu-cli. It has 151 recorded installs.

More from riba2534/feishu-cli

View all →

feishu-cli-toolkit

riba2534/feishu-cli

飞书轻量工具箱与分诊入口。仅在没有更专用 skill 时使用,主要覆盖普通电子表格、 日历/日程、任务/任务清单、基础文件/素材/评论、知识库、用户和部门查询、审批查询。 文档读写导入导出、云盘增强、多维表格、画板、消息/群聊、邮箱、搜索、权限、OAuth、 视频会议/妙记均优先使用对应 feishu-cli- 专用技能。 sheet filter-view/dropdown 优先用 feishu-cli-sheet;calendar suggestion/room-find/rsvp 优先用 feishu-cli-calendar。

feishu-cli-read

riba2534/feishu-cli

只读操作,不修改文档内容。读取飞书云文档、知识库内容或电子表格,分析文档结构。 支持普通 docx、普通 sheet、知识库 docx 和知识库 sheet。当用户请求"查看"、"阅读"、"分析"、"读取"、 "打开"、"read"、"view" 飞书文档、知识库或电子表格时使用。支持通过文档 ID、知识库 Token 或 URL 读取。 Markdown 仅作为分析中间态存放在 /tmp(不主动落地为用户文件);如需主动导出到本地路径请用 feishu-cli-export, 写入请用 feishu-cli-write。

feishu-cli-msg

riba2534/feishu-cli

飞书消息发送。发送消息(text/post/interactive 卡片等 10 种类型:text/post/image/file/audio/media/sticker/interactive/sharechat/shareuser;system 分割线 CLI 暂未直接支持,需用 feishu-cli api 透传)、回复消息、 转发/合并转发、消息加急、消息书签(flag 收藏/list/cancel)、下载消息资源(图片/文件)。 发送/回复/转发/加急默认 App Token(Bot 身份);msg flag 收藏/书签必需 User Token(im:feed.flag:read/write); msg resource-download 已登录时优先 User Token,未登录回落 App Token。 当用户明确请求通过飞书即时消息/Bot 消息发送、回复、转发、合并转发、加急、消息收藏/书签、 下载消息图片或文件时使用。邮件走 feishu-cli-mail;文档评论/共享权限走对应 skill。 注意:Reaction/Pin/获取消息详情/批量获取消息/话题回复/消息历史/搜索群聊/群聊管理, 以及消息删除(默认 App Token 用于 Bot 自撤回,可选 User Token 让管理员撤回他人) 请使用 feishu-cli-chat 技能。 发送 interactive 卡片时,先用 feishu-cli-card 构造 v2 JSON, 再回到本技能用 --msg-type interactive --content-file 发送。

feishu-cli-write

riba2534/feishu-cli

向飞书文档写入内容、创建新文档、新建空白文档。支持 doc import 从 Markdown 创建、 doc content-update 精准追加/覆盖/替换/插入/删除,doc add/update/delete 低层块操作, 以及图片/文件插入。当用户请求创建文档、写文档、更新文档、替换章节、插入章节、 删除章节、追加内容、覆盖文档、插入图片或文件时使用。

feishu-cli-export

riba2534/feishu-cli

将飞书文档、知识库文档或电子表格导出到本地。支持 docx/wiki/sheet 导出 Markdown, doc export 内嵌电子表格自动展开,图片/画板素材下载,以及 doc export-file 异步导出 PDF/Word/Excel。当用户请求导出文档、保存为 Markdown、导出 PDF/Word/Excel、下载文档图片、 导出表格或表格转 Markdown 时使用。本地导入请用 feishu-cli-import 或 feishu-cli-drive。

feishu-cli-import

riba2534/feishu-cli

从 Markdown 文件导入创建飞书文档。支持嵌套列表、Mermaid/PlantUML 图表自动转画板、 大表格智能处理(超过 9 行用 inserttablerow API 追加保持单 block,超过 9 列拆分保留首列)、公式、Callout 高亮块。 内置飞书侧渲染规范(references/doc-guide.md + references/mermaid-spec.md), 覆盖图表花括号/par 等语法限制、表格 9 行/列阈值、Callout 6 种颜色映射等飞书兼容性规则。 当用户请求"导入 Markdown"、"从 md 创建文档"、"从 md 文件创建文档"、"把 Markdown 转换到飞书"、 "上传 Markdown"、"Markdown 转飞书"、"md 导入"、"批量导入",或排查"飞书 Mermaid 渲染失败"、 "Callout 颜色不对"、"飞书表格被拆"、"飞书文档导入兼容性"等问题时使用。 注意:仅支持 Markdown 源文件导入为飞书文档。Markdown 表格创建电子表格请用 feishu-cli-toolkit 的 sheet import-md; DOCX/XLSX 导入为云文档请使用 feishu-cli-drive 的 drive import。

Popular productivity & automation skills

View category →

agent-browser

vercel-labs/agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.

OfficialProductivity & Automation1.3M installs

lark-doc

open.feishu.cn

飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。

lark-base

open.feishu.cn

飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。

lark-drive

open.feishu.cn

飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。

lark-shared

open.feishu.cn

Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.

lark-im

open.feishu.cn

飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。