Wechat Gzh Analyzer
openocta/openocta_skills
分析微信公众号后台数据,包括文章阅读量、评论、点赞等统计。当用户需要分析微信公众号数据、导出公众号文章统计报表时调用此技能。
【何时用:仅当用户明确指向飞书/Lark 电子表格;泛指做表格默认走本地工具】创建/操作飞书电子表格:工作表与行列结构、读写单元格(值/公式/样式/批注/图片)、查找替换、批量更新、图表/透视表/条件格式/筛选/迷你图/浮动图片。按名称搜索云空间表格文件改用 lark-drive 的 drive +search。doubao.com 的 /sheets/ URL 也走本 skill。不适用本地…
$ npx skills add Pinvou/pinvou-agent --skill lark-sheets -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Pinvou/pinvou-agent lark-sheets --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Pinvou/pinvou-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets .claude/skills/lark-sheets && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "lark-sheets" agent skill from https://github.com/Pinvou/pinvou-agent/tree/main/pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets into .claude/skills/lark-sheets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lark-sheets", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Pinvou/pinvou-agent/tree/main/pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheetsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Pinvou/pinvou-agent --skill lark-sheets -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Pinvou/pinvou-agent lark-sheets --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Pinvou/pinvou-agent.git skills-src && mkdir -p .agents/skills && cp -r skills-src/pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets .agents/skills/lark-sheets && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "lark-sheets" agent skill from https://github.com/Pinvou/pinvou-agent/tree/main/pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets into .agents/skills/lark-sheets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lark-sheets", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Pinvou/pinvou-agent --skill lark-sheets -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Pinvou/pinvou-agent lark-sheets --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Pinvou/pinvou-agent.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets .cursor/skills/lark-sheets && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "lark-sheets" agent skill from https://github.com/Pinvou/pinvou-agent/tree/main/pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets into .cursor/skills/lark-sheets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lark-sheets", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Pinvou/pinvou-agent.git --path pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Pinvou/pinvou-agent --skill lark-sheets -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Pinvou/pinvou-agent lark-sheets --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Pinvou/pinvou-agent.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets .gemini/skills/lark-sheets && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "lark-sheets" agent skill from https://github.com/Pinvou/pinvou-agent/tree/main/pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets into .gemini/skills/lark-sheets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lark-sheets", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Pinvou/pinvou-agent lark-sheetsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Pinvou/pinvou-agent --skill lark-sheets -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Pinvou/pinvou-agent.git skills-src && mkdir -p .github/skills && cp -r skills-src/pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets .github/skills/lark-sheets && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "lark-sheets" agent skill from https://github.com/Pinvou/pinvou-agent/tree/main/pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets into .github/skills/lark-sheets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lark-sheets", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Pinvou/pinvou-agent --skill lark-sheets -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Pinvou/pinvou-agent lark-sheets --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Pinvou/pinvou-agent.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets .opencode/skills/lark-sheets && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "lark-sheets" agent skill from https://github.com/Pinvou/pinvou-agent/tree/main/pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets into .opencode/skills/lark-sheets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lark-sheets", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
lark-sheets【何时用:仅当用户明确指向飞书/Lark 电子表格;泛指做表格默认走本地工具】创建/操作飞书电子表格:工作表与行列结构、读写单元格(值/公式/样式/批注/图片)、查找替换、批量更新、图表/透视表/条件格式/筛选/迷你图/浮动图片。按名称搜索云空间表格文件改用 lark-drive 的 drive +search。doubao.com 的 /sheets/ URL 也走本 skill。不适用本地…
Lark Sheets is an agent skill from Pinvou/pinvou-agent. 【何时用:仅当用户明确指向飞书/Lark 电子表格;泛指做表格默认走本地工具】创建/操作飞书电子表格:工作表与行列结构、读写单元格(值/公式/样式/批注/图片)、查找替换、批量更新、图表/透视表/条件格式/筛选/迷你图/浮动图片。按名称搜索云空间表格文件改用 lark-drive 的 drive +search。doubao.com 的 /sheets/ URL 也走本 skill。不适用本地 Excel。
Its SKILL.md is about 6.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 32 other files, including scripts and reference files (for example `references/lark-sheets-batch-update.md`, `references/lark-sheets-changeset.md` and `references/lark-sheets-chart.md`).
It sits in Productivity & Automation, covering Messaging and chat bots and Excel spreadsheets. It works with Microsoft Excel. The repository describes itself as: Open-source desktop AI agent for tools, files, knowledge, workflows, and real deliverables. The licence is MIT.
12 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 76cb1db. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/, which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Lark Sheets loads about 6.5k tokens when it runs, and up to ~100k if it reads all its reference files. Until then it costs about 54 tokens; SKILL.md has 1,479 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from Pinvou/pinvou-agent at commit 76cb1db, republished under its MIT licence (© Pinvou). 1,479 words, ~6,460 tokens.
.claude/skills/lark-sheets/SKILL.md (or your agent's skills folder). This skill also uses 31 other files; get the full folder from GitHub.CRITICAL — 开始前 MUST 先用 read 读取 ../lark-shared/SKILL.md,其中包含认证、权限处理。
同一对象的交替说法,按此映射解析用户口语:工作表(sheet)= 子表 / tab / 标签页(sheet_id 是稳定标识);电子表格(spreadsheet)= 工作簿 / 表格(顶层容器,由 --url 或 --spreadsheet-token 定位);reference_id = 表内对象的稳定标识,即各对象主键 flag 接受的值(与 --image-uri 图片上传句柄不是一回事)。
每类对象用各自的主键 flag 定位(命名不统一,按此表对照,不要凭直觉拼):
| 对象 | 主键 flag | 对象 | 主键 flag |
|---|---|---|---|
| 工作表 sheet | --sheet-id | 条件格式规则 | --rule-id |
| 图表 chart | --chart-id | 筛选视图 | --view-id |
| 透视表 pivot | --pivot-table-id | 迷你图(按组) | --group-id |
| 浮动图片 | --float-image-id |
下列准则横切所有飞书表格任务,动手前先过一遍——被索引直接路由进某个工具参考时也一律生效;展开与边界见括注的 reference。
最小改动:除任务要改的单元格 / 列外,原表其它单元格、行列结构、Sheet 名、合并区、格式 1:1 保持;中间结果放原数据右侧或新建空白 Sheet,禁止删 / 改名 / 隐藏 / 移动已存在 Sheet(用户明示要求的除外,确认影响后执行,见 lark-sheets-workbook);改写类任务精确圈定行列,不该转的原值 1:1 保留;补齐类只写空单元格,已有值(哪怕看着可疑)一律不动,最多在交付说明备注。原表数值列的显示格式(小数位 / 千分位 / 是否科学计数法)同属不可改动项;仅当原值已被压成科学计数法或丢小数位时补 number_format 恢复可读,底层值不动。新增的计算列 / 汇总行(均值、占比、金额)必须显式设 number_format——公式默认吐出的多位小数(3.64507772)会被判为格式不合格,按语义定位数(比率两位小数、占比百分比、金额千分位)并与原表同列风格对齐。
真实写回 + 回读校验:交付必须是对在线表格的真实写入,写完用 +csv-get / +cells-get / +<对象>-list 回读确认生效(顺带确认无截断 / 溢出 / 科学计数法)——返回 ok 只代表请求被接受,不代表结果符合预期。回读值可能带「值(样式)」注记(如 49.6(V-Align: bottom)),据此回写前先剥离注记只留纯值;写公式后用 +cells-get --include formula 核对真实落格(仅看显示值不能证明联动);筛选 / 排序后核对前几行,删除后确认已空。不要只在文本里声称"已完成"。
读全再写:批量填充 / 补齐 / 修正类任务先确认真实数据末行再写,只探前 N 行会漏写表尾(确定末行流程见 lark-sheets-read-data)。
公式优先于硬编码:凡可由表内其它单元格推导的值(总计 / 占比 / 增长率 / 提取 / 查找)一律写公式,即使用户没说"联动 / 自动更新"——本地算好再静默写进单元格,交付的是改输入不重算的死表。提取类产出同行源列的连续原文片段(逐字保真、不跨列取材,一格含多个片段要全列出);语义判断类(无固定分隔符 / 模式可循)公式表达不了,逐行写静态值,别用固定偏移 / 通用正则硬套。输入列可能为空时公式先判空返回空(空格按 0 参与算术产出无错误码的错值,IFERROR 拦不住)。写聚合公式(SUM / COUNTIF / AVERAGE 等)前先确认区间的起止两端:起点跳过表头行、终点覆盖真实末行——漏掉末行或把表头算进计数是最常见的错值来源,且结果看着合理、不报错;写完抽查区间首尾两格确认落在数据内。写飞书公式前读 lark-sheets-formula-translation,落表后用 +formula-verify 诊断。试错 3 次仍失败可降级静态值,交付说明写明「静态值 + 失败原因 + 不随源数据更新」。
续写 / 扩展继承样式:续写、补齐、复制区块、新增行列时禁止只读值只写值——原表的字体 / 字号 / 颜色、四边框、对齐、底色(含奇偶行交替)、行高列宽、合并都要一并延续到新区域,判分与验收都按"新区域与相邻原始区域视觉一致"来看。
+dim-insert --inherit-style before(或 after),样式由原生继承,比"往空白区直接写值再补刷样式"可靠得多(后者最易整片丢失交替底色与边框)。它只选继承哪一侧,不是插入方向。行高是例外,不随样式继承:插行填长文本前读相邻行 row_height,补 +rows-resize(可与插入链合批)。+cells-get --include style 读原区样式,再随值一起写回(清单见 lark-sheets-write-cells,四边框最易漏)。多步写入分流:美化收尾(样式 / 合并 / 行高列宽 / 冻结的任意组合)→ 一次 +styles-put 声明式规格交付(见 lark-sheets-styles-put);同一个写操作打多个区域 → 用该命令自身的复数形态(--ranges / map 入参);只有跨类型、有顺序依赖的操作链(如插列 → 写表头 → 回填数据)才用 +batch-update(high-risk-write:按下方审批协议先获用户同意再带 --yes;失败处置语义见 lark-sheets-batch-update)。
分组汇总优先用透视表:参考速查表「分组汇总 / 透视」行;SUMIF / 本地脚本拼假透视表可能丢失原生透视能力,作为风险记录。
回复里声称的每一项,产物里都要能指到位置:交付说明 / 回复正文写了"已生成趋势分析报告""图中对比了两个资产""覆盖 11 种格式",就必须在产物中真实存在对应的 sheet / 图表对象 / 文字段落,并能说出它在哪张表第几行。文字描述不能替代产物——判分只认产物里能被读到的内容,回复里的描述一概不计分。交付前逐条对照自己写的每句"已完成 X",指不到位置的要么补做,要么把该句删掉改成"未完成 + 原因"。
拆成可验证 checklist:落地前把指令拆成"独立可验证子要点",优先逐点 assert 或抽样回读(多维排序每维一点、多目标每目标一点、范围类核起 / 末 / 边界;样式类子项也算——标色 / 标红可回读着色单元格数或规则数);验证中发现的已知问题(算错 / 取不到数的格)在交付说明逐个列出,避免只报成功示例。
全量处理前置断言条数:翻译 / 打标 / 批量公式等逐条任务,建议先把预期条数写入脚本再 assert actual == expected;断言不过时优先补齐。机制上补不了时(预算将尽 / 能力缺失)先落地可打开的主体产物(数据与结构),未完成项在交付说明声明。
批量替换 / 标注 / 删除建议残留复查:逐个旧值执行「搜索 → 替换 → 再搜索」循环,尽量让每个旧值剩余命中数归零(单次替换有数量上限,大表尾部常有残留);回读采样覆盖前部 / 中段 / 表尾,不只抽前几行。
新增内容要能被看懂:新增列给可区分含义的表头(不与原列同名);题面 / 模板指定的 sheet 名 / 标题 / 备注 / 图例文案逐字照搬,不缩写、不润色、不省略修饰成分与双语形式;数值沿用原列显示格式(整数 / 千分位 / 百分比 / 日期);日期列转换先扫全列锁定月 / 日位(如 9/3/24:出现过 >12 的位置是日),逐格凭感觉解析必月日颠倒;图表必须含标题、坐标轴标签与图例;长文本列自动换行并给足列宽。单位 / 口径 / 来源等元信息另置(标题下副标题行,或并进字段名如 营收(万元)),不得占用已有表头格或数据格。
表外数据要交代依据:填入表内 / 附件 / 用户输入都取不到的外部数据(标准值、行情、法规参数等)时,交付说明写清取值依据、单位口径与不确定项;来自常识推算就写明"推算、未经核验",不得伪造来源出处。
缺失值不编造:源数据 / 附件内本应存在的事实数据查不到或无法确定时一律留空 + 备注(“暂未发布 / 未知 / 待核实”),不用推算值 / 估算值充数(表外参数按上条);原表已示范缺失值写法就照抄该约定。
实操展开(读取路径、原生工具优先级、脚本配合、易漏陷阱)见下方「执行要点」节。端到端工作流:了解结构(优先
scripts/lark_inspect_workbook.py/+workbook-info)→ 读数据 → 理解语义 → 原生工具优先 → 写入 → 回读验证。
若本次读取被截断在本表中段:下列能力都原生存在, 详细用法(flag、payload 形状、易错点)在本表后半部分与其后的「执行要点」「公共 flag」章节:
+styles-put美化收尾(样式 / 边框 / 合并 / 行高列宽 / 冻结 一次交付)·+chart-create原生图表 ·+pivot-create透视表 ·+filter-create筛选 ·+cond-format-create条件格式 ·+range-sort排序 ·+dim-insert插入行列 ·+cells-search/+cells-replace查找替换 ·+workbook-import本地文件转在线表要用其中任一能力而对应行未读到时,用文件读取工具的偏移参数(
offset/ 起始行)把后半段再读一次, 取全对应行再动手。不要因为没读到展开就判定命令不存在,更不要改用本地脚本绕路—— 本地生成的透视表 / 图表导入后会退化成死表、静态图。
把高频意图映射到真实存在的 shortcut / flag(agent 常从 Excel / Google Sheets / OpenAPI 误迁移命令名)。选定命令后先读「动手前读」列指向的 reference 再动手——命令名对得上不代表用法对。
| 你要做的事 | ✅ 正确写法 | 动手前读 | ❌ 不存在(会被 cobra 拒) |
|---|---|---|---|
| 读数据(纯值 / CSV) | +csv-get(--range 可省略 = 读整个子表,无需先探行列;限定范围才传) | lark-sheets-read-data | +read-data、+get-range、+range-get、+cells-read |
| 读值 + 公式 / 样式 / 批注 | +cells-get --include value,formula,style,comment,data_validation | lark-sheets-read-data | +get-cell、+cell-get、--sheet(定位只有 --sheet-id / --sheet-name)、--value-only、--include-style、--value-render-option、--with-styles、--with-merges、--include-merged-cells |
写纯文本值(整块 CSV 平铺;列里没有需字面保真的数值 / 日期标签 / 编号——点分日期 12.10、编号 001 会被 csv-put 数值化,不算纯文本) | +csv-put(定位用 --start-cell,单个左上角锚点格;也接受 --range 别名,区间自动取左上角) | lark-sheets-write-cells | 把含点分日期(12.10)/编号(001)的列裸灌 +csv-put——会被数值化(12.10→12.1、001→1,尾零/前导零丢失),改用 +table-put 声明 dtypes:object |
| 写带类型的数据到已有表(列里有数字 / 金额 / 百分比 / 日期 / 计数等本质是量值的数据——不看当下要不要排序 / 求和,量值一律走这里) | +table-put --sheets 完整 payload {"sheets":[{...}]}(列名走 columns、二维数据走 data、列 pandas dtype 走 dtypes、列展示格式走 formats;来源不限 DataFrame——Counter / dict / list 同理;要同时美化加 --styles 一步带样式(区域底色 / 边框 / 列宽 / 行高 / 合并),不必事后再刷;payload 里不存在的 sheet 名会自动建子表,详见 write-cells) | lark-sheets-write-cells | 在本地把数字拼成 "$1,234" / "30.5%" 字符串再 +csv-put(会落成文本、丢失计算能力;常见借口见下方 ⚠️) |
| 新建电子表格并写带类型的数据(类型保真需求同上,但目标表还不存在) | +workbook-create --sheets(协议与 +table-put 同构、一步建表 + typed 写入,无需先建空表再 +table-put;date / number 不丢;--styles 同样可在建表同一步带全套样式,详见 workbook) | lark-sheets-workbook | 用 --values 灌日期 / 数字(会落成文本、丢类型) |
| 写公式 / 富写入(样式 · 批注 · 图片 · 富文本),或需精确矩形定位的值 | +cells-set(单区域 --range+--cells;散布多处 / 跨表用 --writes 一次批量交付,每项自带 sheet_name;批注 / 图片 / 富文本只能用它;公式落表后可用 +formula-verify 诊断) | lark-sheets-write-cells | — |
| 只改样式、值 / 公式不动 | +cells-set-style(单区域小改);多区域 / 整表美化收尾一次 +styles-put 交付(见 lark-sheets-styles-put) | lark-sheets-write-cells | +cells-set --copy-to-range 刷样式——它连值一起复制,会把整个区域的值覆盖成锚点格的值;拼 +batch-update 的 --operations 做美化 |
| 已有表美化收尾(样式 / 边框 / 合并 / 行高列宽 / 冻结的任意组合,单表或多表) | +styles-put --styles '{"styles":[{"name":…,"cell_styles":[…],"cell_merges":[…],"row_sizes":[…],"col_sizes":[…],"freeze":{…}}]}'(一份规格一次交付,词汇同 +table-put --styles) | lark-sheets-styles-put | 拼 +batch-update 的 --operations 子操作数组做美化、逐区域多次 +cells-set-style |
| 画图表 / 可视化(柱 / 折线 / 饼 / 条 / 散点 / 组合…) | 普通单图用 +chart-create-basic,多图用扁平输入的 +batch-chart-create;已有图的数据源用 +chart-data-update、常用配置用 +chart-config-update;只有语义 shortcut 无法表达的单系列 / 单数据点 / 高级字段才用 +chart-create / +chart-update,并只提交必要的局部 properties。多图先断言目标数量,图片迁移成真图表后必须删除并复查原浮动图片 | lark-sheets-chart | matplotlib / 本地画图再贴图(原生图表可交互、随数据更新) |
| 分组汇总 / 透视 | +pivot-create(默认不传落点 flag → 自动新建子表,零覆盖) | lark-sheets-pivot-table | 用 SUMIF / 本地脚本拼一张假透视表 |
| 排序(按列升 / 降序) | +range-sort(原生整行原子移动,值 / 样式 / 空值随行走) | lark-sheets-range-operations | 本地排完再整块 +cells-set 回写——cells-set 写空值不覆盖目标格(保留原值),会残留旧值,且样式不随行移动 |
| 筛选 / 只看符合条件的行(仅行级不裁列;"只保留某几列 / 筛出来另存一张表"→ 不走这里,另建结果 sheet 物化行与列、原表原样保留) | +filter-create | lark-sheets-filter | pandas filter 后覆盖写回(会毁原数据;要保存多份筛选状态用 +filter-view-create) |
| 查找 / 替换文本 | +cells-search(找,关键字用 --find)、+cells-replace(替换) | lark-sheets-search-replace | +cells-find、--query(+find 是 +cells-search 的隐藏别名,不在 sheets --help 清单,正式名直给) |
| 条件格式 / 条件高亮 / 数据条 / 色阶 / 重复值标记 | +cond-format-create | lark-sheets-conditional-format | +highlight、+conditional-format、逐格 +cells-set-style 硬凑 |
| 看子表结构(合并 / 行高列宽 / 冻结 / 隐藏) | +sheet-info | lark-sheets-sheet-structure | +sheet-get、+structure-get、+sheet-structure-get |
| 插图:图片绑定到某条记录、随行走(凭证 / 证件照 / 商品图 / 头像 / 二维码 / 每行配图) | +cells-set-image(单格 --range,嵌入单元格内) | lark-sheets-write-cells | — |
| 插图:自由摆放、不绑数据的装饰 / 标识(logo / 水印 / 封面大图 / banner) | +float-image-create(浮动图片,自由定位 + 尺寸 + 层级) | lark-sheets-float-image | — |
| 迷你图 / 单元格内趋势线 / 胜负图 | +sparkline-create 等 +sparkline-* | lark-sheets-sparkline | 文本字符(▁▂▃)拼接、matplotlib 贴图(不随数据更新) |
| 清除内容 / 格式 | +cells-clear(high-risk-write 需用户确认后带 --yes;范围维度用 --scope,取值 content / formats / all) | lark-sheets-range-operations | --type |
| 批量清除多区域 | +cells-batch-clear(high-risk-write 需用户确认后带 --yes;--scope) | lark-sheets-batch-update | --target |
| 调整列宽 / 行高 | +cols-resize / +rows-resize(行、列是两个独立命令;连同样式一起调时并入 +styles-put 的 row_sizes / col_sizes) | lark-sheets-range-operations | --dimension(无此 flag) |
| 看工作簿 / 子表清单 | +workbook-info | lark-sheets-workbook | +sheet-list、+workbook-get、+workbook-list |
| 导入本地 xlsx/xls/csv 文件为飞书电子表格 | +workbook-import --file ./x.xlsx(本地表格文件 → 飞书电子表格的正解;仅要导成多维表格 bitable 时才用 drive +import --type bitable) | lark-sheets-workbook | drive +import(绕路且要多给 --type)、本地读出数据再 +workbook-create 重灌(多此一举);要给已有工作簿加子表别用它(只会新建独立表,走 +sheet-copy / +sheet-create) |
| 参考某个已有在线表、把多个本地文件 / 数据各作为一张子表追加进去(不另起独立表) | 先 +workbook-info 拿模板子表 sheet_id → +sheet-copy 逐张复制模板子表(公式 / 合并 / 分组底色 / 列宽 / 条件格式全继承)再用 +cells-* 只改数据;无模板可继承时 +sheet-create 建空子表 + +table-put --sheets/--styles 写入 | lark-sheets-workbook | 把文件 +workbook-import / +workbook-create 另起一张独立新表(目标是并入已有工作簿时就跑偏了;这两条只产新表、不接受已有表定位) |
| 复核某次(AI)编辑改了什么 / 取两个版本间的变更 | +changeset-get --start-revision <编辑前版本>(省略 --end-revision 取到最新;版本差 ≤ 20) | lark-sheets-changeset | — |
| 取当前文档 revision(版本号) | +revision-get | lark-sheets-workbook | — |
| 导出 xlsx / 单表 csv | +workbook-export | lark-sheets-workbook | — |
⚠️ 动手前的触发式必读(按动作判定,不看主场景):本次操作只要涉及样式 / 美化(底色 / 边框 / 字号 / 对齐 / 数字格式 / 汇总行 / 配色 / 列宽行高),动手前先读
lark-sheets-visual-standards;只要要写飞书公式,动手前先读lark-sheets-formula-translation(飞书函数与 Excel 有差异,凭直觉迁移易错),写完后可读lark-sheets-formula-verify并执行+formula-verify做一次诊断。哪怕主任务是"建表 / 展开数据 / 录入",只要动作里含美化或写公式就适用——别因"这不算专门的美化 / 公式任务"而跳过。 ⚠️ 两种图片别选错:图若绑定某条记录、要随行排序 / 筛选 / 增删(凭证 / 证件照 / 每行配图,话里带「对应 / 每行 / 这列」等绑定词)→ 单元格图片+cells-set-image;只是自由摆放的装饰(logo / 水印 / 封面)→ 浮动图片+float-image-create。别因「浮动图更好控制 / 更熟」默认选浮动图。 ⚠️ 纯文本还是数值语义(看数据本质,不看当下用途):金额 / 百分比 / 比率 / 计数 / 日期等本质是量值的数据 → 一律数值写入,常规二维表用+table-put(dtypes声明类型 +formats设展示格式),版式装不下(多级 / 合并表头的宽表 leaderboard 等)改用+cells-set传数字(百分比传小数0.4)+number_format,照样显示40%且数值无损。只有编号 / 身份证 / 单据号这类本质是标识符、要字面保真的才用+csv-put平铺。几个常见借口都不成立——"只是 leaderboard / 报表展示不用算""版式复杂""样式以后再刷、先铺文本"都不是把百分比写成"40%"字符串灌+csv-put的理由(展示不改变它是数值;类型不能后补,落成文本就回不来)。判据与操作展开见lark-sheets-write-cells「数字还是文本」。 ⚠️ 要新建子表 / 整表美化 → 别默认「+csv-put写值再事后刷样式」:+table-put/+workbook-create的--styles能在写数据的同一步带全套样式(区域底色 / 边框 / 列宽 / 行高 / 合并),且+table-put的 payload 里若 sheet 名不在工作簿中会自动新建子表——纯文本表要新建子表 + 美化时同样走这里(--styles与列是否 typed 无关),比「+csv-put写值 + 多次+cells-batch-set-style/+*-resize刷样式」少好几次调用(冻结行列等 sheet 级属性仍需+dim-freeze单独一步)。存量表事后美化则一次+styles-put交付(同一份--styles词汇)。 ⚠️ 定位 flag:+cells-get/+cells-set/+csv-get用--range;+csv-put规范用--start-cell(单个左上角锚点格),也接受--range别名(区间自动取左上角),二者择一即可。--range只写A1:B2纯区间——不接受 OpenAPI 的sheetId!A1:B2前缀写法,子表定位必须单独传--sheet-id/--sheet-name(从 OpenAPI 迁移习惯最易踩)。 ⚠️ 读取附加信息一律走+cells-get --include …,没有--with-styles这类 flag;看合并单元格用+sheet-info的merged_cells,不要在+cells-get里找 merge flag。
💡 高频写命令签名(照抄改参即可;各命令 --help 的 Tips 段有同款示例):
lark-cli sheets +cells-set --url <U> --sheet-name S1 --range A1:B1 --cells '[[{"value":"名称"},{"formula":"=SUM(B2:B9)"}]]' # --cells 恒为二维数组 [[…]],单格也是 [[{…}]]
lark-cli sheets +cells-set-style --url <U> --sheet-name S1 --range A1:D1 --font-weight bold --background-color "#F0F0F0" --horizontal-alignment center
lark-cli sheets +styles-put --url <U> --styles - <<'JSON'
{"styles":[{"name":"S1","cell_styles":[{"range":"A1:D1","font_weight":"bold","background_color":"#F0F0F0"}],"col_sizes":[{"range":"A:D","type":"pixel","size":120}],"freeze":{"rows":1}}]}
JSON
lark-cli sheets +batch-update --url <U> --dry-run --operations - <<'JSON' # high-risk:先 --dry-run 给用户看,同意后原样重发并追加 --yes
[{"shortcut":"+cells-set","input":{"sheet_name":"S1","range":"A1","cells":[[{"value":"x"}]]}}]
JSON
lark-cli sheets +dim-freeze --url <U> --sheet-name S1 --rows 1 --cols 2 # 一次给全;冻结是整份状态覆盖,没写的轴即为不冻结
lark-cli sheets +dim-insert --url <U> --sheet-name S1 --position 3 --count 2 --inherit-style before # 行/列由 --position 决定:数字=行、字母=列,无 --dimension
lark-cli sheets +cols-resize --url <U> --sheet-name S1 --range A:C --width 120 # 像素;分列不同宽用 --widths '{"A":80,"C:E":120}'
lark-cli sheets +sheet-copy --url <U> --sheet-name 源表名 --title 副本名 # --sheet-name=源表、--title=新表名lark-sheets-read-data)| 用户需求 | 读取路径 |
|---|---|
| "完善 / 补齐 / 修正所有 XX"、分析 / 清洗 / 大数据 | 先 scripts/lark_profile_table.py 确认目标区域与字段画像,再原生优先(公式 / 透视表 / 筛选等原生对象,命令见速查表);表达不了再分批 +csv-get 导出 + 脚本处理 + 分批回写(默认覆盖所有对应数据行) |
| "查一下 / 统计 / 汇总"等只读 | 小表 +csv-get 读到上下文;大表先 +workbook-info + 小窗口 +csv-get 定边界,再对未截断窗口跑 scripts/lark_detect_subtables.py / scripts/lark_profile_table.py |
| 需要公式 / 样式 / 批注 | +cells-get |
| 续写 / 扩展已有内容 | +csv-get 看结构 + +cells-get 读源区样式 + +sheet-info --include row_heights,merges(见准则 5) |
"补齐 / 填空"类只探前 10 行就写会漏写表尾——先按
lark-sheets-read-data确认真实数据末行(准则 3)。
2>&1(警告混入会解析失败),用管道或单独重定向 stdout。scripts/lark_*.py(若可用):lark_inspect_workbook.py / lark_detect_subtables.py / lark_profile_table.py 是只读脚本,用来把在线表格整理成结构摘要。可选增强,不是必经步骤——脚本随品悟应用内置分发;脚本运行失败或环境缺少 Python 时直接用 CLI 等价路径(对照表见 lark-sheets-read-data:+workbook-info / +sheet-info / 小窗口 +csv-get)。它们不替代写入类 shortcut;确认目标区域后,写入仍按对应 reference 执行。tmp/ 子目录(见 ../lark-shared/SKILL.md 安全规则),勿落工作目录根。+range-sort 原生工具,别"读出本地排完再整列写回"。+dim-insert 不继承行高:只继承值 / 公式 / 边框,新行回落默认高度截断长文本;插行填长文本前读相邻行 row_height,用 +batch-update 合 +rows-resize 补齐。IFERROR 包裹;写完读结果列首末各 5 行查 #VALUE! / #REF! / #DIV/0!,必要时再跑 +formula-verify 定位问题;同一方案试错上限 3 次。+csv-get 默认含隐藏行列;设 --skip-hidden=true 只看可见,返回的真实行号可能跳空。禁止按返回数组下标推导行号,必须使用 annotated_csv 的 [row=N] 或 row_indices。+workbook-info 掌握全局。--help 输出或推测就降级绕路——工具描述与实现可能不一致,报错才是事实。+batch-update。reference 分两组:先读通用方法与规范(横切所有任务的样式 / 公式规则),再按操作对象进入工具参考查具体 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、日期差、多层范围结果与二次展开)时使用。本文只负责把公式写对,落表后可接 lark-sheets-formula-verify 做诊断。 |
| Reference | 描述 |
|---|---|
| Lark Sheet Formula Verify | 公式写入 / 批量填充 / --copy-to-range 扩展 / 导入含公式工作簿后的诊断入口。对指定子表(或整本工作簿)扫描公式与单元格值,聚合所有 Excel 错误(#REF! / #DIV/0! / #VALUE! / #NAME? / #NULL! / #NUM! / #N/A),同时合并最近一次写入留下的编译失败(formula_errors),输出统一 JSON 让 AI 一次拿到完整健康度报告。任务涉及公式时可调用 +formula-verify 定位问题;status='errors_found' 或 status='partial' 时记录诊断结果并按任务风险决定是否修复。 |
| 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-sheets-formula-verify 做诊断。 |
| Lark Sheet Range Operations | 对飞书表格中指定区域执行结构性操作(不涉及写入单元格数据值)。适用场景:清除内容或格式("清空"、"删除内容"、"去掉格式")、合并/取消合并单元格、调整行高列宽("加宽列"、"自适应列宽")、移动/复制/填充/排序数据("移动数据"、"复制到"、"自动填充"、"按某列排序")。写入单元格数据请使用 lark-sheets-write-cells。 |
| Lark Sheet Styles Put | 把一份声明式视觉规格(样式/边框/合并/行高列宽/冻结)一次性应用到已有飞书表格的多个子表,整份规格一次提交。当任务是对存量表做美化收尾、批量刷样式、统一版式时使用。样式取值标准见 lark-sheets-visual-standards;建新表带样式走 lark-sheets-workbook(+workbook-create --styles)、写数据同步带样式走 lark-sheets-write-cells(+table-put --styles),三者共用同一份 --styles 词汇。仅针对飞书表格。 |
| 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。 |
| Lark Sheet History | 查询飞书表格的历史版本并回滚到指定版本。当用户需要查看一张表的编辑历史版本列表、回滚到某个历史版本、或查询回滚的异步状态(进行中/成功/失败)时使用。回滚为异步操作,发起后通过状态查询轮询结果。仅针对飞书表格。 |
| Lark Sheet Changeset | 读取两个版本(CS revision)之间的 changeset(原始变更操作清单),用于复核某次编辑——尤其是 AI 编辑——是否真实满足用户诉求。传入起始版本(编辑前基线),可选结束版本(省略取最新),版本差上限 20;返回里最外层带当前表格最新版本号。当用户需要"看看这次改了什么"、"核对 AI 改动"、"对比两个版本的变更"时使用。 |
| Lark Sheet 旧命令迁移指南 | 重构前的 42 个 sheets 旧命令(+create、+read、+write、+create-sheet、+media-upload 等)已删除,调用会直接报 unknown subcommand。当手上的脚本或 skill 早于本次重构、或收到该报错时,用本文查替代命令,以及那些不只是改名的差异:单元格 payload 词汇({"type":"formula","text":…} 已被拒绝)、响应字段路径、+update-sheet / +update-dimension 拆成多个命令。 |
各 reference 的 shortcut 标题下用一行徽章标注支持的公共 / 系统 flag(如 _公共四件套 · 系统:--dry-run_;_公共:URL/token(无 sheet 定位)…_ 表示只接 URL/token)。type / 必填 / 描述在本段统一声明:
公共四件套 = --url / --spreadsheet-token / --sheet-id / --sheet-name,分成两组 XOR,每组都必须给且只能给一个(XOR = 二选一必填,不是"可选"):
--url(解析 /sheets/、/spreadsheets/、/wiki/ 三种链接;wiki 链接自动定位背后的电子表格)与 --spreadsheet-token(裸 token)二选一。例外:+workbook-create / +workbook-import 产出还不存在的表,不接受任何定位 flag。--sheet-id 与 --sheet-name 二选一。Sheet1:除非对话或上下文已出现具体值,第一步先 +workbook-info 拿 sheets[].sheet_id/title 再选——中文表的子表常叫"数据"/"工作表 1"/业务名,猜名大概率撞 sheet not found。--range 里的 Sheet1! 前缀不能替代 sheet 定位:仍必须传 --sheet-id / --sheet-name。! 时整段用单引号包裹(--range 'Sheet1!A1:B2',挡 bash history expansion;别用 set +H,sh/dash 下非法)。sheet 名含 -/空格需内层再包单引号时用 '\'' 转义:--source ''\''Sales-2025'\''!A1:D100'。_公共:URL/token(无 sheet 定位)…_ 的 shortcut(+workbook-info / +workbook-export / +batch-update / +styles-put / +dropdown-update|delete / +cells-batch-clear / +sheet-create)不接受公共 sheet 定位——不在此穷举,以各 reference 的徽章为准。+pivot-create 用 --target-sheet-id/name(XOR,可都不传)。注意 +table-get 的 --sheet-id / --sheet-name 是可选过滤(限定只读某一个子表,省略则读全部子表),不是公共四件套那种必填定位。# 统一调用范式:两组定位缺一不可(占位符别原样填;表名先 +workbook-info 查)
lark-cli sheets +csv-get --url "https://.../sheets/shtXXX" --sheet-name "<真实表名>" --range "A1:F30"| 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 指定查哪个 flag;省略时列出该 shortcut 可查询的 flag。仅对含复合 JSON flag 的 shortcut 有效。 |
--flag-name | string | 否 | 配合 --print-schema:flag 名不带 -- 前缀(cells / properties)。支持点分路径切片:--flag-name properties.snapshot.plotArea.axes 只打印该子树,大 schema(chart 的 properties 约 1700 行)按需取,别整篇翻页。 |
bool flag 语法:开启可用裸
--flag;显式值只用--flag=true或--flag=false,不得用空格分隔。
⚠️ high-risk-write 命令清单(exit 10 强确认门禁):
+batch-update、+cells-clear、+cells-batch-clear、+sheet-delete、+dim-delete、+dropdown-delete、+history-revert,以及各对象删除+chart-delete/+pivot-delete/+cond-format-delete/+filter-delete/+filter-view-delete/+sparkline-delete/+float-image-delete。审批协议:先
--dry-run预览、向用户展示将执行的操作与影响范围,获得用户明确同意后再在原命令追加--yes执行。未经用户同意不得带--yes,也不得在 exit 10 后静默补--yes重试——那等于禁用门禁。完整协议见../lark-shared/SKILL.md。
Agent 使用提示:写复合 JSON flag 前对结构不确定时,先 --print-schema --flag-name <name>(深层字段用点分路径切片)再构造 payload;图表直接 +chart-create --print-example <type> 拿最小可用模板改参。reference 的 ## Schemas 段只给一层结构。
--print-schema 可查);简单 JSON = 一二维标量数组;非 JSON 文本 = 原样文本(如 CSV)。--print-schema 只对复合 JSON flag 有效。{ok, identity, data, ...};写操作不会自动回读,校验自行调用 +*-list / +*-get / +cells-get。flag 帮助里标注支持 Stdin 的入参,当 payload 较大、含换行 / 引号等特殊字符,或已经落在某个文件里时,优先用 stdin(-)传入,避免命令行超长与 shell 转义问题。
推荐写法:payload 写到 cwd 下 tmp/ 子目录的临时文件(见 ../lark-shared/SKILL.md 安全规则),再用 stdin 喂进去:
# TMPFILE 指向 payload 文件(写在 cwd 下 tmp/ 子目录)
lark-cli sheets +cells-set --url "..." --sheet-name "Sheet1" --range "A1:B2" --cells - < "$TMPFILE"
lark-cli sheets +batch-update --url "..." --dry-run --operations - <<'JSON' # high-risk:先 --dry-run,用户同意后再追加 --yes 重发
[{"shortcut":"+cells-set","input":{...}}]
JSON+table-put 同时传 --sheets 与 --styles 两个大 JSON 时,一个走 -、另一个走 @tmp/styles.json(@file 只接受 cwd 下相对路径,绝对路径会被拒;正解是 stdin,别 cd、临时文件写 cwd 下 tmp/ 子目录,别落用户项目目录根)。set +H(sh/dash 下非法直接报错);参数本身含单引号或 payload 大时走 stdin。bash 代码块(heredoc <<'JSON'、单引号转义 '\'')只适用于 bash / zsh,动手前先判断当前 shell,非 POSIX 环境按下表改写,不要试错式改引号——@file(cwd 相对路径)是全平台无引号问题的兜底形态:| 形态 | bash / zsh | PowerShell | cmd.exe |
|---|---|---|---|
| 大 / 多行 JSON | --flag - <<'JSON' … JSON | 先写 UTF-8 无 BOM 文件再 --flag '@./x.json',或 Get-Content -Raw ./x.json | lark-cli … --flag - | 先写文件再 --flag @./x.json(cmd 无 heredoc / 管道读文件不可靠) |
| 单行 inline JSON | --flag '{"a":1}' | --flag '{"a":1}'(PS 单引号同为字面量) | 不要 inline——cmd 会吃掉内层双引号,一律走 @file |
© Pinvou, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 31 other files (scripts, references) in pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets of Pinvou/pinvou-agent.
Open the folder on GitHubat commit 76cb1db
Lark Sheets next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Lark Sheets this skillPinvou/pinvou-agent | 2.4k | — | ~6.5k | Automated safety check: Pass | MIT | |
| Wechat Gzh Analyzeropenocta/openocta_skills | 166 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Lark Sheetsrongxinzy/RongxinAI | 154 | 2 repos | ~5.3k | Automated safety check: Pass | AGPL-3.0 | |
| Lark Sheetsmajiayu000/claude-skill-registry | 666 | 1 repos | ~4k | Automated safety check: Pass | MIT | |
| Web Searchtmustier/pi-for-excel | 434 | — | ~410 | Automated safety check: Pass | MIT | |
| Lark Driverongxinzy/RongxinAI | 154 | 3 repos | ~4.5k | Automated safety check: Pass | AGPL-3.0 |
openocta/openocta_skills
分析微信公众号后台数据,包括文章阅读量、评论、点赞等统计。当用户需要分析微信公众号数据、导出公众号文章统计报表时调用此技能。
rongxinzy/RongxinAI
飞书电子表格:创建和操作电子表格。支持创建表格、管理工作表与行列结构(增删/合并/调整尺寸/隐藏/冻结)、读写单元格(值/公式/样式/批注/单元格图片)、查找替换、多操作原子批量更新,以及图表、透视表、条件格式、筛选器、迷你图、浮动图片等对象的创建与维护。当用户需要创建电子表格、管理工作表、批量读写或编辑数据、统计汇总与可视化、表格美化、公式计算(含 Excel…
majiayu000/claude-skill-registry
飞书电子表格:创建和操作电子表格。支持工作表与行列结构(增删/合并/尺寸/隐藏/冻结/分组)、单元格读写(值/公式/样式/批注/单元格图片)、区域复制移动排序填充、查找替换、批量更新,图表、透视表、条件格式、筛选器与筛选视图、下拉列表、迷你图、浮动图片等对象的创建与维护,以及公式校验、历史版本回滚、本地 Excel/CSV…
tmustier/pi-for-excel
Search the public web for up-to-date facts. An agent skill from tmustier/pi-for-excel.
rongxinzy/RongxinAI
飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为…
LeoYeAI/openclaw-master-skills
Automate repeatable workflows with WhatsApp/Telegram notifications, Excel/CSV processing, browser automation, and flexible scheduling.
Pinvou/pinvou-agent
何时用:用户明确要通过命令行操作腾讯会议(tmeet),或 Agent 遇到工具缺失/调用失败/能力不足想反馈平台时。OAuth 登录/登出/状态、会议管理(创建/更新/取消/查询/搜索/受邀者)、录制管理(列表/播放地址/智能纪要/转写/权限申请)、元宝纪要(按关键词/时间搜索、稳态/瞬态详情)、会议报告(参会人/等候室/导出明细/异步任务)、通讯录(仅限会议邀请/呼叫入会前置解析,严禁单独查…
Pinvou/pinvou-agent
何时用:仅当用户明确指定 doc/docx/word/在线文档/office文档或提供 doc.weixin.qq.com/doc/ 链接时使用;泛指「做个文档/写文档/整理成文档」默认走 wecomcli-smartpage 或本地工具,本技能不得抢占。doc 内容操作:新建、导入(.doc/.docx/.txt)、读取、追加、覆盖写入;结构化数据需求改用智能文档/智能表格;公共管理走…
Pinvou/pinvou-agent
【何时用:仅当用户明确指向钉钉/DingTalk(钉钉文档、钉钉日程等)时使用;泛指做文档/表格/待办/审批默认走本地工具,不要误用钉钉】用 dws CLI 管理钉钉:AI表格/AI搜问(找人首选)/目标管理(Agoal)/组织大脑/日历/通讯录/群聊与机器人消息/待办/审批/考勤/日志(日报周报)/DING消息/钉钉文档/云盘/Markdown文件/AI听记/邮箱/在线电子表格(axls)/知…
Pinvou/pinvou-agent
【何时用:仅当用户明确指向飞书/Lark(发到飞书、飞书文档等)时使用;泛指做个文档或PPT或表格或方案默认走本地工具,不要误用飞书】飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、BaseApp 应用模式(页面与组件)、Workspace 目录、workflow、角色权限、模板中心(模板分类/列表/搜索);遇到…
Pinvou/pinvou-agent
【何时用:仅当用户明确指向飞书/Lark(发到飞书、飞书文档等)时使用;泛指做个文档或PPT或表格或方案默认走本地工具,不要误用飞书】飞书日历:管理日程和会议室。查看/搜索日程、创建/更新日程、管理参会人、查询忙闲和推荐时段、预定会议室。不负责:查询视频会议记录(本 skill 只覆盖日程;lark-vc 技能未随包收录,可 CLI 直连,见意图路由)、待办任务(走 lark-task)。
Pinvou/pinvou-agent
【何时用:仅当用户明确指向飞书/Lark(发到飞书、飞书文档等)时使用;泛指做个文档或PPT或表格或方案默认走本地工具,不要误用飞书】飞书云空间:管理 Drive 文件/文件夹,上传下载、复制移动删除、评论、权限、密级标签、版本、改标题,导入 Word/Markdown/Excel/CSV/PPTX/.base 为在线文档;doubao.com 云空间 URL 同走本 skill,不回退…
Works with
【何时用:仅当用户明确指向飞书/Lark 电子表格;泛指做表格默认走本地工具】创建/操作飞书电子表格:工作表与行列结构、读写单元格(值/公式/样式/批注/图片)、查找替换、批量更新、图表/透视表/条件格式/筛选/迷你图/浮动图片。按名称搜索云空间表格文件改用 lark-drive 的 drive +search。doubao.com 的 /sheets/ URL 也走本 skill。不适用本地…. Lark Sheets is an agent skill from Pinvou/pinvou-agent.
Lark Sheets fits situations like: tasks that involve Messaging and chat bots; tasks that involve Excel spreadsheets.
Run `npx skills add Pinvou/pinvou-agent --skill lark-sheets -a claude-code`. Or copy the skill folder (pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets in Pinvou/pinvou-agent) into .claude/skills/lark-sheets in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Pinvou/pinvou-agent --skill lark-sheets -a codex`. Or copy the skill folder (pinvou3-app/src-tauri/resources/common/bundle/lark-skills/lark-sheets in Pinvou/pinvou-agent) into .agents/skills/lark-sheets in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Pinvou/pinvou-agent --skill lark-sheets -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/lark-sheets, .gemini/skills/lark-sheets, .github/skills/lark-sheets and .opencode/skills/lark-sheets in your project.
SKILL.md names no scripts, command-line tools or credentials: Lark Sheets is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Lark Sheets is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.5k tokens (SKILL.md is roughly 26k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 94k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Lark Sheets: Wechat Gzh Analyzer (openocta/openocta_skills, 166 stars), Lark Sheets (rongxinzy/RongxinAI, 154 stars), Lark Sheets (majiayu000/claude-skill-registry, 666 stars) and Web Search (tmustier/pi-for-excel, 434 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Pinvou (a GitHub organization) maintains it in Pinvou/pinvou-agent, which has 2,377 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 8, 2026.
Source: Pinvou/pinvou-agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.