kubai-icons
An agent skill that draws animated icons in one consistent style, for Claude Code, Codex and other coding agents. Comes with 2,600+ open-source icons for React, Vue and SVG, and a website to browse them.
- 评测生成时间(北京时间)
- 本报告引擎
- v3.17.3
- 当前引擎
- v3.17.3
规则版本一致,但报告只反映生成时的证据,不代表项目代码和安全状态始终不变。
进入后确认来源与额度,提交才会创建任务。
核对代码版本与送评文本摘要
仅记录实际送评的受限文本,不是完整仓库审计、安装结果或运行时安全保证。Stars、下载量和仓库元数据为采集时的独立信号,不属于此 commit 快照。
kubai087/kubai-icons @ 25c5bdc5ea9ebd57f4f9a96434e4605a4ba23f94目录树:fc09b583091f55277f456e6752c2b87497d6e6e1
README 来源:README.md
- README.md · 12020 字符
SHA-256: 7ef7ef9b6d8b3b1113ecaf7d3cf5105f5b8109d4a91ee407c8fd05610519f554 - SKILL.md · 2905 字符
SHA-256: c1b67635a641f1c211d2763684f8f4bbe3a4ad49728dd891cde272f16e1b4869 - package.json · 1259 字符
SHA-256: 60f6276534250484beef1e7be9e9875e115e0656d6c67d9c2286f1d885f10148 - SECURITY.md · 820 字符
SHA-256: 34641577386bcd3d40554347af4519289c0fb9a39ace4343de366c793887f196 - site/package.json · 860 字符
SHA-256: ab1f960a9ae8b50747f6d3d4e5acf76d0842c2cc907aedd9233f2ce67ae6b0ca - packages/core/package.json · 1356 字符
SHA-256: 666f77f6ad68a9cfe3bba6a94ef6450540f87b4a2d8f72ddb03312477557db8b - packages/react/package.json · 1056 字符
SHA-256: 9c6b5356c9d39ba49a803a681b18828bed9e972afec742b517b7b52f999e543f - packages/static/package.json · 757 字符
SHA-256: f24236877a3d3dd50d7234ac23b0ed1ca67f0b869dc325c8b9b3a8bd5ddbec8f - packages/vue/package.json · 1046 字符
SHA-256: 48dc5cd00d2fc2e8a3bf5ccbff6e554547d29af59c6b6d46e5c8d0ac42c55973 - src/engine.js · 13889 字符
SHA-256: 01120674590e0a3e5bd7d53bc232ae97a95505a0b3d0f4b6e05abeb057823def - src/icons.js · 65563 字符
SHA-256: 7e729fef3b685f0eb774d52ba0a0ad856b42ec050c3df489006627748e91ea62 - src/app.js · 4760 字符
SHA-256: 9a9fd8bdc6d26348361cea3bb211c7a557a1a4d2a19605c77b319d84f5fdcc53 - scripts/check.mjs · 10594 字符
SHA-256: 345ac20b15cd3300051bf61eff8550497844b19378a95e9384abe4d78a4997b2 - scripts/export.mjs · 7425 字符
SHA-256: b6e48d65253dbae96f7934262cac088f1bf9d252de6d70c32b20679adb6bb95e - tools/check.mjs · 5795 字符
SHA-256: 571be3876124798171c104d6869e858abf385bc57a9a7203ccbbce987086a2fd
摘要对应送评 UTF-8 文本,可能为限额节选,不等于 Git blob SHA。来源由采集方提供,摘要本身不证明来源真实性。
综合采用结论
证据充分,整体质量与安全表现优秀
- 基础评测完成+25/25确定性评分与静态安全扫描已完成
- README 有效证据+25/259,951 个去重后的有效字符
- 独立证据来源+20/206 类非重复证据,重复文件不叠加
- 仓库元数据+10/10已取得仓库状态与采用数据
- 活跃记录+5/5已取得最近提交时间
- AI 复核+15/15已完成结构化 AI 证据复核
本报告评了什么
综合分用于静态采用筛选,不是任务成功率,也不代表使用 Skill 后的能力提升。
- 静态检查范围
- 记录 15 个文件 · 130,105 字符
- 只检查采集到的受限文本与已知风险模式;未读取的脚本、依赖和运行环境不在结论内。
- AI 内容复核
- 已使用
- 复核送评文本的说明和设计,不是安装测试或实际任务执行。记录缺失时不推断已使用或未使用。
- 真实任务效果
- 本报告未提供实测证据
- 没有使用/不使用 Skill 的任务对照、重复运行或耗时与 token 成本结果。采用前仍需在隔离环境验证自己的任务。
脚本引用覆盖
已纳入文本静态扫描 6 项/未纳入 1 项
被选 Skill:SKILL.md
仅检查被选 Skill 的直接脚本引用,一跳读取,不跟进 imports 或依赖;不执行脚本,脚本文本不送入 AI 质量复核。已纳入只表示文本已扫描,不代表安全。
仅统计本记录中的可识别引用;未纳入或未记录的部分保持未知,不按安全通过处理。
查看 7 项引用明细
1. 已纳入
引用位置:
SKILL.md:20目标路径:
src/engine.js文本已纳入静态扫描,不代表脚本安全。
2. 已纳入
引用位置:
SKILL.md:21目标路径:
src/icons.js文本已纳入静态扫描,不代表脚本安全。
3. 已纳入
引用位置:
SKILL.md:22目标路径:
src/app.js文本已纳入静态扫描,不代表脚本安全。
4. 已纳入
引用位置:
SKILL.md:23目标路径:
scripts/check.mjs文本已纳入静态扫描,不代表脚本安全。
5. 已纳入
引用位置:
SKILL.md:24目标路径:
scripts/export.mjs文本已纳入静态扫描,不代表脚本安全。
6. 路径不符合边界
引用位置:
SKILL.md:34引用不是允许的仓库相对路径。
7. 已纳入
引用位置:
SKILL.md:36目标路径:
tools/check.mjs文本已纳入静态扫描,不代表脚本安全。
Kubai 图标生成与自检流程
SKILL.md 流程节为单一任务的连续步骤,含读规则、写图标、自检、导出,无多方请求响应
左右滑动查看完整图示
- • SKILL.md 流程第 1-2 步:读 PROMPT.md,确定动态/静态交付形式
- • SKILL.md 流程第 6-7 步:把名字加进 src/app.js 的 ORDER,运行 check.mjs 自检
- • SKILL.md 流程第 9 步:node scripts/export.mjs --only ... --palette 彩色 --out 目标目录
- 通过: Agent Skills 格式校验 1/1 个通过
- 通过: 1 个有效 Skill 含可核实的指令步骤或示例
- SKILL.md 流程第 7 步:node scripts/check.mjs --only 新图标A,新图标B --with 文件夹,邮件,下载,截图在 check-out/
- SKILL.md 环境节:Node 18 以上,以及 Chrome,浏览器路径可用 CHROME 覆盖
- README 导出节参数表:--palette 彩色/蓝灰/青瓷/薄荷/薰衣草/杏色/黑色,--state hover,--size,--pad
- README 许可证表:icons/ 与四个包为 MIT,skill 为 Kubai Icons License,site/tools/tests/docs 保留所有权利
- README TIP:skill 需能读图的强模型,开发与盲测使用 Claude Opus 5.5
- 问题与用途描述
- 有效 README
- 安装或接入步骤
- 可执行示例
- 通过: Agent Skills 格式校验 1/1 个通过
- 发现系统进程或命令执行能力
- SKILL.md:description 未清楚说明何时使用该 Skill
- 自检需 Node 18+ 与 Chrome,README 提示需能读图的强模型(Claude Opus 5.5),门槛较高
- 设计规则全部在 PROMPT.md,SKILL.md 仅摘要,未读该文件难以判断风格约束
- 静态导出示例图标名为中文,与开源库英文命名体系并存,易混淆
需要为产品批量生成风格统一功能图标的团队、要带 hover 动效 SVG 图标的网页/前端项目、需要静态 SVG 切图交付设计工具或原生 App 的场景
无法运行 Node 与无头 Chrome 的离线环境、不能使用可读图模型、仅纯文本推理的代理环境
也有自己的公开项目?先看完证据,再用当前规则生成独立报告。
评测我的项目 →process-executionscripts/check.mjs:19high confidenceimport { execFileSync } from 'no***ss';修复:限制可执行命令与参数,禁止拼接用户输入,并采用最小权限沙箱。
process-executionscripts/export.mjs:15high confidenceimport { execFileSync } from 'no***ss';修复:限制可执行命令与参数,禁止拼接用户输入,并采用最小权限沙箱。
- 01限制可执行命令与参数,禁止拼接用户输入,并采用最小权限沙箱。
- 02修复 SKILL.md:description 未清楚说明何时使用该 Skill
方法、证据与局限展开收起
GitHub Repository API
15 个文件 · 130,105 字符
v3.17.3 · AI 内容复核:已使用(deepseek-flash)
- 静态评测不会安装或执行项目代码
- 安全扫描基于高信号文件与已知模式,不能替代人工审计
- 流行度只反映采用程度,不代表安全或工程质量
- 脚本覆盖仅针对被选 Skill 中可识别的直接引用;不递归分析依赖,不执行脚本,脚本未送入 AI 质量复核
30 天热度趋势
README
Kubai Icons
An agent skill that draws animated icons in one consistent style.
Plus 2,800+ open-source icons drawn with it, for React, Vue and the web.
Install the skill · Browse the icons · Use them in code · Docs
What's included
| Part | What you get |
|---|---|
| Agent skill | The rules, engine and self-check that draw every icon in one hand. Give Claude Code, Codex or another coding agent a product, and it draws the icons that product needs. |
| Icon library | 2,800+ icons: nearly 900 objects, plus badged and slashed "off" versions. For React, Vue, plain JavaScript, web components and static SVG. MIT licensed. |
| Website | icons.kubai.design, in 16 languages. Search every icon by name, shape or meaning, recolor it, copy its code or a prompt for your agent, download it as SVG or PNG, and save a collection as a ZIP. |
Install the skill
Copy this into your agent and send it:
Install the Kubai Icons skill for me:
clone https://github.com/kubai087/kubai-icons into your skills folder as kubai-icons
(~/.claude/skills in Claude Code, ~/.agents/skills in Codex;
if it's already there, pull the latest version instead),
make sure SKILL.md exists in that folder, and tell me when it's ready.
Restart your agent, and the skill is ready. An agent without skill support can read SKILL.md from the cloned folder and follow it.
[!TIP] The skill asks for careful geometry and several rounds of looking at its own screenshots, so use a capable model that can read images. It was developed and blind-tested with Claude Opus 5.5, which we recommend. Other models, such as GPT in Codex, can use the same skill. In Claude Code, run
claude --model claude-opus-5-5.
Install it yourself
Clone the repository into your skills folder. In Codex, use ~/.agents/skills instead.
git clone https://github.com/kubai087/kubai-icons.git ~/.claude/skills/kubai-icons
Or download kubai-icons-v*.zip from the latest release and unzip it there:
unzip kubai-icons-v*.zip -d ~/.claude/skills/
The agent picks the skill up the next time it starts.
Publishing to a skill marketplace that asks for a version and display names in SKILL.md? Upload kubai-icons-v*-platform.zip from the same release. It carries those fields at the top of the frontmatter.
Ask for icons
Describe what you need in plain words. The skill triggers on requests about icons, so you don't need to name it.
- "Read this repository and draw dynamic icons for its main features."
- "Add a scissors icon and a map icon to this set."
- "We need an icon for Export that matches the others."
- "Give me static SVG files I can drop into Figma."
The agent then:
- Reads the rules and writes one line per feature: an everyday object and what it does on hover ("a folder opens", "a lock springs open").
- Draws each icon after the closest existing one, reusing the engine.
- Runs the self-check beside existing icons, compares sizes, outlines, layers and colors, and repeats until every item on the checklist passes.
To start a set for your own product, the skill copies the engine, gallery and self-check into your project and works there.
Drawn by a fresh Claude session that had nothing but SKILL.md and PROMPT.md. Each blind test closes the gaps it finds in the rules.
Use the icons
| Package | For |
|---|---|
kubai-icons-react | React 18+ and Next.js, server rendering included |
kubai-icons-vue | Vue 3 and Nuxt |
kubai-icons | Any page: a framework-free API and the <kubai-icon> web component |
kubai-icons-static | Standalone SVG files for <img>, design tools, native apps and CDNs |
npm i kubai-icons-react
import { Folder, CalendarCheck } from "kubai-icons-react";
// 24px, follows the text color
<Folder />
// Any CSS color, the soft look, a green badge
<CalendarCheck size={32} color="#22C55E" variant="soft" badgeColor="semantic" />
// Plays when the button is hovered
<button data-kubai-trigger>
<Folder size={18} trigger="parent" /> Open
</button>
No build step? One script tag loads any icon on demand:
<script type="module" src="https://cdn.jsdelivr.net/npm/kubai-icons@0/dist/cdn/element.js"></script>
<kubai-icon name="folder-plus" size="32" color="#6366F1"></kubai-icon>
- Moves like the object. A folder opens, an envelope unseals, a calendar turns to the next day. Hover, focus, a tap, a parent element or your own state can play it.
- One accent, every color. Gradients, outlines, marks and shadows derive from one color through CSS, so icons follow
currentColorand recolor without script. - Pay for what you use. One side-effect-free ES module per icon, pre-rendered markup, server rendering, and a tiny runtime that only runs while an icon moves.
Find an icon and copy its code on the website. Guides for every package are in the documentation.
How an icon is built
Every icon is a back piece, optional white content and a front piece, like a folder holding a sheet of paper. Outlines sit outside the fill, so shapes keep their full size. Every gradient, outline and shadow derives from one accent color, so a single value repaints the whole icon. Each part has exactly two keyframes, rest and hover.
The complete rules are in PROMPT.md.
Reference
What the skill ships
| Part | What it does for the model |
|---|---|
PROMPT.md | The rules, each one a hard requirement: canvas and keylines, layers, corners and outlines, light, color, marks and motion. |
src/engine.js | Color derivation, outside outlines, gradients, shadows, interpolation and palettes, already built. New icons reuse them instead of reinventing them. |
src/icons.js | 66 worked examples. Each new icon starts from the closest one in structure. |
scripts/check.mjs | A headless self-check: rest, hover, every moment in between, 24px, 28px and every palette. |
index.html opens a local gallery of these 66 examples. The full library is on the website.
Export static SVG
This exports the skill's own icons, whose names and palettes are in Chinese. For the library, download from the website or use kubai-icons-static.
node scripts/export.mjs --only 文件夹,日历 --palette 薄荷 --out icons/
| Option | What it does |
|---|---|
--palette | 彩色 (default), 蓝灰, 青瓷, 薄荷, 薰衣草, 杏色 or 黑色. |
--accent #hex | Paints every icon in one accent color. |
--state hover | Exports the end of the hover instead of the rest pose. |
--size 96 | Width and height in pixels. |
--pad 2.5 | Room around the canvas, in icon units, so the shadow isn't cut off. |
--out dir | Where the files go; export/ by default. |
Run the self-check
Needs Node.js 18 or later and Chrome. Everything runs headless.
node scripts/check.mjs --only 剪刀,地图 --with 文件夹,邮件,下载
| Option | What it does |
|---|---|
--only | Checks only these icons. Without it, the whole set. |
--with | Adds existing icons beside them for comparison. |
--accent #F59E0B | Paints every icon in one accent color, to check marks on light accents. |
--scale 3 | Renders every sheet at 3×, to look for seams. |
--out dir | Writes the screenshots somewhere other than check-out/. |
CHROME overrides the browser path. The animations in this README come from node scripts/media.mjs, which also needs ffmpeg and img2webp.
Work on the library and website
Needs Node.js 20 or later; the contact sheets also need Chrome.
npm install
npm run build # every package, from icons/ and badges/
npm run validate # names, metadata and markup of every icon
npm test
node tools/check.mjs --only folder,mail --with download # contact sheets in check-out/lib
npm run site:dev # the website
Each icon is one module in icons/; docs/authoring.md explains the format. The website is a static Next.js export in site/.
Contributing
- Improve the skill. Report a rule that left you guessing, run a blind test with a fresh session, or fix a script. Rule changes start from an issue.
- Add an icon. Draw it with the skill or by hand as a module in
icons/, check it withtools/check.mjs, and open a pull request. Merged icons are credited to you on the website. - Submit an icon without a pull request. The submission page checks your files and prepares an issue.
- Request an icon. Open an icon request with the object and what it should do on hover.
See CONTRIBUTING.md and the code of conduct. Security issues go through SECURITY.md.
License
| Part | License | In short |
|---|---|---|
Icons (icons/, badges/) and the four packages | MIT | Use, change and redistribute them in any project, commercial or not. |
| The skill | Kubai Icons License | Source-available. See below. |
Website (site/, tools/, tests/, docs/) | All rights reserved | You may read the source and run it to prepare a contribution, but not copy or host it. |
Under the Kubai Icons License:
- Your icons are yours. Icons you make with the skill belong to you, for any use including commercial, with no credit required.
- Ship the engine with them. You may copy the engine, the gallery, the example icons and the self-check into your own icon set's project, change them, and ship that project, as long as the copyright notice at the top of each file stays.
- Use and share the skill freely. You may run it for any work, change it for your own use, and share exact, unmodified copies for free.
- Don't republish it as something else. Don't distribute a modified or translated version of the rules (
PROMPT.md,SKILL.md), sell the skill, remove its notices, or present it under another name or as your own work.
LICENSING.md lists which file falls under which license. The Kubai and Lumno names and logos are not licensed for reuse. The construction comes from the bookmark folder icon in Lumno.