lark-task
SkillCommunityAudited: no issuesTranslated from ChineseThis skill enables AI agents to manage tasks, task lists, and task-related workflows within Feishu. It supports creating and updating tasks, managing subtasks and attachments, organizing task lists, and handling agent-specific configurations like registration and activity logging.
npx skills add larksuite/cli/lark-tasktask (v2)
CRITICAL, Before starting, you MUST use the Read tool to read ../lark-shared/SKILL.md, which contains information on authentication and permission handling.
Task search tips: First, distinguish whether the user has specifically requested to use the search skill and whether they have actually provided query keywords (such as task names, keywords, or snippet descriptions). If the user specifically requests the search skill or provides explicit task query keywords, prioritize
+searchwhen the target is a task. If the user does not specifically request the search skill and there are no query keywords in the intent, but only scope conditions (such as "since this year," "completed," "created by me," or "followed by me"), and both+searchand+get-related-tasks/+get-my-taskscan achieve the goal, prioritize list-based capabilities over search-based ones. For "related to me / followed by me / created by me," prioritize+get-related-tasks; for lists of "tasks I am responsible for / assigned to me," prioritize+get-my-tasks. Do not mistake time range terms (such as "since this year") for aqueryto be used in a search. Tasklist search tips: Tasklists follow the same logic. First, distinguish whether the user has specifically requested to use the search skill and whether they have actually provided list query keywords (such as list names, keywords, or snippet descriptions). If the user specifically requests the search skill or provides explicit list query keywords, prioritize+tasklist-search. If the user does not specifically request the search skill and there are no query keywords in the intent, but only scope conditions (such as "tasklists created by me" or "lists created since this year"), and both search or native list retrieval can achieve the goal, prioritize the nativetasklists.listinterface (firstschema task.tasklists.list, thenlark-cli task tasklists list --as user ...), followed by local filtering and pagination control based on fields likecreatororcreated_at. Intent distinction supplement: Expressions like "search for tasks I follow in Feishu since this year," while literally containing "search," should prioritize+get-related-tasksif there are no actual query keywords and the essence is limiting by "related to me + time range." Expressions like "search for tasklists created by me in Feishu," if there are no list keywords and the essence is limiting by "list scope + creator," should prioritize nativetasklists.listfollowed by filtering, rather than a direct search-based shortcut. User identification: In user identity scenarios, if the user mentions "me" (e.g., "assigned to me," "created by me"), please default to retrieving theopen_idof the currently logged-in user as the corresponding parameter value. Terminology understanding: If the user mentions "todo," consider whether they mean "task" and prioritize using the commands provided by this Skill to handle it. Friendly output: When outputting task (or list) execution results to the user, it is recommended to extract and output theurlfield (task link) from the command return results so the user can click to view details directly.
Creation/Update notes:
repeat_rule(repeat rule) andreminder(reminder time) can only be set ifdue(due time) is set.- If both
start(start time) anddue(due time) are set, the start time must be less than or equal to the due time.- When using tenant_access_token (app identity), you cannot add task members across tenants.
Query notes:
- When outputting task details, if you need to render fields like assignee or creator, in addition to displaying the
id(e.g., open_id), you must attempt to retrieve and display the person's real name through other means (e.g., calling the address book skill) to make it easier for the user to identify them.- When outputting list details, if you need to render fields like owner, member, or role members, you must also attempt to resolve and display the corresponding person's real name in addition to the
id, just like with task members.- When outputting task or list details, if you need to render fields like creation time or due time, you must use the local time zone for rendering (format: 2006-01-02 15:04:05).
Task GUID definition: The
guidused in the Task OpenAPI for updating/operating tasks is the global unique identifier (GUID) of the task, not the task number displayed on the client (e.g.,t104121/suite_entity_num). For Feishu task applinks (e.g.,.../client/todo/task?guid=...), you must use theguidparameter from the URL query as the task guid.
Shortcuts
+create, Create a task+update, Update a task+comment, Add a comment to a task+complete, Complete a task+reopen, Reopen a task+assign, Assign or remove members from a task+followers, Manage task followers+reminder, Manage task reminders+get-my-tasks, List tasks assigned to me+get-related-tasks, List tasks related to me+search, Search tasks+subscribe-event, Subscribe to task events+set-ancestor, Set or clear a task ancestor+tasklist-create, Create a tasklist and batch add tasks+tasklist-search, Search tasklists+tasklist-task-add, Add existing tasks to a tasklist+tasklist-members, Manage tasklist members+upload-attachment, Upload a file as a task attachment
API Resources
lark-cli schema task.<resource>.<method> # Must check parameter structure before calling API
lark-cli task <resource> <method> [flags] # Call API
Important: When using native APIs, you must first run
schemato view the--data/--paramsparameter structure; do not guess the field format.
tasks
create, Create taskdelete, Delete taskget, Get task detailslist, List taskspatch, Update task
tasklists
add_members, Add list memberscreate, Create listdelete, Delete listget, Get list detailslist, Get list of listspatch, Update listremove_members, Remove list memberstasks, Get list of tasks in a list
subtasks
create, Create subtasklist, Get list of subtasks for a task
members
add, Add task memberremove, Remove task member
sections
create, Create custom sectiondelete, Delete custom sectionget, Get custom section detailslist, Get list of custom sectionspatch, Update custom sectiontasks, Get list of tasks in a custom section
custom_fields
create, Create custom fieldget, Get custom field detailspatch, Update custom fieldlist, Get list of custom fieldsadd, Add custom field to resourceremove, Remove custom field from resource
custom_field_options
create, Create custom field optionpatch, Update custom field option
agent
update_agent_profile, Update task agent profile data.register_agent, Register AI agent
agent_task_step_info
append_task_steps, Write task record.
Permissions Table
| Method | Required scope |
|---|---|
tasks.create | task:task:write |
tasks.delete | task:task:write |
tasks.get | task:task:read |
tasks.list | task:task:read |
tasks.patch | task:task:write |
tasklists.add_members | task:tasklist:write |
tasklists.create | task:tasklist:write |
tasklists.delete | task:tasklist:write |
tasklists.get | task:tasklist:read |
tasklists.list | task:tasklist:read |
tasklists.patch | task:tasklist:write |
tasklists.remove_members | task:tasklist:write |
tasklists.tasks | task:tasklist:read |
subtasks.create | task:task:write |
subtasks.list | task:task:read |
members.add | task:task:write |
members.remove | task:task:write |
sections.create | task:section:write |
sections.delete | task:section:write |
sections.get | task:section:read |
sections.list | task:section:read |
sections.patch | task:section:write |
sections.tasks | task:section:read |
custom_fields.create | task:custom_field:write |
custom_fields.get | task:custom_field:read |
custom_fields.patch | task:custom_field:write |
custom_fields.list | task:custom_field:read |
custom_fields.add | task:custom_field:write |
custom_fields.remove | task:custom_field:write |
custom_field_options.create | task:custom_field:write |
custom_field_options.patch | task:custom_field:write |
agent.update_agent_profile | task:task:write |
agent.register_agent | task:task:write |
agent_task_step_info.append_task_steps | task:task:write |
+upload-attachment | task:attachment:write |
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 ...),再按creator、created_at等字段做本地筛选和分页控制。 意图区分补充:像“搜索飞书中今年以来我关注的任务”这类表达,虽然字面带有“搜索”,但如果没有真正的查询关键字,且本质是在限定“与我相关 + 时间范围”,则应优先走+get-related-tasks;像“搜索飞书中由我创建的任务清单”这类表达,如果没有清单关键字,且本质是在限定“清单范围 + 创建者”,则应优先走原生tasklists.list后筛选,而不是直接走搜索型 shortcut。 用户身份识别:在用户身份(user identity)场景下,如果用户提到了“我”(例如“分配给我”、“由我创建”),请默认获取当前登录用户的open_id作为对应的参数值。 术语理解:如果用户提到 “todo”(待办),应当思考其是否是指“task”(任务),并优先尝试使用本 Skill 提供的命令来处理。 友好输出:在输出任务(或清单)的执行结果给用户时,建议同时提取并输出命令返回结果中的url字段(任务链接),以便用户可以直接点击跳转查看详情。
创建/更新注意:
- 只有在设置了
due(截止时间)的情况下,才能设置repeat_rule(重复规则)和reminder(提醒时间)。- 若同时设置了
start(开始时间)和due(截止时间),开始时间必须小于或等于截止时间。- 使用 tenant_access_token(应用身份)时,无法跨租户添加任务成员。
查询注意:
- 在输出任务详情时,如果需要渲染负责人、创建人等人员字段,除了展示
id(例如 open_id) 外,还必须通过其他方式(例如调用通讯录技能)尝试获取并展示这个人的真实名字,以便用户更容易识别。- 在输出清单详情时,如果需要渲染 owner、member、角色成员等人员字段,也必须像任务成员展示一样,除了展示
id外,尽量解析并展示对应人员的真实名字。- 在输出任务或清单详情时,如果需要渲染创建时间、截止时间等字段,需要使用本地时区来渲染(格式为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。
Shortcuts
+create— Create a task+update— Update a task+comment— Add a comment to a task+complete— Complete a task+reopen— Reopen a task+assign— Assign or remove members from a task+followers— Manage task followers+reminder— Manage task reminders+get-my-tasks— List tasks assigned to me+get-related-tasks— List tasks related to me+search— Search tasks+subscribe-event— Subscribe to task events+set-ancestor— Set or clear a task ancestor+tasklist-create— Create a tasklist and batch add tasks+tasklist-search— Search tasklists+tasklist-task-add— Add existing tasks to a tasklist+tasklist-members— Manage tasklist members+upload-attachment— Upload a file as a task attachment
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.create | task:task:write |
tasks.delete | task:task:write |
tasks.get | task:task:read |
tasks.list | task:task:read |
tasks.patch | task:task:write |
tasklists.add_members | task:tasklist:write |
tasklists.create | task:tasklist:write |
tasklists.delete | task:tasklist:write |
tasklists.get | task:tasklist:read |
tasklists.list | task:tasklist:read |
tasklists.patch | task:tasklist:write |
tasklists.remove_members | task:tasklist:write |
tasklists.tasks | task:tasklist:read |
subtasks.create | task:task:write |
subtasks.list | task:task:read |
members.add | task:task:write |
members.remove | task:task:write |
sections.create | task:section:write |
sections.delete | task:section:write |
sections.get | task:section:read |
sections.list | task:section:read |
sections.patch | task:section:write |
sections.tasks | task:section:read |
custom_fields.create | task:custom_field:write |
custom_fields.get | task:custom_field:read |
custom_fields.patch | task:custom_field:write |
custom_fields.list | task:custom_field:read |
custom_fields.add | task:custom_field:write |
custom_fields.remove | task:custom_field:write |
custom_field_options.create | task:custom_field:write |
custom_field_options.patch | task:custom_field:write |
agent.update_agent_profile | task:task:write |
agent.register_agent | task:task:write |
agent_task_step_info.append_task_steps | task:task:write |
+upload-attachment | task:attachment:write |
Installs
217,318First seen
Jun 10, 2026
Auto-fetched from GitHub .
Stats via skills.sh.
Skills similar to lark-task:
Installs
Installs
Installs