Feishu Doc
openclaw/openclaw
Feishu document read/write workflows. An agent skill from openclaw/openclaw.
OpenLark Rust SDK 命名与对外 API 表达规范(Client/Service/Resource/Request/Builder)。用于新增/重构公开类型、设计 meta 调用链、调整模块导出与 prelude、或排查 Service 同名/语义错配/V{N}Service 版本层错位、Resource 与 Service 同类型两名、以及…
$ npx skills add foxzool/openlark --skill openlark-naming -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install foxzool/openlark openlark-naming --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/foxzool/openlark.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/openlark-naming .claude/skills/openlark-naming && 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 "openlark-naming" agent skill from https://github.com/foxzool/openlark/tree/main/.agents/skills/openlark-naming into .claude/skills/openlark-naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openlark-naming", 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/foxzool/openlark/tree/main/.agents/skills/openlark-namingType 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 foxzool/openlark --skill openlark-naming -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install foxzool/openlark openlark-naming --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/foxzool/openlark.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/openlark-naming .agents/skills/openlark-naming && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "openlark-naming" agent skill from https://github.com/foxzool/openlark/tree/main/.agents/skills/openlark-naming into .agents/skills/openlark-naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openlark-naming", 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 foxzool/openlark --skill openlark-naming -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install foxzool/openlark openlark-naming --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/foxzool/openlark.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/openlark-naming .cursor/skills/openlark-naming && 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 "openlark-naming" agent skill from https://github.com/foxzool/openlark/tree/main/.agents/skills/openlark-naming into .cursor/skills/openlark-naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openlark-naming", 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/foxzool/openlark.git --path .agents/skills/openlark-naming--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 foxzool/openlark --skill openlark-naming -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install foxzool/openlark openlark-naming --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/foxzool/openlark.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/openlark-naming .gemini/skills/openlark-naming && 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 "openlark-naming" agent skill from https://github.com/foxzool/openlark/tree/main/.agents/skills/openlark-naming into .gemini/skills/openlark-naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openlark-naming", 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 foxzool/openlark openlark-namingInstalls 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 foxzool/openlark --skill openlark-naming -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/foxzool/openlark.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/openlark-naming .github/skills/openlark-naming && 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 "openlark-naming" agent skill from https://github.com/foxzool/openlark/tree/main/.agents/skills/openlark-naming into .github/skills/openlark-naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openlark-naming", 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 foxzool/openlark --skill openlark-naming -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install foxzool/openlark openlark-naming --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/foxzool/openlark.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/openlark-naming .opencode/skills/openlark-naming && 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 "openlark-naming" agent skill from https://github.com/foxzool/openlark/tree/main/.agents/skills/openlark-naming into .opencode/skills/openlark-naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openlark-naming", 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.
openlark-namingOpenLark Rust SDK 命名与对外 API 表达规范(Client/Service/Resource/Request/Builder)。用于新增/重构公开类型、设计 meta 调用链、调整模块导出与 prelude、或排查 Service 同名/语义错配/V{N}Service 版本层错位、Resource 与 Service 同类型两名、以及…
Openlark Naming is an agent skill from foxzool/openlark. OpenLark Rust SDK 命名与对外 API 表达规范(Client/Service/Resource/Request/Builder)。用于新增/重构公开类型、设计 meta 调用链、调整模块导出与 prelude、或排查 Service 同名/语义错配/V{N}Service 版本层错位、Resource 与 Service 同类型两名、以及 Client/Service/Resource 调用风格不一致的问题。触发关键词:命名规范、Client vs Service、Resource、重命名、V1Service 版本层、meta 调用链、公开 API
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Productivity & Automation, covering Messaging and chat bots. It works with Rust and Feishu (Lark). The repository describes itself as: 飞书开放平台的非官方 Rust SDK,支持自定义机器人、长连接机器人、云文档、飞书卡片、消息、群组等 API 调用。 The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 6128d6d. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadGrepGlobEditFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
rgjustcargoFrom 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.
Openlark Naming loads about 2.1k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 535 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 noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Grep, Glob, EditAutomated 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); files beside SKILL.md are not scanned.
The full file from foxzool/openlark at commit 6128d6d, republished under its Apache-2.0 licence (© foxzool). 535 words, ~2,065 tokens.
.claude/skills/openlark-naming/SKILL.md (or your agent's skills folder).本技能适用场景:
pub struct / pub type / re-export / prelude)client.xxx.v1.yyy.zzz 这类 meta 调用链*Service 同名、语义混乱、调用方式不一致,想系统性收敛其他技能:
Skill(openlark-code-standards)Skill(openlark-design-review)Skill(openlark-api)openlark-namingopenlark-code-standardsopenlark-design-reviewopenlark-apiopenlark-validation-styleopenlark-design-review。openlark-api。openlark-code-standards。Config(或 Arc<Config>),组织调用链与透传配置 → *ClientService、ExecutableBuilder)→ *Service*Resource*V1Service / *V2Service(或 *V1Client 视职责而定)*Request 或 *RequestBuilder(同一 crate/模块树二选一并保持一致)约束:不要用
*Service去命名“仅做层级组织/透传 config 的节点”。
*Client 命名规则Arc<Config>pub xxx: XxxResource / pub v1: XxxV1Client 之类字段链common/chain.rs(避免被 API 实现校验脚本当成 endpoint 实现文件)每个业务 crate 必须导出一个 XxxClient 类型作为主入口,有两种合法实现方式,按 crate 规模/复杂度二选一:
| 方式 | 写法 | 适用 | 现码实例(核实) |
|---|---|---|---|
| A. 单 facade type alias | pub type XxxClient = XxxService;(写在 lib.rs) | crate 规模小、内部仅一个 Service、无需多层链式入口 | crates/openlark-workflow/src/lib.rs:121 pub type WorkflowClient = WorkflowService;;同类还有 bot/application/platform/mail/helpdesk/analytics/user 等 |
| B. 分层调用链 struct | pub struct XxxClient { ... }(写在 common/chain.rs,经 lib.rs re-export) | crate 含多 bizTag/project、需要 client.xxx.v1.yyy 链式入口 | crates/openlark-docs/src/common/chain.rs → lib.rs:125 DocsClient;同类有 cardkit/communication/meeting/ai |
权威映射表:各 crate 当前采用 A 还是 B、内部类型与导出名对照,以
docs/CLIENT_NAMING_CONVENTION.md的「当前映射」表为准;新增/切换实现方式时同步更新该表,勿仅凭记忆判断。
*Service 命名规则openlark_core::trait_system::Service / ExecutableBuilder),优先在 *Service 层承接,保证可观测性(service_name/version)一致。*V1Service / *V2Service(或 *V1Client,按下方双轨约定选择)DocsService,内层 v1::DocsService 也叫 DocsServiceuse 歧义、re-export 冲突、文档示例难以写清同一个版本层在 crate 内会同时出现两个名字,分别承担不同职责,二者都必须带版本号且语义不混:
| 侧 | 命名 | 职责 | 典型位置(现码核实) |
|---|---|---|---|
| 执行 Service 侧 | *V{N}Service | 能力载体,承接 trait(Service/ExecutableBuilder),提供一组可执行 API | crates/openlark-cardkit/src/service.rs:27 返回 CardkitV1Service;crates/openlark-meeting/src/calendar/service.rs:26 定义 CalendarV4Service |
| chain.rs facade 侧 | *V{N}Client | 门面/链式入口节点,持有 Arc<Config> + 暴露资源字段链 | crates/openlark-cardkit/src/common/chain.rs:37 pub struct CardkitV1Client |
service.rs 的 v1() 返回 CardkitV1Service)CardkitV1Client(facade)↔ CardkitV1Service(执行),版本号一致,不可一侧带版本号、另一侧不带*Resource 命名规则(meta 调用链中间层)openlark-cardkit 的 CardResource / CardElementResource*Service,最终变成“同名泛滥 + 读者不知道哪里能 execute”*Request vs *RequestBuilder(风格统一,禁止混用)在同一个 crate(至少同一业务域目录树)里二选一:
XxxRequestBuilder:负责参数收集与构建execute(&XxxService) / execute_with_options(&XxxService, ...):统一执行入口XxxRequest::new(config):请求对象持有 Config.execute() / .execute_with_options(option):无需传 service禁止:同一层级里一部分 API 需要
execute(&service),另一部分是.new(config).execute(),会显著增加使用心智与封装成本。
doc,类型不要叫 DocsServicepermission,类型不要叫 DriveService事件(event)、回调(callback)、webhook 推送这类被动接收能力,命名与归属规则与主动调用的业务 API 不同:
openlark-webhook),不注册进 openlark-client 的 ServiceRegistry 统一门面。openlark-webhook 是独立 crate,其入口 WebhookClient 由 crates/openlark-webhook/src/lib.rs:60 re-export(pub use robot::v1::client::WebhookClient;);在 crates/openlark-client/src/ 下搜索 webhook 无任何注册项。*Client 作为该 crate 的对外入口(如 WebhookClient),但不要求与 openlark-client::Client 形成 client.xxx 链式段,因为它不属于主动 API 调用链。Config/app_id,构造可能为 WebhookClient::new()(无参)或仅传 webhook URL/secret,与业务 *Client::new(config) 不同;命名上仍叫 *Client,但归属与生命周期独立。openlark-client。DocsService 重名问题历史问题:openlark-docs 曾出现多处 DocsService 同名但语义不同(ccm::docs 入口、ccm::docs::v1 版本层、ccm::doc 模块错配),是本技能最初触发的典型案例。
治理结论(已落地,作为同类问题的参考样板):
DocsClient 作为唯一对外入口,prelude 注释明确记载:crates/openlark-docs/src/prelude.rs:16 — // 已移除 Service 的 prelude 导出,统一使用 DocsClient 作为唯一入口DocsClient 由分层调用链实现,定义于 crates/openlark-docs/src/common/chain.rs,经 crates/openlark-docs/src/lib.rs:125 re-export(pub use common::chain::DocsClient;)*Service 类型(CcmService/BaseService/BitableService 等)保留为内部执行层,不再进 prelude,仅在需要时通过完整路径访问*Service 泛名泛滥、re-export 冲突难收敛时,优先收敛为单一 *Client 门面 + 内部 Service 分层,而非逐个改名 *Service现码核实:上述 prelude.rs:16 与 lib.rs:125 的 file:line 均有效;旧的
ccm/docs/mod.rs:8、ccm/docs/v1/mod.rs:25、ccm/doc/mod.rs:65三处引用已全部失效,勿再引用。
现码中仍存在“同一结构体同时暴露 *Resource 与 *Service 两个名字”的兼容残留,是典型的待收敛反例:
crates/openlark-cardkit/src/cardkit/cardkit/v1/card/element/mod.rs:47/// 兼容历史命名:card.element 服务
pub type CardElementService = CardElementResource;CardElementResource(mod.rs:42,资源节点语义),却又 pub type 出一个 CardElementService 别名。*Service),造成“读者不知道哪里能 execute”的同名泛滥;别名仅为兼容历史调用而存在。CardElementService 别名,统一只保留 CardElementResource。排查方法:
rg -n "pub type .*Service = .*Resource" crates/可一次性找出所有此类“同类型两名”残留。
prelude/re-export 是否引入同名冲突(尤其是 *Service 这种泛名;已治理的 DocsService 勿再复现)*Client / *Service / *Resource 的职责是否清晰,调用方式是否一致*V{N}Service(或 *V{N}Client),避免重复 *Service;facade 侧 *V{N}Client 与执行侧 *V{N}Service 版本号是否成对一致*Resource 与 *Service 两个名字(rg "pub type .*Service = .*Resource" 应无新增)openlark-client 门面(webhook/event 应在独立 P2 crate)just lint:等价于 cargo clippy --workspace --all-targets --all-features -- -Dwarnings -A missing_docs(justfile:14),务必带 --all-targets 以覆盖 examples/tests/benches,确保改名未漏掉非 lib 目标[[example]] required-features:根 Cargo.toml 每个 [[example]] 需声明所依赖的 feature(如 required-features = ["communication", "websocket"],见 Cargo.toml:248+);example 引用的类型若位于 feature-gated 模块,缺声明会导致 --all-features 之外编译失败//! 在 #![cfg(feature)] 之上:契约测试/集成测试文件开头顺序固定为「文件级文档注释 //! 在前、#![cfg(feature = "...")] 属性在后」,再 use(正例:crates/openlark-client/tests/docs_feature_contract.rs:1-6);改名时勿颠倒顺序,否则 inner attribute 报错© foxzool, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/openlark-naming of foxzool/openlark.
Open the folder on GitHubat commit 6128d6d
Openlark Naming 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 |
|---|---|---|---|---|---|---|
| Openlark Naming this skillfoxzool/openlark | 106 | — | ~2.1k | Automated safety check: Notes | Apache-2.0 | |
| Feishu Docopenclaw/openclaw | 392k | — | ~516 | Automated safety check: Pass | MIT | |
| Claude To Imop7418/Claude-to-IM-skill | 2.9k | — | ~3.4k | Automated safety check: Notes | MIT | |
| Feishu Docraucvr/Group-Goki | 112 | 3 repos | ~592 | Automated safety check: Pass | MIT | |
| Feishu BridgeAlexAnys/feishu-openclaw | 317 | 1 repos | ~615 | Automated safety check: Pass | None | |
| Content CollectorvigorX777/content-collector-skill | 240 | — | ~2k | Automated safety check: Pass | None |
openclaw/openclaw
Feishu document read/write workflows. An agent skill from openclaw/openclaw.
op7418/Claude-to-IM-skill
Bridge THIS Claude Code or Codex session to Telegram, Discord, Feishu/Lark, QQ, or WeChat so the user can chat with Claude from their phone.
raucvr/Group-Goki
Feishu document read/write operations. An agent skill from raucvr/Group-Goki.
AlexAnys/feishu-openclaw
Connect a Feishu (Lark) bot to Clawdbot via WebSocket long-connection.
vigorX777/content-collector-skill
Collect social media content (X/Twitter, WeChat, Jike, Reddit, etc.) into Feishu bitable.
xjtulyc/MedgeClaw
Sends interactive Feishu group-chat cards that mix markdown text with uploaded chart or diagram images, for progress updates and analysis results.
foxzool/openlark
Prove OpenLark (Feishu/Lark Rust SDK) changes the way a maintainer does — cargo build/test, public examples, API coverage and field-verify harnesses.
foxzool/openlark
OpenLark 项目 API 接口实现规范(速查)。用于添加/重构飞书开放平台 API:确定落盘路径、实现 Body/Response + Builder(Request)、对齐 endpoints 常量/enum、补齐 mod.rs 导出,并明确"调用服务端 API"的方法签名/RequestOption 传递约定。触发关键词:API 接口、API 文件、飞书 API、添加…
foxzool/openlark
OpenLark API 字段核对技能。用于新增/重构飞书 API 后,核对 Rust 实现的请求体/响应体字段是否与飞书官方文档一致。通过 playwright 渲染飞书 SPA 文档页面,提取真实的请求/响应字段定义,对比代码实现找出不符项。触发关键词:字段核对、字段验证、字段不符、文档核对、核对请求字段、核对响应字段、飞书文档字段、推断字段、user 级接口、用户级接口字段
foxzool/openlark
OpenLark 项目代码规范检查技能。用于快速审查仓库内的架构一致性、API 实现套路、参数校验、命名与导出规范,并输出可执行检查清单与证据路径。Triggers: code review / consistency check / architecture audit / 规范检查 / 风格一致性 / 体检 / 对齐约定。项目锚点见 AGENTS.mdCONVENTIONS 与…
foxzool/openlark
OpenLark Rust SDK 的代码设计/公共 API 规范审查技能(面向 crate/模块)。用于系统化检查入口设计、feature gating、Request/Service/Builder 一致性、端点体系、Config/错误处理、导出与文档同步、测试与告警控制,并输出按优先级排序的整改清单与可落地改造方案。触发关键词:设计审查、crate 设计、API 设计、public…
foxzool/openlark
OpenLark API 覆盖率验证技能。用于验证各 crate 的 API 实现数量与覆盖率,基于 tools/validateapis.py 脚本和 apilistexport.csv 对比实际代码实现。触发关键词:API 验证、API 覆盖率、验证 API 数量、检查 API 实现、API 统计
Works with
Categories
OpenLark Rust SDK 命名与对外 API 表达规范(Client/Service/Resource/Request/Builder)。用于新增/重构公开类型、设计 meta 调用链、调整模块导出与 prelude、或排查 Service 同名/语义错配/V{N}Service 版本层错位、Resource 与 Service 同类型两名、以及…. Openlark Naming is an agent skill from foxzool/openlark.
Openlark Naming fits situations like: tasks that involve Messaging and chat bots.
Run `npx skills add foxzool/openlark --skill openlark-naming -a claude-code`. Or copy the skill folder (.agents/skills/openlark-naming in foxzool/openlark) into .claude/skills/openlark-naming in your project. Claude Code loads it when a task matches its description.
Run `npx skills add foxzool/openlark --skill openlark-naming -a codex`. Or copy the skill folder (.agents/skills/openlark-naming in foxzool/openlark) into .agents/skills/openlark-naming 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 foxzool/openlark --skill openlark-naming -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/openlark-naming, .gemini/skills/openlark-naming, .github/skills/openlark-naming and .opencode/skills/openlark-naming in your project.
Going by SKILL.md and its folder, Openlark Naming needs the command-line tools its instructions call (rg, just and cargo). Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob, Edit.
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 notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Openlark Naming is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Openlark Naming: Feishu Doc (openclaw/openclaw, 392k stars), Claude To Im (op7418/Claude-to-IM-skill, 2.9k stars), Feishu Doc (raucvr/Group-Goki, 112 stars) and Feishu Bridge (AlexAnys/feishu-openclaw, 317 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
foxzool (a GitHub user) maintains it in foxzool/openlark, which has 106 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 3, 2026.
Source: foxzool/openlark on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.