Not in the top 1,000 by GitHub stars
fantuan-lab/animated-sticker-studio
One character image → a full pack of animated chat stickers (WeChat / Telegram / LINE / Discord). Claude Code & Codex skill · 给 AI 一张图,做一整套会动的表情包
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → e1f06a001d88
No earlier version was observed for comparison.
Heat
Insufficient historyNot enough history yet to measure heat. It appears after a few days of data.
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
animated-sticker-studio
When your agent uses it
Turn a character image (mascot, OC, pet photo, 3D render, or just a text description) into a full pack of animated chat stickers — real keyframe animation plus motion, captions and effects — exported to the exact spec of WeChat 表情开放平台, Telegram, LINE, Discord, Slack, WhatsApp or plain GIF, auto-compressed under each size limit, visually verified and zipped. Use for 表情包/动态表情/贴纸/sticker pack requests of any size (8 to 100+), for redoing single stickers, or for converting an existing pack to another platform.
What it loads into context
Frontmatter
136 tokensAlways available to the agent
SKILL.md
1,368 tokensWhen the skill is activated
Reference documents
10,109 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Plan (manifest.json)
- 2. Reference
- 3. Atlases
- 4. Cut
- 5. Build
- 6. Look (required — you cannot watch a GIF, so look at these)
- 7. Deliver
Scripts executed separately
scripts/build_pack.pyscripts/cut_atlas.pyscripts/gen_atlas.pyscripts/sticker_core.py
Files
.gitignoreasset65 bytesLICENSEasset1,068 bytesREADME.mddoc10,097 bytesREADME.zh-CN.mddoc11,178 bytesSKILL.mdcore5,513 bytesSKILL.mdcore5,513 bytesagents/openai.yamlasset335 bytesexamples/onigiri-cat/atlases/g01.pngasset1,842,523 bytesexamples/onigiri-cat/atlases/g02.pngasset1,749,950 bytesexamples/onigiri-cat/atlases/g03.pngasset1,777,407 bytesexamples/onigiri-cat/contact.pngasset587,191 bytesexamples/onigiri-cat/gif/001-收到.gifasset381,883 bytesexamples/onigiri-cat/gif/002-好耶.gifasset372,881 bytesexamples/onigiri-cat/gif/003-抱抱.gifasset411,084 bytesexamples/onigiri-cat/gif/004-早安.gifasset402,719 bytesexamples/onigiri-cat/gif/005-在吗.gifasset350,287 bytesexamples/onigiri-cat/gif/006-哈哈哈哈.gifasset382,298 bytesexamples/onigiri-cat/gif/007-委屈.gifasset381,095 bytesexamples/onigiri-cat/gif/008-生气了.gifasset342,140 bytesexamples/onigiri-cat/gif/009-我想想.gifasset376,658 bytesexamples/onigiri-cat/gif/010-加油.gifasset340,687 bytesexamples/onigiri-cat/gif/011-谢谢老板.gifasset401,833 bytesexamples/onigiri-cat/gif/012-溜了.gifasset348,899 bytesexamples/onigiri-cat/gif/013-震惊.gifasset356,465 bytesexamples/onigiri-cat/gif/014-摸鱼中.gifasset442,558 bytesexamples/onigiri-cat/gif/015-好的.gifasset383,580 bytesexamples/onigiri-cat/gif/016-冲鸭.gifasset367,151 bytesexamples/onigiri-cat/gif/017-拜拜.gifasset361,234 bytesexamples/onigiri-cat/gif/018-鼓掌.gifasset398,106 bytesexamples/onigiri-cat/gif/019-打字中.gifasset95,074 bytesexamples/onigiri-cat/gif/020-干饭.gifasset405,067 bytesexamples/onigiri-cat/gif/021-点赞.gifasset397,740 bytesexamples/onigiri-cat/gif/022-哭哭.gifasset379,852 bytesexamples/onigiri-cat/gif/023-困了.gifasset364,322 bytesexamples/onigiri-cat/gif/024-比心.gifasset390,494 bytesexamples/onigiri-cat/hero.webpasset1,224,724 bytesexamples/onigiri-cat/manifest.jsonasset9,346 bytesexamples/onigiri-cat/ref/character.pngasset1,060,524 bytesexamples/onigiri-cat/social-preview.pngasset229,989 bytesexamples/onigiri-cat/sprites/g01_01.pngasset105,255 bytesexamples/onigiri-cat/sprites/g01_02.pngasset103,827 bytesexamples/onigiri-cat/sprites/g01_03.pngasset112,194 bytesexamples/onigiri-cat/sprites/g01_04.pngasset109,966 bytesexamples/onigiri-cat/sprites/g01_05.pngasset105,923 bytesexamples/onigiri-cat/sprites/g01_06.pngasset123,935 bytesexamples/onigiri-cat/sprites/g01_07.pngasset117,404 bytesexamples/onigiri-cat/sprites/g01_08.pngasset116,258 bytesexamples/onigiri-cat/sprites/g01_09.pngasset109,232 bytesexamples/onigiri-cat/sprites/g01_10.pngasset126,315 bytesexamples/onigiri-cat/sprites/g01_11.pngasset97,159 bytesexamples/onigiri-cat/sprites/g01_12.pngasset102,189 bytesexamples/onigiri-cat/sprites/g01_13.pngasset126,019 bytesexamples/onigiri-cat/sprites/g01_14.pngasset99,802 bytesexamples/onigiri-cat/sprites/g01_15.pngasset105,205 bytesexamples/onigiri-cat/sprites/g01_16.pngasset98,850 bytesexamples/onigiri-cat/sprites/g02_01.pngasset100,977 bytesexamples/onigiri-cat/sprites/g02_02.pngasset103,396 bytesexamples/onigiri-cat/sprites/g02_03.pngasset101,855 bytesexamples/onigiri-cat/sprites/g02_04.pngasset100,842 bytesexamples/onigiri-cat/sprites/g02_05.pngasset107,768 bytesexamples/onigiri-cat/sprites/g02_06.pngasset107,767 bytesexamples/onigiri-cat/sprites/g02_07.pngasset107,223 bytesexamples/onigiri-cat/sprites/g02_08.pngasset105,089 bytesexamples/onigiri-cat/sprites/g02_09.pngasset102,046 bytesexamples/onigiri-cat/sprites/g02_10.pngasset103,161 bytesexamples/onigiri-cat/sprites/g02_11.pngasset101,350 bytesexamples/onigiri-cat/sprites/g02_12.pngasset102,063 bytesexamples/onigiri-cat/sprites/g02_13.pngasset111,982 bytesexamples/onigiri-cat/sprites/g02_14.pngasset112,428 bytesexamples/onigiri-cat/sprites/g02_15.pngasset107,552 bytesexamples/onigiri-cat/sprites/g02_16.pngasset106,450 bytesexamples/onigiri-cat/sprites/g03_01.pngasset104,457 bytesexamples/onigiri-cat/sprites/g03_02.pngasset104,509 bytesexamples/onigiri-cat/sprites/g03_03.pngasset105,173 bytesexamples/onigiri-cat/sprites/g03_04.pngasset109,366 bytesexamples/onigiri-cat/sprites/g03_05.pngasset105,116 bytesexamples/onigiri-cat/sprites/g03_06.pngasset115,098 bytesexamples/onigiri-cat/sprites/g03_07.pngasset112,285 bytesexamples/onigiri-cat/sprites/g03_08.pngasset102,772 bytesexamples/onigiri-cat/sprites/g03_09.pngasset107,555 bytesexamples/onigiri-cat/sprites/g03_10.pngasset106,428 bytesexamples/onigiri-cat/sprites/g03_11.pngasset99,626 bytesexamples/onigiri-cat/sprites/g03_12.pngasset97,562 bytesexamples/onigiri-cat/sprites/g03_13.pngasset103,849 bytesexamples/onigiri-cat/sprites/g03_14.pngasset103,379 bytesexamples/onigiri-cat/sprites/g03_15.pngasset106,553 bytesexamples/onigiri-cat/sprites/g03_16.pngasset102,147 bytesreferences/manifest.mddoc3,981 bytesreferences/phrases.mddoc4,391 bytesreferences/platforms.mddoc2,599 bytesscripts/build_pack.pyruns37,259 bytesscripts/cut_atlas.pyruns11,995 bytesscripts/gen_atlas.pyruns13,383 bytesscripts/sticker_core.pyruns21,255 bytes
Read SKILL.md
# Animated Sticker Studio · 动态表情包工坊
Pipeline: **plan → reference → atlases → cut → build → look → fix → deliver**. Scripts live in `scripts/` (Python 3 + Pillow; ffmpeg for Telegram/MP4). Run every script with `--help` before first use.
## 1. Plan (manifest.json)
Ask only what you cannot default. Defaults: 16 stickers, Simplified Chinese captions, `generic` GIF; add `wechat` if they mention 微信表情开放平台/上架, `telegram`/`line`/`discord`/`slack`/`whatsapp` if named. WeChat albums take any 8–24 stickers; LINE packs must be 8, 16 or 24.
Write `manifest.json` next to the work (format: [references/manifest.md](references/manifest.md)). Pick captions from [references/phrases.md](references/phrases.md) unless the user gave their own, and give every entry:
- `pose` — what the body does, in English, concrete enough to draw (arms, props, expression). Two entries may never share the same pose with only new text.
- `motion` + `icon` + optional `caption_fx` — chosen to match the line (table in phrases.md).
- For the 4–8 stickers where the gesture IS the joke (挥手, 鼓掌, 打字, 干饭, 点赞, 哭, 打哈欠, 比心…) put them in a group with `"keys": 4` and write four `key_poses`. These become real frame-by-frame animation. Single poses get procedural motion only.
View the complete source on GitHubSkills included
- animated-sticker-studio
Repository facts
- License
- MIT
- Created
- Nov 5, 2026
- Last pushed
- Nov 6, 2026
- Forks
- 4
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 7, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 1 note
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 50 network referencesin 3 files: scripts/gen_atlas.py:9 README.md:9 README.zh-CN.md:9
- 1 obfuscation signalin 1 file: scripts/gen_atlas.py:200
- No instruction overrides
- 4 executable scriptsin 4 files: scripts/build_pack.py:1 scripts/cut_atlas.py:1 scripts/gen_atlas.py:1 and 1 more
- 11 references to secretsin 4 files: scripts/gen_atlas.py:10 README.md:87 README.zh-CN.md:102 and 1 more
- No requests to vote in Hot
Show all 66 signals by file
README.md
- Network accessline 9
<p align="center"> <a href="https://github.com/fantuan-lab/animated-sticker-studio/stargazers"><img src="https://img.shields.io/github/stars/fantuan-lab/animated-sticker-studio?style=flat&color=f5a623" alt="stars"></a> - Network accessline 10
<a href="https://github.com/fantuan-lab/animated-sticker-studio/stargazers"><img src="https://img.shields.io/github/stars/fantuan-lab/animated-sticker-studio?style=flat&color=f5a623" alt="stars"></a> - Network accessline 11
<a href="https://github.com/fantuan-lab/animated-sticker-studio/releases"><img src="https://img.shields.io/github/v/release/fantuan-lab/animated-sticker-studio?color=e85d75" alt="release"></a> - Network accessline 12
<img src="https://img.shields.io/badge/Claude_Code-skill-d97757" alt="Claude Code skill"> - Network accessline 13
<img src="https://img.shields.io/badge/Codex-skill-10a37f" alt="Codex skill"> - Network accessline 14
<img src="https://img.shields.io/badge/WeChat%20%C2%B7%20Telegram%20%C2%B7%20LINE%20%C2%B7%20Discord%20%C2%B7%20Slack%20%C2%B7%20WhatsApp-6%20platforms-4c9be8" alt="WeChat, Telegram, LINE, Discord, Slack, WhatsApp"> - Network accessline 15
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT license"></a> - Network accessline 69
- Claude Code: put this folder at `~/.claude/skills/animated-sticker-studio/`, or tell Claude: *"Install this skill: https://github.com/fantuan-lab/animated-sticker-studio"* - Network accessline 85
|---|---|---| | Codex | Nothing | Codex has a built-in image tool; the skill hands it the prompts | | Claude Code (recommended: hiapi) | One hiapi key as `HIAPI_API_KEY` | Used for the Onigiri Cat pack, tested. gpt-image-2, 1K transparent, - Network accessline 86
| Codex | Nothing | Codex has a built-in image tool; the skill hands it the prompts | | Claude Code (recommended: hiapi) | One hiapi key as `HIAPI_API_KEY` | Used for the Onigiri Cat pack, tested. gpt-image-2, 1K transparent, about $0.04 pe - Network accessline 87
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Network accessline 126
- Platform specs reflect public requirements as of November 2026; the platform's own console is the final word. Store listings (banners, copyright paperwork, account setup) are still up to you. - Your reference image is sent to the image pr - Network accessline 128
- Built after studying [WoYun520/pixel-gif-sticker-pack](https://github.com/WoYun520/pixel-gif-sticker-pack); the Chinese README has a point-by-point comparison.
README.zh-CN.md
- Network accessline 9
<p align="center"> <a href="https://github.com/fantuan-lab/animated-sticker-studio/stargazers"><img src="https://img.shields.io/github/stars/fantuan-lab/animated-sticker-studio?style=flat&color=f5a623" alt="stars"></a> - Network accessline 10
<a href="https://github.com/fantuan-lab/animated-sticker-studio/stargazers"><img src="https://img.shields.io/github/stars/fantuan-lab/animated-sticker-studio?style=flat&color=f5a623" alt="stars"></a> - Network accessline 11
<a href="https://github.com/fantuan-lab/animated-sticker-studio/releases"><img src="https://img.shields.io/github/v/release/fantuan-lab/animated-sticker-studio?color=e85d75" alt="release"></a> - Network accessline 12
<img src="https://img.shields.io/badge/Claude_Code-skill-d97757" alt="Claude Code skill"> - Network accessline 13
<img src="https://img.shields.io/badge/Codex-skill-10a37f" alt="Codex skill"> - Network accessline 14
<img src="https://img.shields.io/badge/WeChat%20%C2%B7%20Telegram%20%C2%B7%20LINE%20%C2%B7%20Discord%20%C2%B7%20Slack%20%C2%B7%20WhatsApp-6%20platforms-4c9be8" alt="WeChat, Telegram, LINE, Discord, Slack, WhatsApp"> - Network accessline 15
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT license"></a> - Network accessline 57
[WoYun520/pixel-gif-sticker-pack](https://github.com/WoYun520/pixel-gif-sticker-pack) 是个不错的项目,示例很多,这个 skill 就是在读完它的代码之后做的。主要多做了这些: - Network accessline 83
> 帮我安装这个表情包 skill:https://github.com/fantuan-lab/animated-sticker-studio - Network accessline 100
|---|---|---| | Codex | 什么都不用配 | Codex 自带出图工具,skill 会把提示词交给它 | | Claude Code(推荐用 hiapi) | 一个 hiapi 的 key,设置成环境变量 `HIAPI_API_KEY` | 饭团猫就是用它做的,已实测。gpt-image-2,1K 透明背景,一张图集约 $0.04。没有账号可以用我的邀请链接注册:[hiapi.ai/invite/fantuan](https://hiapi.ai/invi - Network accessline 101
| Codex | 什么都不用配 | Codex 自带出图工具,skill 会把提示词交给它 | | Claude Code(推荐用 hiapi) | 一个 hiapi 的 key,设置成环境变量 `HIAPI_API_KEY` | 饭团猫就是用它做的,已实测。gpt-image-2,1K 透明背景,一张图集约 $0.04。没有账号可以用我的邀请链接注册:[hiapi.ai/invite/fantuan](https://hiapi.ai/invite/fantuan) | - Network accessline 102
[Credential-related source omitted] - Access to secretsline 102
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted]
SKILL.md
- Access to secretsline 34
[Credential-related source omitted]
scripts/build_pack.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/cut_atlas.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/gen_atlas.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 9
Providers (keys come from the environment only, never from arguments): hiapi HIAPI_API_KEY gpt-image-2 image-to-image via https://api.hiapi.ai/v1/tasks (data-URI reference) - Network accessline 10
[Credential-related source omitted] - Access to secretsline 10
[Credential-related source omitted] - Network accessline 11
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Network accessline 126
data = json.dumps(body).encode() if body is not None else None for i in range(tries): req = urllib.request.Request(url, data=data, - Network accessline 127
[Credential-related source omitted] - Network accessline 128
req = urllib.request.Request(url, data=data, - Network accessline 129
[Credential-related source omitted] - Network accessline 130
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.load(r) - Network accessline 131
with urllib.request.urlopen(req, timeout=timeout) as r: - Network accessline 142
for i in range(tries): try: urllib.request.urlretrieve(url, dest) - Network accessline 143
try: urllib.request.urlretrieve(url, dest) return - Network accessline 144
urllib.request.urlretrieve(url, dest) - Network accessline 152
def hiapi(prompt, ref: Path | None, ratio, dest: Path, resolution="1K"): key = os.environ.get("HIAPI_API_KEY") or sys.exit("没有 HIAPI_API_KEY 环境变量") api = "https://api.hiapi.ai/v1/tasks" - Network accessline 153
[Credential-related source omitted] - Access to secretsline 153
[Credential-related source omitted] - Network accessline 154
api = "https://api.hiapi.ai/v1/tasks" - Network accessline 175
def openai(prompt, ref: Path | None, ratio, dest: Path, resolution="1K"): key = os.environ.get("OPENAI_API_KEY") or sys.exit("没有 OPENAI_API_KEY 环境变量") base = os.environ.get("OPENAI_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 176
[Credential-related source omitted] - Access to secretsline 176
[Credential-related source omitted] - Network accessline 177
[Credential-related source omitted] - Access to secretsline 177
[Credential-related source omitted] - Access to secretsline 180
[Credential-related source omitted] - Network accessline 190
f'Content-Type: image/png\r\n\r\n').encode() body += ref_bytes(ref, 1024) + f"\r\n--{boundary}--\r\n".encode() req = urllib.request.Request(f"{base}/images/edits", data=body, headers={ - Network accessline 191
[Credential-related source omitted] - Network accessline 192
req = urllib.request.Request(f"{base}/images/edits", data=body, headers={ - Network accessline 193
[Credential-related source omitted] - Network accessline 194
with urllib.request.urlopen(req, timeout=300) as r: - Network accessline 200
dest.write_bytes(base64.b64decode(item["b64_json"])) else: urllib.request.urlretrieve(item["url"], dest) - Possible obfuscationline 200
dest.write_bytes(base64.b64decode(item["b64_json"])) - Network accessline 202
urllib.request.urlretrieve(item["url"], dest)
scripts/sticker_core.py
- Executable scriptline 1
Executable file
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Declared and executed: 1 fact
- Contacts api.openai.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/gen_atlas.py:177High confidence
Signal confidence: 66 facts
- Network access in prose of documentationREADME.md:9Low confidence
- Network access in prose of documentationREADME.md:10Low confidence
- Network access in prose of documentationREADME.md:11Low confidence
- Network access in prose of documentationREADME.md:12Low confidence
- Network access in prose of documentationREADME.md:13Low confidence
- Network access in prose of documentationREADME.md:14Low confidence
- Network access in prose of documentationREADME.md:15Low confidence
- Network access in prose of documentationREADME.md:69Low confidence
- Network access in prose of documentationREADME.md:85Low confidence
- Network access in prose of documentationREADME.md:86Low confidence
- Network access in prose of documentationREADME.md:87Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueREADME.md:87Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueREADME.md:88Low confidence
- Network access in prose of documentationREADME.md:126Low confidence
- Network access in prose of documentationREADME.md:128Low confidence
- Network access in prose of documentationREADME.zh-CN.md:9Low confidence
- Network access in prose of documentationREADME.zh-CN.md:10Low confidence
- Network access in prose of documentationREADME.zh-CN.md:11Low confidence
- Network access in prose of documentationREADME.zh-CN.md:12Low confidence
- Network access in prose of documentationREADME.zh-CN.md:13Low confidence
- Network access in prose of documentationREADME.zh-CN.md:14Low confidence
- Network access in prose of documentationREADME.zh-CN.md:15Low confidence
- Network access in prose of documentationREADME.zh-CN.md:57Low confidence
- Network access in prose of documentationREADME.zh-CN.md:83Low confidence
- Network access in prose of documentationREADME.zh-CN.md:100Low confidence
- Network access in prose of documentationREADME.zh-CN.md:101Low confidence
- Network access in prose of documentationREADME.zh-CN.md:102Low confidence
- Access to secrets in prose of documentationREADME.zh-CN.md:102Low confidence
- Access to secrets in prose of documentationREADME.zh-CN.md:103Low confidence
- Access to secrets in prose of the SKILL.mdSKILL.md:34Low confidence
- Executable script in code of a file that runsscripts/build_pack.py:1High confidence
- Executable script in code of a file that runsscripts/cut_atlas.py:1High confidence
- Executable script in code of a file that runsscripts/gen_atlas.py:1High confidence
- Network access in prose of a file that runsscripts/gen_atlas.py:9Low confidence
- Network access in prose of a file that runsscripts/gen_atlas.py:10Low confidence
- Access to secrets in prose of a file that runs: a variable, placeholder or call, not a stored valuescripts/gen_atlas.py:10Low confidence
- Network access in prose of a file that runsscripts/gen_atlas.py:11Low confidence
- Access to secrets in prose of a file that runs: a variable, placeholder or call, not a stored valuescripts/gen_atlas.py:11Low confidence
- Network access in code of a file that runsscripts/gen_atlas.py:126High confidence
- Network access in code of a file that runsscripts/gen_atlas.py:127High confidence
- Network access in code of a file that runsscripts/gen_atlas.py:128High confidence
- Network access in code of a file that runsscripts/gen_atlas.py:129High confidence
- Network access in code of a file that runsscripts/gen_atlas.py:130High confidence
- Network access in code of a file that runsscripts/gen_atlas.py:131High confidence
- Network access in code of a file that runsscripts/gen_atlas.py:142High confidence
- Network access in code of a file that runsscripts/gen_atlas.py:143High confidence
- Network access in code of a file that runsscripts/gen_atlas.py:144High confidence
- Network access in code of a file that runsscripts/gen_atlas.py:152High confidence
- Network access in code of a file that runsscripts/gen_atlas.py:153High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuescripts/gen_atlas.py:153Low confidence
and 16 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.