AI Skill
Pass
Audit score 90

lark-task

larksuite/cli

Manage Feishu/Lark tasks, tasklists, subtasks, members, attachments, and AI agents via CLI

What is lark-task?

lark-task is a skill for coding agents that enables full lifecycle management of Feishu (Lark) tasks through the lark-cli tool. It supports creating and updating tasks, managing subtasks, assigning members, organizing tasklists, uploading attachments, searching and listing tasks by various criteria, and registering/managing AI task agents. It wraps the Lark Task v2 OpenAPI and exposes both high-level shortcuts and raw API access.

  • Create, update, complete, reopen, and delete tasks and subtasks
  • Assign members and followers to tasks; manage tasklist membership
  • Search tasks by keyword or list tasks related to/assigned to the current user
  • Create and manage tasklists, including adding tasks and managing sections
  • Upload local file attachments to tasks
  • Register/unregister AI task agents, update agent homepage data, and write agent task step records

How to install lark-task

npx skills add null --skill lark-task
Prerequisites
  • lark-cli must be installed and available in PATH
  • Lark app credentials configured with appropriate OAuth scopes (e.g. task:task:write, task:tasklist:read)
  • lark-shared SKILL.md must be read first for authentication setup
  • User or tenant access token must be available for API calls
Claude Code
Cursor
Windsurf
Cline

How to use lark-task

  1. 1.Install the skill: npx skills add null --skill lark-task
  2. 2.Read lark-shared/SKILL.md to configure authentication before using any commands
  3. 3.Run `lark-cli task --help` to see available subcommands
  4. 4.Before calling any raw API, run `lark-cli schema task.<resource>.<method>` to inspect required parameters
  5. 5.Use shortcuts like `+create`, `+assign`, `+complete` for common task operations
  6. 6.Use `+get-my-tasks` or `+get-related-tasks` to list tasks by scope; use `+search` only when a keyword query is provided
  7. 7.Use `+tasklist-create` and `+tasklist-task-add` to organize tasks into lists
  8. 8.Use `+upload-attachment` to attach local files to a task

Use cases

Good for
  • Creating a to-do item with a due date, reminder, and assignee in Feishu
  • Listing all tasks assigned to the current user or tasks the user is following
  • Breaking a large task into subtasks and tracking their completion status
  • Organizing tasks into named tasklists and managing collaborator access
  • Uploading a file attachment to an existing Feishu task
Who it's for
  • Developers building automation around Feishu task workflows
  • Project managers who want to manage Feishu tasks programmatically
  • Teams using Feishu as their task tracker and needing CLI/agent-driven task operations
  • AI agent developers integrating Lark task agents into their pipelines

lark-task FAQ

What is the difference between +search and +get-related-tasks?

+search is for keyword-based queries (e.g. task name or description fragment). +get-related-tasks lists tasks by scope conditions like 'tasks I follow' or 'tasks I created' without requiring a keyword. Use list-type shortcuts when no query keyword is provided.

How do I find the correct task GUID to use in update/delete operations?

The task GUID is the global unique identifier found in the Feishu task applink URL as the `guid` query parameter (e.g. `.../client/todo/task?guid=...`). It is not the display number like t104121.

Can I set a reminder without a due date?

No. Reminders (reminder) and repeat rules (repeat_rule) can only be set if a due date (due) is also provided.

Does this skill work for tasks inside Feishu Minutes (meeting notes)?

No. Tasks inside Feishu Minutes should use the lark-minutes skill with the `minutes +todo` shortcut. This skill is for standalone Feishu Task Center tasks only.

How are people fields like assignees displayed in task details?

The skill instructs the agent to resolve open_id values to real names using the contacts/directory skill in addition to showing the raw ID, so users can identify people easily.

Full instructions (SKILL.md)

Source of truth, from larksuite/cli.


name: lark-task version: 1.0.0 description: "飞书任务:管理任务、清单和任务智能体。创建待办任务、查看和更新任务状态、拆分子任务、组织任务清单、分配协作成员、上传任务附件、注册或注销任务智能体、更新任务智能体的主页数据、写入智能体任务记录。当用户需要创建待办事项、查看任务列表、跟踪任务进度、管理项目清单或给他人分配任务、为任务上传附件文件、注册注销任务智能体、更新智能体主页数据、写入任务记录时使用。" metadata: requires: bins: ["lark-cli"] cliHelp: "lark-cli task --help"

task (v2)

CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理

