lark-sheets
larksuite/cli
Create and manipulate Lark (飞书) spreadsheets with full support for sheets, cells, formulas, charts, and pivot tables.
What is lark-sheets?
Lark Sheets enables programmatic creation and editing of Lark spreadsheets. Use it when you need to create workbooks, manage sheet structure, read/write cell data with formulas and styles, build charts and pivot tables, apply conditional formatting, or perform bulk data operations. For searching existing spreadsheet files in cloud storage, use lark-drive instead.
- Create and manage workbooks and worksheets (insert, delete, rename, reorder, duplicate)
- Read and write cell data with support for values, formulas, styles, comments, and embedded images
- Manage sheet structure: merge cells, adjust row/column dimensions, hide/freeze rows and columns
- Search and replace text with regex and case-sensitivity options
- Create and configure charts (bar, line, pie, area, scatter, radar, combo) and pivot tables
- Apply conditional formatting rules (highlight, data bars, color scales, ranking, custom formulas)
How to install lark-sheets
npx skills add null --skill lark-sheets- lark-cli binary installed
- Authentication configured (see lark-shared skill)
- Lark spreadsheet URL or spreadsheet token
How to use lark-sheets
- 1.Read the lark-shared SKILL.md for authentication and permission handling
- 2.Identify your target spreadsheet using URL or token (supports doubao.com /sheets/ URLs)
- 3.Choose the appropriate command based on your task (use the scenario-to-command reference in SKILL.md)
- 4.For data operations, determine if you need typed data (numbers, dates, currency) via +table-put/+workbook-create or plain text via +csv-put
- 5.Execute the command with required flags (--range, --sheet-id, --spreadsheet-token, etc.)
- 6.For complex workflows, use +batch-update to combine multiple operations atomically
Use cases
- Build financial models (DCF, three-statement, budget, sensitivity analysis) with formulas and calculations
- Create data dashboards with charts and pivot tables for multi-dimensional analysis
- Migrate Excel spreadsheets to Lark with formula translation and type preservation
- Bulk import CSV or Excel data while preserving numeric, date, and currency types
- Apply consistent styling and conditional formatting across large datasets
- Data analysts and business intelligence professionals
- Finance and accounting teams building models and reports
- Product managers tracking metrics and KPIs
- Anyone migrating from Excel or Google Sheets to Lark
- Developers automating spreadsheet workflows
lark-sheets FAQ
Use +csv-put only for plain text data. Use +table-put (or +workbook-create for new spreadsheets) when your data contains numbers, dates, currency, percentages, or other types that need to preserve calculation and sorting capabilities. Avoid converting numbers to strings like "$1,234" before using +csv-put.
Use +cells-set-image to bind images to specific cells (for record-level images like photos or certificates that move with rows). Use +float-image-create for freely-positioned decorative images (logos, watermarks, banners) that don't attach to data.
A filter modifies what rows are visible in a sheet. A filter view saves a named, independent filtering configuration that multiple users can switch between without affecting the base sheet data.
Consult the lark-sheets-formula-translation reference. Lark formulas follow different syntax rules than Excel (e.g., ARRAYFORMULA, native array functions, INDEX/OFFSET behavior). The goal is to rewrite formulas to be executable in Lark while matching Excel results.
No, use the lark-drive skill with 'drive +search' to locate spreadsheet files by name or keyword in cloud storage. Use lark-sheets only after you have the spreadsheet URL or token.
Full instructions (SKILL.md)
Source of truth, from larksuite/cli.
name: lark-sheets version: 3.0.0 description: "飞书电子表格:创建和操作电子表格。支持创建表格、管理工作表与行列结构(增删/合并/调整尺寸/隐藏/冻结)、读写单元格(值/公式/样式/批注/单元格图片)、查找替换、多操作原子批量更新,以及图表、透视表、条件格式、筛选器、迷你图、浮动图片等对象的创建与维护。当用户需要创建电子表格、管理工作表、批量读写或编辑数据、统计汇总与可视化、表格美化、公式计算(含 Excel 公式迁移)、金融/财务建模(DCF、三张表、预算、Sensitivity 等)等任务时使用。若用户是想按名称或关键词搜索云空间(云盘/云存储)里的表格文件,请改用 lark-drive 的 drive +search 先定位资源。当用户给出 doubao.com 的 /sheets/ URL/token 时,也应直接使用本 skill,不要因为域名不是飞书而回退到 WebFetch;路由依据是 URL 路径模式和 token,而不是域名。" metadata: requires: bins: ["lark-cli"] siblings: ["lark-shared"] cliHelp: "lark-cli sheets --help"
sheets
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理。
术语约定
下列词在本 skill 各文档中可能交替出现,但指同一对象;解析用户口语时按此映射,不要当成不同概念:
| 标准用语 | 同义 / 口语(均指同一对象) | 说明 |
|---|---|---|
| 工作表(sheet) | 子表、tab、标签页 | spreadsheet 内的单张表;sheet_id 是其稳定标识 |
| 电子表格(spreadsheet) | 工作簿、表格 | 顶层容器;由 --url 或 --spreadsheet-token 定位 |
| reference_id | id | 表内对象的稳定标识,即各对象主键 flag 接受的值(见下表)。⚠️ 与 lark-sheets-float-image 的 --image-uri(图片上传句柄)不是一回事,后者不属于 reference_id |
每类对象用各自的主键 flag 定位(命名不统一,按此表对照,不要凭直觉拼):
| 对象 | 主键 flag | 对象 | 主键 flag |
|---|---|---|---|
| 工作表 sheet | --sheet-id | 条件格式规则 | --rule-id |
| 图表 chart | --chart-id | 筛选视图 | --view-id |
| 透视表 pivot | --pivot-table-id | 迷你图(按组) | --group-id |
| 浮动图片 | --float-image-id |
场景 → 命令速查(拿不准命令名先查这里,别按直觉拼)
把高频意图映射到真实存在的 shortcut / flag。agent 常从 Excel / Google Sheets / 飞书 OpenAPI 误迁移命令名或 flag,先对照本表,避免一次必然失败的试错。完整 shortcut 见各工具参考。
| 你要做的事 | ✅ 正确写法 | ❌ 不存在(会被 cobra 拒) |
|---|---|---|
| 读数据(纯值 / CSV) | +csv-get(范围用 --range) | +get-range、+range-get、+cells-read |
| 读值 + 公式 / 样式 / 批注 | +cells-get --include value,formula,style,comment,data_validation | +get-cell、+cell-get、--with-styles、--with-merges、--include-merged-cells |
| 写纯文本值(整块 CSV 平铺,列里没有需保留的数值 / 日期语义) | +csv-put(定位用 --start-cell,单个左上角锚点格;也接受 --range 别名,区间自动取左上角) | — |
| 写带类型的数据到已有表(列里有数字 / 金额 / 百分比 / 日期 / 计数,要可排序 / 求和 / 入图表 / 透视) | +table-put --sheets 完整 payload {"sheets":[{...}]}(列名走 columns、二维数据走 data、列 pandas dtype 走 dtypes、列展示格式走 formats;来源不限 DataFrame——Counter / dict / list 同理,详见 write-cells) | 在本地把数字拼成 "$1,234" / "30.5%" 字符串再 +csv-put(会落成文本、丢失计算能力) |
| 新建电子表格并写带类型的数据(类型保真需求同上,但目标表还不存在) | +workbook-create --sheets(协议与 +table-put 同构、一步建表 + typed 写入,无需先建空表再 +table-put;date / number 不丢,详见 workbook) | 用 --values 灌日期 / 数字(会落成文本、丢类型) |
| 写值 / 公式 / 样式 | +cells-set(定位用 --range) | — |
| 插图:图片绑定到某条记录、随行走(凭证 / 证件照 / 商品图 / 头像 / 二维码 / 每行配图) | +cells-set-image(单格 --range,嵌入单元格内) | — |
| 插图:自由摆放、不绑数据的装饰 / 标识(logo / 水印 / 封面大图 / banner) | +float-image-create(浮动图片,自由定位 + 尺寸 + 层级) | — |
| 查找单元格 | +cells-search(关键字用 --find) | +cells-find、+find、--query |
| 查找并替换 | +cells-replace | — |
| 看子表结构(合并 / 行高列宽 / 冻结 / 隐藏) | +sheet-info | +sheet-get、+structure-get、+sheet-structure-get |
| 看工作簿 / 子表清单 | +workbook-info | +sheet-list、+workbook-get、+workbook-list |
| 导出 xlsx / 单表 csv | +workbook-export | — |
| 导入本地 xlsx/xls/csv 文件为飞书电子表格 | +workbook-import --file ./x.xlsx(本地表格文件 → 飞书电子表格的正解;仅要导成多维表格 bitable 时才用 drive +import --type bitable) | drive +import(导电子表格时绕了 drive 通道、还要多给 --type,应直接用 +workbook-import)、把 .xlsx 在本地读成数据再 +workbook-create 重灌 |
| 清除内容 / 格式 | +cells-clear(范围维度用 --scope,取值 content / formats / all) | --type |
| 批量清除多区域 | +cells-batch-clear(--scope) | --target |
| 调整列宽 / 行高 | +cols-resize / +rows-resize(行、列是两个独立命令) | --dimension(无此 flag) |
| 分组汇总 / 透视 | +pivot-create(默认不传落点 flag → 自动新建子表,零覆盖) | 用 SUMIF / 本地脚本拼一张假透视表 |
⚠️ 两种图片别选错:图若绑定某条记录、要随行排序 / 筛选 / 增删(凭证 / 证件照 / 每行配图,话里带「对应 / 每行 / 这列」等绑定词)→ 单元格图片
+cells-set-image;只是自由摆放的装饰(logo / 水印 / 封面)→ 浮动图片+float-image-create。别因「浮动图更好控制 / 更熟」默认选浮动图。 ⚠️ 纯文本还是数值语义:要写的列里有数字 / 金额 / 百分比 / 日期 / 计数 →+table-put(写入已有表;外层{"sheets":[...]}包裹、列 pandas dtype 用dtypes、展示格式用formats,保留排序 / 求和 / 图表 / 透视能力;目标表还不存在就用+workbook-create --sheets,同 typed 协议、一步建表 + 写入,别先建空表再+table-put);只有纯文本才用+csv-put。两者写完显示可以完全相同,但+csv-put落的是文本、不能参与计算——别把数值在本地拼成带$/%的字符串再走+csv-put。 ⚠️ 定位 flag:+cells-get/+cells-set/+csv-get用--range;+csv-put规范用--start-cell(单个左上角锚点格),也接受--range别名(区间自动取左上角),二者择一即可。 ⚠️ 读取附加信息一律走+cells-get --include …,没有--with-styles这类 flag;看合并单元格用+sheet-info的merged_cells,不要在+cells-get里找 merge flag。
References
本 skill 的 reference 分两组:先读通用方法与规范(横切所有任务的工作流、铁律、样式、公式规则,不含具体 shortcut),它们规定了"怎么做对";再按操作对象进入工具参考查具体 shortcut 与调用细节。编辑类任务务必先过一遍通用方法与规范,其中的铁律对所有工具参考一律生效。
通用方法与规范(先读,横切所有任务,不含具体 shortcut)
| Reference | 描述 |
|---|---|
| 飞书表格核心操作:分析、编辑与可视化 | 飞书表格核心操作工作流。当用户需要对已有的飞书表格进行查看、分析、编辑或可视化时使用。适用场景:数据查询与统计、公式计算、表格美化、创建图表/透视表、筛选排序、批量修改数据、调整表格结构等。即使用户没有明确说"飞书表格",只要操作对象是已有的在线表格,都应触发此工作流。 |
| 飞书表格样式与配色规范 | 飞书表格样式与配色规范:表头/数据区/汇总行的颜色、字号、对齐、边框等取值标准,以及新增汇总行、追加行列继承原表风格、已有区域美化等典型场景的决策流程与样式要点。工具调用参数细节请参考对应的 lark-sheets-write-cells / lark-sheets-range-operations / lark-sheets-batch-update。条件格式(高亮、标红、数据条、色阶)请使用 lark-sheets-conditional-format。 |
| 飞书表格公式生成规则 | Excel 公式到飞书表格公式的迁移与生成规则。核心目标不是保留 Excel 原语法,而是按飞书表格可执行规则重写公式,并在结果上尽量对齐 Excel。当用户要求把 Excel 公式改写成飞书表格公式,或需要生成飞书公式(尤其涉及 ARRAYFORMULA、原生数组函数、INDEX/OFFSET、MAP/LAMBDA、日期差、多层范围结果与二次展开)时使用。 |
按对象的工具参考(含 shortcut)
| Reference | 描述 |
|---|---|
| Lark Sheet Workbook | 管理飞书表格的工作簿结构(子表列表及元数据)。当用户提到"看看这个表格有什么"、"表格结构"、"有哪些 sheet"、"新建一个 sheet"、"删除这个工作表"、"重命名"、"复制一份"、"移动到前面"时使用。 |
| Lark Sheet Sheet Structure | 管理飞书表格的子表结构与布局。适用场景:查看行高、列宽、隐藏行列、合并单元格等布局信息,以及"插入一行"、"删除这列"、"隐藏行"、"冻结表头"、行列分组(大纲折叠/展开)等操作。行列大纲仅在用户明确提到"行分组"、"列分组"、"大纲"、"outline"时才触发,"按XXX分组"等数据分组场景请使用 lark-sheets-pivot-table。如需在表尾追加数据,应先通过此 skill 插入行,再通过 lark-sheets-write-cells 写入。 |
| Lark Sheet Read Data | 读取飞书表格中的单元格数据。当用户需要"看看数据"、"分析数据"、"统计/汇总"时使用;也适用于需要查看公式、样式、批注等详细信息的场景。 |
| Lark Sheet Search & Replace | 在飞书表格中搜索和替换文本,支持限定范围、大小写匹配、精确匹配、正则表达式。当用户需要"查找"、"搜索"、"定位"某个值,或"替换"、"批量修改文本"、"把 A 改成 B"时使用。不要用于理解表格结构(应读取数据)、不要用于数据分析(应读取数据后计算)、不要把用户操作动作中的关键词(如"汇总金额""统计数量")当作搜索词。 |
| Lark Sheet Write Cells | 向飞书表格的指定区域批量写入值、公式、样式、批注或单元格图片。适用场景:填写数据、设置公式、修改格式、添加批注、嵌入单元格图片(如需操作浮动图片,请使用 lark-sheets-float-image);若只需把一块 CSV 批量铺到表格上(值或公式,不带样式/批注),直接使用 +csv-put 更短更快。追加数据需先通过 lark-sheets-sheet-structure 插入行列。 |
| Lark Sheet Range Operations | 对飞书表格中指定区域执行结构性操作(不涉及写入单元格数据值)。适用场景:清除内容或格式("清空"、"删除内容"、"去掉格式")、合并/取消合并单元格、调整行高列宽("加宽列"、"自适应列宽")、移动/复制/填充/排序数据("移动数据"、"复制到"、"自动填充"、"按某列排序")。写入单元格数据请使用 lark-sheets-write-cells。 |
| Lark Sheet Batch Update | 将多个飞书表格写入操作合并为一次批量执行,按顺序依次完成。适合需要连续执行多个写入操作的场景(如先修改结构再写入数据)。 |
| Lark Sheet Chart | 管理飞书表格中的图表(柱形图、折线图、饼图、条形图、面积图、散点图、组合图、雷达图等)。当用户需要创建图表、修改图表样式或数据源、查看已有图表配置、删除图表时使用。也适用于用户提到"数据可视化"、"画个图"、"趋势分析"、"对比图"、"占比分析"、"做个图表"等数据可视化相关场景。 |
| Lark Sheet Pivot Table | 管理飞书表格中的数据透视表。当用户需要创建透视表、修改透视表的行列字段/聚合方式/筛选条件、查看已有透视表配置、删除透视表时使用。也适用于用户提到"分组汇总"、"交叉分析"、"按XXX统计"、"按字段分组"、"再分下组"、"多维分析"、"数据透视"等场景。 |
| Lark Sheet Conditional Format | 管理飞书表格中的条件格式规则(重复值高亮、单元格值比较、数据条、色阶、排名、自定义公式等)。当用户需要创建条件格式、修改已有规则的范围或样式、查看当前条件格式配置、删除规则时使用。也适用于用户提到"高亮"、"标红"、"颜色标记"、"数据条"、"色阶"、"条件样式"等场景。 |
| Lark Sheet Filter | 管理飞书表格中的筛选器(filter)。当用户需要筛选数据(按文本/数值/颜色/日期条件过滤行)、查看已有筛选配置、修改或删除筛选器时使用。也适用于"只看"、"筛选出"、"仅保留符合条件的"等场景。 |
| Lark Sheet Filter View | 管理飞书表格中的筛选视图(filter view)。当用户需要"建一个 XX 视图"、"保存这个筛选状态"、"切换不同筛选"、维护一个 sheet 上多份独立筛选配置时使用。视图与筛选器(filter)相互独立,可在同一 sheet 共存;视图的隐藏行仅在用户进入该视图时本地生效,不影响其他协作者。 |
| Lark Sheet Sparkline | 管理飞书表格中的迷你图(折线迷你图、柱形迷你图、胜负迷你图)。当用户需要在单元格内嵌入小型图表来展示数据趋势时使用。也适用于"趋势线"、"单元格内图表"、"迷你图"等场景。注意:不等同于被禁用的 SPARKLINE() 公式函数。 |
| Lark Sheet Float Image | 管理飞书表格中的浮动图片。当用户需要在表格中插入浮动图片、调整图片位置和大小、查看已有浮动图片、删除图片时使用。也适用于"插入图片"、"添加 logo"、"放一张图"等场景。注意:如果用户需要将图片嵌入到某个单元格内部(单元格图片),请阅读 lark-sheets-write-cells。 |
公共 flag 速查
各 reference 的每个 shortcut 标题下用一行徽章标注该 shortcut 支持的公共 / 系统 flag,例如:
_公共四件套 · 系统:--dry-run_— URL/token + sheet 定位(两组各必给一个,详见下方「公共 flag」),加--dry-run_公共:URL/token(无 sheet 定位) · 系统:--yes、--dry-run_— 只接 URL/token,常见于+batch-update等不强制 sheet 定位的 shortcut
徽章里只列名字。type / 必填 / 描述都在本段统一声明:
公共 flag(定位资源)
公共四件套 = --url / --spreadsheet-token / --sheet-id / --sheet-name,分成两组 XOR,每组都必须给且只能给一个(XOR = 二选一必填,不是"可选"):
- spreadsheet 定位(必填):
--url与--spreadsheet-token二选一,必须给其中之一。两个都不给 → 校验报错specify at least one of --url or --spreadsheet-token;两个都给 → 互斥冲突。--url解析/sheets/、/spreadsheets/与/wiki/三种链接(从路径里抽出 token;也可以直接把裸 token 传给--spreadsheet-token)。其它形态的链接不会被解析成表格 token。/wiki/知识库链接可直接传--url:会自动定位到链接背后的电子表格;若该链接背后不是电子表格(而是文档 / 多维表格等),则报错。- 例外:
+workbook-create(新建表 + 可选写入数据)与+workbook-import(把本地文件导入为新表)都产出一张还不存在的表格,不接受任何 spreadsheet / sheet 定位 flag——+workbook-create只有--title/--folder-token/--values/--styles/--sheets,+workbook-import只有--file(必填)/--folder-token/--name。
- sheet 定位(公共四件套 shortcut 必填):
--sheet-id与--sheet-name二选一,必须给其中之一。两个都不给 → 校验报错specify at least one of --sheet-id or --sheet-name。- ⚠️ 不确定 sheet 名时禁止直接猜
Sheet1:除非用户对话明确说出 sheet 名 / id,或上下文(之前的工具调用 / URL 锚点?sheet=xxx)已经出现过具体值,否则第一步先调+workbook-info --url "..."(或--spreadsheet-token)拿sheets[].sheet_id/sheets[].title列表再选。中文环境下子表常叫"数据" / "Sheet"(无数字)/ "工作表 1" / 业务名,猜Sheet1大概率撞sheet not found,比先查多耗一次失败调用 + 重试。 - ⚠️
--range里的Sheet1!前缀不能替代 sheet 定位:即使写了--range 'Sheet1!A1:B2',仍必须额外传--sheet-id或--sheet-name,否则照样报上面的错。 - ⚠️ A1 reference 含
!(--source/--range/--ranges):整段用单引号包裹,如--range 'Sheet1!A1:B2'——单引号能挡住 bash 的 history expansion(!被拦成event not found;双引号挡不住;别改用set +H,原因见下方「复合 JSON / 大入参」)。sheet 名含特殊字符(-/ 空格 / 非 ASCII)需在内部按 A1 标准再包一层单引号时,用'\''转义保持外层单引号,如--source ''\''Sales-2025'\''!A1:D100'。 - 例外:徽章标为
_公共:URL/token(无 sheet 定位)…_的 shortcut(如+workbook-info/+workbook-export/+batch-update/+dropdown-update|delete/+cells-batch-set-style/+cells-batch-clear/+sheet-create)不接受也不需要 sheet 定位,只给一组 spreadsheet 定位即可。+pivot-create用--target-sheet-id/--target-sheet-name(XOR,可都不传,落点细节见lark-sheets-pivot-table)。
- ⚠️ 不确定 sheet 名时禁止直接猜
| Flag | Type | 必填 | 说明 |
|---|---|---|---|
--url | string | 二选一必填(与 --spreadsheet-token) | spreadsheet 或 wiki URL |
--spreadsheet-token | string | 二选一必填(与 --url) | spreadsheet token |
--sheet-id | string | 二选一必填(与 --sheet-name;仅公共四件套 shortcut) | 工作表 reference_id |
--sheet-name | string | 二选一必填(与 --sheet-id;仅公共四件套 shortcut) | 工作表名称 |
统一调用范式(公共四件套 shortcut 的所有示例都遵循此形状,两组定位缺一不可):
lark-cli sheets <shortcut> <workbook 定位> <sheet 定位> <其它 flag>
# workbook 定位:--url "..." 或 --spreadsheet-token "..." (二选一,必给)
# sheet 定位: --sheet-id "$SID" 或 --sheet-name "<真实表名>" (二选一,必给;占位符不要原样填)
# 例:lark-cli sheets +csv-get --url "https://.../sheets/shtXXX" --sheet-name "<真实表名>" --range "A1:F30"
# 注意:真实表名不要直接填 "Sheet1"——大多数表的子表不叫这个;先 +workbook-info 拿 sheets[].title 再代入。
系统 flag
| Flag | Type | 必填 | 说明 |
|---|---|---|---|
--dry-run | bool | 否 | 零副作用:仅打印请求路径与参数模板,不发起调用;多步操作会输出每个子操作的请求模板 |
--yes | bool | 是(仅 high-risk-write) | 二次确认;不带时退出码 10。详见 ../lark-shared/SKILL.md 高风险审批协议 |
--print-schema | bool | 否 | 本地打印复合 JSON flag 的 JSON Schema 并退出,不发起任何调用、不需要其它 required flag。与 --flag-name <name> 搭配指定要查哪个 flag;省略 --flag-name 时列出该 shortcut 所有可查询的 flag。仅在 shortcut 含复合 JSON flag 时有效——判断方法:该 shortcut 的 Flags 表里出现类型标注为「复合 JSON」的 flag(如 --cells / --properties / --operations / --border-styles / --sort-keys / --options)即支持;纯标量 flag 的 shortcut 不支持。 |
--flag-name | string | 否 | 配合 --print-schema 使用,指定要打印 JSON Schema 的 flag 名(不带 -- 前缀,如 cells / properties / operations)。 |
Agent 使用提示:写复合 JSON flag(--cells / --properties / --operations / --border-styles / --sort-keys / --options 等)时,如果对结构不确定,先跑 lark-cli sheets <shortcut> --print-schema --flag-name <name> 把完整 JSON Schema 读出来再构造 payload,比靠 reference 的速查表更精确,也避免因为字段拼写或缺失被服务端拒绝。reference 的 ## Schemas 段只给一层结构,深层只能靠 --print-schema 或 ## Examples 的真实示例。
flag 内容类型与输出约定(术语速记)
- flag 表里 JSON 类入参标三类:复合 JSON = 深层嵌套对象(用
--print-schema取完整结构);简单 JSON = 一维 / 二维标量数组(如["sheet1!A1:B2",...]/[["alice",95]],结构简单无需 print-schema);非 JSON 文本 = 原样文本(如 CSV)。--print-schema只对复合 JSON flag 有效(同一 shortcut 的简单 JSON flag 如--colors不在此列)。 - envelope:所有 shortcut 返回统一外层结构
{ok, identity, data, ...}。正文里envelope.data指业务数据层(如+csv-get的annotated_csv);写操作不会自动回读,如需校验请自行调用对应的+*-list/+*-get/+cells-get。
复合 JSON / 大入参:优先 stdin
flag 帮助里标注支持 Stdin 的入参,当 payload 较大、含换行 / 引号等特殊字符,或已经落在某个文件里时,优先用 stdin(-)传入,避免命令行超长与 shell 转义问题。
推荐写法:payload 写到用户项目目录之外的临时文件(放系统临时目录,避免污染项目),再用 stdin 喂进去:
# TMPFILE 指向系统临时目录下的 payload 文件(脚本里用 tempfile.gettempdir() / os.tmpdir() 等取临时目录)
lark-cli sheets +cells-set --url "..." --sheet-name "Sheet1" --range "A1:B2" --cells - < "$TMPFILE"
参数含特殊字符(! / 引号 / 空格 / 非 ASCII)时,用单引号包裹该参数即可,不要起手 set +H 之类的 shell 开关来防转义。 set +H(关 bash history expansion)在 sh / dash 下是非法选项(set: Illegal option -H)、会让整条命令直接失败;而单引号挡得住 ! 的 history expansion(否则报 event not found),对 bash 与 sh / dash 一致安全。参数本身含单引号、或 payload 较大时,按上文走 stdin。
@file 接绝对路径会被拒,且被拒后不要照报错提示做。 @file 出于安全只接受 cwd 下的相对路径,传 cwd 之外的绝对路径会被拒。此时报错会建议"先 cd 到目标目录,或改用相对路径"——两条都不要照做:cd 过去、或把临时文件写进用户项目目录,都会污染工作目录。正解是改用 stdin(--<flag> - < 文件)。
Related skills
More from larksuite/cli and the wider catalog.
lark-doc
飞书云文档(Docx / Wiki 文档):读取和编辑飞书文档内容。当用户给出文档 URL 或 token,或需要查看、创建、编辑文档、插入或下载文档图片附件时使用。文档中嵌入的电子表格、多维表格、画板,先用本 skill 提取 token 再切到对应 skill。当用户给出 doubao.com 的 /docx/ 或 /wiki/ URL/token 时,也应直接使用本 skill;路由依据是 URL 路径模式和 token,而不是域名。不负责文档评论管理,也不负责表格或 Base 的数据操作。
lark-base
飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、workflow、角色权限;遇到 Base/多维表格/bitable 或 /base/ 链接时使用。文件导入转 lark-drive,认证/授权转 lark-shared。
lark-im
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件(支持大文件分片下载)、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。
lark-drive
飞书云空间(云盘/云存储):管理 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)。
lark-shared
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-calendar
飞书日历:管理日历日程和会议室。查看/搜索日程、创建/更新日程、管理参会人、查询忙闲和推荐时段、预定会议室。当用户需要查看日程安排、创建/修改会议、查询/预定会议室时使用。不负责:查询过去的视频会议记录(走 lark-vc)、待办任务(走 lark-task)。