任务搜索技巧:先区分用户是否特地指定使用搜索 skill,以及是否真的提供了查询关键字(例如任务名称、关键词、片段描述)。如果用户特地指定使用搜索 skill,或明确给出了任务查询关键字,则目标是任务时优先使用 +search。如果用户没有特地指定使用搜索 skill,且意图里没有查询关键字,只有范围条件(例如“今年以来”“已完成”“由我创建”“我关注的”),并且使用 +search+get-related-tasks / +get-my-tasks 都能达到目的时,应优先使用列表型能力,而不是搜索型能力。其中,“与我相关 / 我关注的 / 由我创建”等优先考虑 +get-related-tasks;“我负责的 / 分配给我”的列表优先考虑 +get-my-tasks。不要把时间范围词(例如“今年以来”)本身误当成 query 去走搜索。 任务清单搜索技巧:任务清单也遵循同样的判断逻辑。先区分用户是否特地指定使用搜索 skill,以及是否真的提供了清单查询关键字(例如清单名称、关键词、片段描述)。如果用户特地指定使用搜索 skill,或明确给出了清单查询关键字,则优先使用 +tasklist-search。如果用户没有特地指定使用搜索 skill,且意图里没有查询关键字,只有范围条件(例如“由我创建的任务清单”“今年以来创建的清单”),并且使用搜索或原生列取清单都能达到目的时,应优先使用原生 tasklists.list 接口列取清单(先 schema task.tasklists.list,再 lark-cli task tasklists list --as user ...),再按 creatorcreated_at 等字段做本地筛选和分页控制。 意图区分补充:像“搜索飞书中今年以来我关注的任务”这类表达,虽然字面带有“搜索”,但如果没有真正的查询关键字,且本质是在限定“与我相关 + 时间范围”,则应优先走 +get-related-tasks;像“搜索飞书中由我创建的任务清单”这类表达,如果没有清单关键字,且本质是在限定“清单范围 + 创建者”,则应优先走原生 tasklists.list 后筛选,而不是直接走搜索型 shortcut。 用户身份识别:在用户身份(user identity)场景下,如果用户提到了“我”(例如“分配给我”、“由我创建”),请默认获取当前登录用户的 open_id 作为对应的参数值。 术语理解 — 待办 disambiguation(必读)

  • 用户提到「待办 / todo / 任务」时,先判断归属,不要默认走本 skill。
  • lark-minutesminutes +todo(禁止本 skill):上下文含 妙记 / 会议纪要 / minute_token / 妙记 URL/minutes/);或「在某某妙记里新建/修改待办」「妙记 AI 待办」「会议录制里的待办」。
  • 走本 skill(lark-task):任务清单、分配给我、项目待办、截止日期/提醒、子任务、任务清单成员;或 applink 含 client/todo/task?guid=;或明确说「飞书任务」「任务中心」「我的任务清单」。
  • 禁止:用户要在妙记里加待办时,不要调用 task tasklists listtask +create 或任何 task 命令去「找清单再放任务」。 友好输出:在输出任务(或清单)的执行结果给用户时,建议同时提取并输出命令返回结果中的 url 字段(任务链接),以便用户可以直接点击跳转查看详情。

创建/更新注意

  1. 只有在设置了 due(截止时间)的情况下,才能设置 repeat_rule(重复规则)和 reminder(提醒时间)。
  2. 若同时设置了 start(开始时间)和 due(截止时间),开始时间必须小于或等于截止时间。
  3. 使用 tenant_access_token(应用身份)时,无法跨租户添加任务成员。

查询注意

  1. 在输出任务详情时,如果需要渲染负责人、创建人等人员字段,除了展示 id (例如 open_id) 外,还必须通过其他方式(例如调用通讯录技能)尝试获取并展示这个人的真实名字,以便用户更容易识别。
  2. 在输出清单详情时,如果需要渲染 owner、member、角色成员等人员字段,也必须像任务成员展示一样,除了展示 id 外,尽量解析并展示对应人员的真实名字。
  3. 在输出任务或清单详情时,如果需要渲染创建时间、截止时间等字段,需要使用本地时区来渲染(格式为2006-01-02 15:04:05)。

Task GUID 定义: Task OpenAPI 中用于更新/操作任务的 guid 是任务的全局唯一标识(GUID),不是客户端展示的任务编号(例如 t104121 / suite_entity_num)。 对于 Feishu 的任务 applink(例如 .../client/todo/task?guid=...),必须使用 URL query 里的 guid 参数作为 task guid。

Shortcut说明
+createcreate a task
+updateupdate task attributes
+set-ancestorset or clear a task ancestor
+commentadd a comment to a task
+completemark a task as complete
+reopenreopen a completed task
+assignassign or remove task members
+followersmanage task followers
+remindermanage task reminders
+get-my-tasksList tasks assigned to me
+get-related-taskslist tasks related to me
+searchsearch tasks
+upload-attachmentupload a local file as an attachment to a task
+tasklist-createcreate a tasklist and optionally add tasks
+tasklist-searchsearch tasklists
+tasklist-task-addadd tasks to a tasklist
+tasklist-membersmanage tasklist members

API Resources

lark-cli schema task.<resource>.<method>   # 调用 API 前必须先查看参数结构
lark-cli task <resource> <method> [flags] # 调用 API

重要:使用原生 API 时,必须先运行 schema 查看 --data / --params 参数结构,不要猜测字段格式。

tasks

  • create — 创建任务
  • delete — 删除任务
  • get — 获取任务详情
  • list — 列取任务列表
  • patch — 更新任务

tasklists

  • add_members — 添加清单成员
  • create — 创建清单
  • delete — 删除清单
  • get — 获取清单详情
  • list — 获取清单列表
  • patch — 更新清单
  • remove_members — 移除清单成员
  • tasks — 获取清单任务列表

subtasks

  • create — 创建子任务
  • list — 获取任务的子任务列表

members

  • add — 添加任务成员
  • remove — 移除任务成员

sections

  • create — 创建自定义分组
  • delete — 删除自定义分组
  • get — 获取自定义分组详情
  • list — 获取自定义分组列表
  • patch — 更新自定义分组
  • tasks — 获取自定义分组任务列表

custom_fields

  • create — 创建自定义字段
  • get — 获取自定义字段详情
  • patch — 更新自定义字段
  • list — 获取自定义字段列表
  • add — 将自定义字段加入资源
  • remove — 将自定义字段移出资源

custom_field_options

  • create — 创建自定义字段选项
  • patch — 更新自定义字段选项

agent

  • update_agent_profile — 更新任务代理的主页内容数据。
  • register_agent — 注册AI 智能体

agent_task_step_info

  • append_task_steps — 写入任务记录。

权限表

方法所需 scope
tasks.createtask:task:write
tasks.deletetask:task:write
tasks.gettask:task:read
tasks.listtask:task:read
tasks.patchtask:task:write
tasklists.add_memberstask:tasklist:write
tasklists.createtask:tasklist:write
tasklists.deletetask:tasklist:write
tasklists.gettask:tasklist:read
tasklists.listtask:tasklist:read
tasklists.patchtask:tasklist:write
tasklists.remove_memberstask:tasklist:write
tasklists.taskstask:tasklist:read
subtasks.createtask:task:write
subtasks.listtask:task:read
members.addtask:task:write
members.removetask:task:write
sections.createtask:section:write
sections.deletetask:section:write
sections.gettask:section:read
sections.listtask:section:read
sections.patchtask:section:write
sections.taskstask:section:read
custom_fields.createtask:custom_field:write
custom_fields.gettask:custom_field:read
custom_fields.patchtask:custom_field:write
custom_fields.listtask:custom_field:read
custom_fields.addtask:custom_field:write
custom_fields.removetask:custom_field:write
custom_field_options.createtask:custom_field:write
custom_field_options.patchtask:custom_field:write
agent.update_agent_profiletask:task:write
agent.register_agenttask:task:write
agent_task_step_info.append_task_stepstask:task:write

Related skills

More from larksuite/cli and the wider catalog.

LA

lark-doc

larksuite/cli

飞书云文档(Docx / Wiki 文档):读取和编辑飞书文档内容。当用户给出文档 URL 或 token,或需要查看、创建、编辑文档、插入或下载文档图片附件时使用。文档中嵌入的电子表格、多维表格、画板,先用本 skill 提取 token 再切到对应 skill。当用户给出 doubao.com 的 /docx/ 或 /wiki/ URL/token 时,也应直接使用本 skill;路由依据是 URL 路径模式和 token,而不是域名。不负责文档评论管理,也不负责表格或 Base 的数据操作。

293k installs
LA

lark-base

larksuite/cli

飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、workflow、角色权限;遇到 Base/多维表格/bitable 或 /base/ 链接时使用。文件导入转 lark-drive,认证/授权转 lark-shared。

292k installs
LA

lark-im

larksuite/cli

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

292k installs
LA

lark-drive

larksuite/cli

飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、评论/权限/订阅、标题、版本和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/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)。

292k installsAudited
LA

lark-shared

larksuite/cli

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.

291k installsAudited
LA

lark-calendar

larksuite/cli

飞书日历:管理日历日程和会议室。查看/搜索日程、创建/更新日程、管理参会人、查询忙闲和推荐时段、预定会议室。当用户需要查看日程安排、创建/修改会议、查询/预定会议室时使用。不负责:查询过去的视频会议记录(走 lark-vc)、待办任务(走 lark-task)。

291k installsAudited