Not in the top 1,000 by GitHub stars
imshaikot/render-visual-skill
An agent-skill & plugin to render programmable visuals (images & animations) for Claude Code, Cursor, Copilot, Codex & others
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
skills/render-visual/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 8e4f66b05aa1
No earlier version was observed for comparison.
Verified commit 8e4f66b05aa1f8c70a6c8f9ecfd7e3a78f365ba1
git clone --filter=blob:none --no-checkout https://github.com/imshaikot/render-visual-skill.git .hotskills/imshaikot-render-visual-skill && git -C .hotskills/imshaikot-render-visual-skill checkout --detach 8e4f66b05aa1f8c70a6c8f9ecfd7e3a78f365ba1
# Copy each selected skill directory from .hotskills/imshaikot-render-visual-skill into .claude/skills/<skill-name>/Heat
0.4- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
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
- render-visual
skills/render-visual
How it works
render-visual
When your agent uses it
**DELIVERY SKILL** — Produce polished diagrams, slides and social cards as crisp PNGs, JPEGs or PDFs by authoring HTML/SVG and rendering it with a local headless Chromium. Eight themes (ember, slate, paper, terminal, blueprint, frost, neon, sepia), one flag. Lays mermaid flowchart text out into a figure, deterministically. Also frames screenshots and photos in a browser, phone or terminal frame, or cropped to a shape. USE FOR: architecture and flow diagrams, slide decks, og/social cards, blog and README figures, any designed image a doc needs. DO NOT USE FOR: data charts from datasets (use a plotting library), capturing a live UI, photo retouching, or any surface without a shell — write inline SVG. TRIGGERS: mermaid, flowchart TD, graph TD, diagram, flow chart, architecture visual, swimlane, tree view, cluster, deployment, mind map, slide deck, presentation, og card, social card, banner, blog figure, browser frame, device mockup, render a png, export a pdf or jpeg, make an image, visual.
What it loads into context
Frontmatter
350 tokensAlways available to the agent
SKILL.md
9,794 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 0. Find the skill first
- 1. Workflow
- 2. The renderer
- 3. Animated sequence diagrams — no ffmpeg required
- 4. The aesthetic rules
- 5. The element library
- 6. Images
- 7. Code snippets
- 8. Layout discipline
- 9. Presentations
- 10. Mermaid flowcharts — generated, not drawn
- 11. QA checklist
Scripts executed separately
scripts/animate.mjsscripts/chrome.mjsscripts/cli.mjsscripts/doctor.mjsscripts/gif.mjsscripts/images.mjsscripts/markup.mjsscripts/mermaid.mjsscripts/parts.mjsscripts/render.mjsscripts/selftest.mjs
Files
../../.claude-plugin/marketplace.jsonasset1,071 bytes../../.claude-plugin/plugin.jsonasset1,030 bytesLICENSEasset1,065 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesSKILL.mdcore37,420 bytesparts/el-actor.svgasset284 bytesparts/el-browser.svgasset941 bytesparts/el-chart-area.svgasset601 bytesparts/el-chart-bar.svgasset1,176 bytesparts/el-chart-donut.svgasset770 bytesparts/el-chart-funnel.svgasset451 bytesparts/el-chart-gauge.svgasset443 bytesparts/el-chart-hbar.svgasset1,223 bytesparts/el-chart-heatmap.svgasset3,004 bytesparts/el-chart-line.svgasset770 bytesparts/el-chart-pie.svgasset600 bytesparts/el-chart-scatter.svgasset1,365 bytesparts/el-chart-stacked.svgasset1,288 bytesparts/el-cloud.svgasset211 bytesparts/el-cube.svgasset663 bytesparts/el-dashboard.svgasset2,785 bytesparts/el-database.svgasset437 bytesparts/el-phone.svgasset911 bytesparts/el-queue.svgasset551 bytesparts/el-router.svgasset320 bytesparts/el-server.svgasset1,173 bytesparts/el-shield.svgasset287 bytesparts/el-sparkline.svgasset403 bytesparts/el-stat-tile.svgasset532 bytesparts/el-table.svgasset1,849 bytesparts/el-terminal.svgasset1,054 bytesparts/el-window.svgasset1,150 bytesparts/g-api.svgasset322 bytesparts/g-bolt.svgasset180 bytesparts/g-chart-bar.svgasset198 bytesparts/g-chart-line.svgasset205 bytesparts/g-chart-pie.svgasset239 bytesparts/g-check.svgasset194 bytesparts/g-chip.svgasset364 bytesparts/g-clock.svgasset183 bytesparts/g-cloud.svgasset210 bytesparts/g-dashboard.svgasset220 bytesparts/g-db.svgasset295 bytesparts/g-file.svgasset259 bytesparts/g-filter.svgasset176 bytesparts/g-folder.svgasset256 bytesparts/g-gauge.svgasset191 bytesparts/g-gear.svgasset363 bytesparts/g-globe.svgasset223 bytesparts/g-key.svgasset206 bytesparts/g-layers.svgasset252 bytesparts/g-lock.svgasset253 bytesparts/g-mail.svgasset213 bytesparts/g-mobile.svgasset191 bytesparts/g-net.svgasset287 bytesparts/g-screen.svgasset207 bytesparts/g-search.svgasset190 bytesparts/g-table.svgasset235 bytesparts/g-term.svgasset211 bytesparts/g-user.svgasset177 bytesparts/g-users.svgasset282 bytesparts/g-warn.svgasset245 bytesscripts/animate.mjsruns9,023 bytesscripts/chrome.mjsruns37,181 bytesscripts/cli.mjsruns10,324 bytesscripts/doctor.mjsruns3,252 bytesscripts/gif.mjsruns14,094 bytesscripts/images.mjsruns18,362 bytesscripts/markup.mjsruns4,614 bytesscripts/mermaid.mjsruns63,321 bytesscripts/parts.mjsruns14,155 bytesscripts/render.mjsruns10,895 bytesscripts/selftest.mjsruns51,414 bytestemplates/card.htmlasset3,249 bytestemplates/charts.htmlasset7,875 bytestemplates/cluster.htmlasset10,963 bytestemplates/code.htmlasset5,852 bytestemplates/deployment.htmlasset8,885 bytestemplates/diagram.htmlasset6,165 bytestemplates/elements.htmlasset13,483 bytestemplates/flowchart.htmlasset9,225 bytestemplates/mindmap.htmlasset7,877 bytestemplates/palette.htmlasset15,766 bytestemplates/sequence.htmlasset8,618 bytestemplates/slide.htmlasset3,504 bytestemplates/swimlane.htmlasset8,456 bytestemplates/tree.htmlasset8,793 bytesthemes/blueprint.cssasset1,497 bytesthemes/ember.cssasset1,550 bytesthemes/frost.cssasset1,472 bytesthemes/neon.cssasset1,428 bytesthemes/paper.cssasset1,348 bytesthemes/sepia.cssasset1,402 bytesthemes/slate.cssasset1,389 bytesthemes/terminal.cssasset1,345 bytes
Read SKILL.md
# render-visual — designed PNGs from HTML, no design tool
Every image this skill produces is a small HTML/SVG page screenshotted by headless Chrome:
fully versioned, diffable, regenerable in seconds when the copy changes, and styled by a theme
file instead of hand-picked colors.
| Template | Canvas | For |
|---|---|---|
| `$SKILL/templates/diagram.html` | 1360×740 | Architecture and flow figures: nodes, labeled arrows, a return path, a line-crossing bridge |
| `$SKILL/templates/slide.html` | 1920×1080 | Presentation slides: kicker, headline with a gradient phrase, up to three points, footer |
| `$SKILL/templates/card.html` | 1200×630 | Social/og cards: mark, headline, one-paragraph pitch, chips, bottom rule |
| `$SKILL/templates/sequence.html` | 1360×740 | Sequence diagrams: lifelines, calls and returns, activations — static, or animated step by step |
| `$SKILL/templates/swimlane.html` | 1360×740 | Cross-functional flows: lanes that own the steps, labelled handoffs, an exception path that never leaves its lane |
| `$SKILL/templates/tree.html` | 1360×740 | Hierarchies, both idioms: an indented tree view (files, nav, an outline) beside the same tree drawn node-link |View the complete source on GitHubSkills included
- render-visual
Repository facts
- License
- MIT
- Created
- Aug 21, 2026
- Last pushed
- Aug 26, 2026
- Forks
- 1
- Open issues
- 0
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 28 notes
skills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/render-visual/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 1 dangerous shell commandin 1 file: render-visual/scripts/chrome.mjs:137
- 42 network referencesin 13 files: .claude-plugin/marketplace.json:1 .claude-plugin/plugin.json:5 render-visual/scripts/selftest.mjs:695 and 10 more
- 1 obfuscation signalin 1 file: render-visual/scripts/images.mjs:134
- No instruction overrides
- 11 executable scriptsin 11 files: render-visual/scripts/animate.mjs:1 render-visual/scripts/chrome.mjs:1 render-visual/scripts/cli.mjs:1 and 8 more
- No access to secrets
- No requests to vote in Hot
Show all 55 signals by file
.claude-plugin/marketplace.json
- Network accessline 1
{ "$schema": "https://anthropic.com/claude-code/marketplace.schema.json", - Network accessline 2
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json", - Network accessline 5
"owner": { "name": "Shahriar", "url": "https://github.com/imshaikot" - Network accessline 6
"name": "Shahriar", "url": "https://github.com/imshaikot" }, - Network accessline 7
"url": "https://github.com/imshaikot" - Network accessline 14
"category": "design", "author": { "name": "Shahriar" }, "homepage": "https://github.com/imshaikot/render-visual-skill" - Network accessline 15
"author": { "name": "Shahriar" }, "homepage": "https://github.com/imshaikot/render-visual-skill" } - Network accessline 16
"homepage": "https://github.com/imshaikot/render-visual-skill"
.claude-plugin/plugin.json
- Network accessline 5
"author": { "name": "Shahriar", "url": "https://github.com/imshaikot" - Network accessline 6
"name": "Shahriar", "url": "https://github.com/imshaikot" }, - Network accessline 7
"url": "https://github.com/imshaikot" - Network accessline 8
}, "homepage": "https://github.com/imshaikot/render-visual-skill", "repository": "https://github.com/imshaikot/render-visual-skill", - Network accessline 9
"homepage": "https://github.com/imshaikot/render-visual-skill", - Network accessline 10
"repository": "https://github.com/imshaikot/render-visual-skill",
skills/render-visual/SKILL.md
- Network accessline 408
directory**, not the working directory; absolute paths and `file:` URLs work too. A remote URL is refused: one that 404s or loads slowly leaves an invisible hole in a figure that still screenshots as a success. `curl -fsSL -o image.png - Network accessline 409
URL is refused: one that 404s or loads slowly leaves an invisible hole in a figure that still screenshots as a success. `curl -fsSL -o image.png "…"` first. - **The bytes are inlined** as `data:` URIs into the temp copy before Chrome laun - Network accessline 410
still screenshots as a success. `curl -fsSL -o image.png "…"` first.
skills/render-visual/scripts/animate.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/render-visual/scripts/chrome.mjs
skills/render-visual/scripts/cli.mjs
- Executable scriptline 1
Executable file
skills/render-visual/scripts/doctor.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/render-visual/scripts/gif.mjs
- Executable scriptline 1
Executable file
skills/render-visual/scripts/images.mjs
- Executable scriptline 1
Executable file - Possible obfuscationline 134
const head = buf.subarray(0, 1024).toString('utf8').replace(/^<U+FEFF>/, '').trimStart() - Network accessline 260
' Only images this renderer can read and verify are placed, because a URL that fails or\n' + ' loads too slowly leaves a hole in a figure that still screenshots as a success.\n' + ` Download it first: curl -fsSL -o i - Network accessline 261
' loads too slowly leaves a hole in a figure that still screenshots as a success.\n' + ` Download it first: curl -fsSL -o image.png "${src}"`, ) - Network accessline 262
` Download it first: curl -fsSL -o image.png "${src}"`,
skills/render-visual/scripts/markup.mjs
- Executable scriptline 1
Executable file
skills/render-visual/scripts/mermaid.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/render-visual/scripts/parts.mjs
- Executable scriptline 1
Executable file
skills/render-visual/scripts/render.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/render-visual/scripts/selftest.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 695
['missing file', '<g data-part="el-browser" data-image="gone.png" transform="translate(60,60)"/>', /Image not found/], ['not an image', '<g data-part="el-browser" data-image="notreally.png" transform="translate(60,60)"/>', /Not an image - Network accessline 696
['not an image', '<g data-part="el-browser" data-image="notreally.png" transform="translate(60,60)"/>', /Not an image this renderer recognises/], ['remote source', '<g data-part="el-browser" data-image="https://example.com/a.png" transf - Network accessline 697
['remote source', '<g data-part="el-browser" data-image="https://example.com/a.png" transform="translate(60,60)"/>', /Remote image source/], - Network accessline 841
['unknown direction', 'flowchart XY\n A --> B\n', /Unknown direction/], ['a style line', 'flowchart TD\n A --> B\n style A fill:#f00\n', /"style" is not implemented/], ['a click handler', 'flowchart TD\n A --> B\n click A "http - Network accessline 842
['a style line', 'flowchart TD\n A --> B\n style A fill:#f00\n', /"style" is not implemented/], ['a click handler', 'flowchart TD\n A --> B\n click A "https://x"\n', /"click" is not implemented/], ['nested subgraphs', 'flowchart - Network accessline 843
['a click handler', 'flowchart TD\n A --> B\n click A "https://x"\n', /"click" is not implemented/],
skills/render-visual/themes/blueprint.css
- Network accessline 1
/* rendercraft theme: blueprint — cyanotype drafting. Chalk on a deep drawing board. */ @import url('https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700&family=Roboto+Mono:wght@400;500&display=swap'); - Network accessline 2
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700&family=Roboto+Mono:wght@400;500&display=swap');
skills/render-visual/themes/ember.css
- Network accessline 1
/* rendercraft theme: ember — warm dark. Every neutral carries a low-chroma amber hue. */ @import url('https://fonts.googleapis.com/css2?family=Inter+Tight:wght@500;600;700&family=JetBrains+Mono:wght@400;500&display=swap'); - Network accessline 2
@import url('https://fonts.googleapis.com/css2?family=Inter+Tight:wght@500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
skills/render-visual/themes/frost.css
- Network accessline 1
/* rendercraft theme: frost — light UI. Cool white, geometric sans, glass surfaces. */ @import url('https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700&family=JetBrains+Mono:wght@400;500&display=swap'); - Network accessline 2
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
skills/render-visual/themes/neon.css
- Network accessline 1
/* rendercraft theme: neon — after hours. Indigo dark, high-chroma magenta and cyan. */ @import url('https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@500;600;700&family=Fira+Code:wght@400;500&display=swap'); - Network accessline 2
@import url('https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@500;600;700&family=Fira+Code:wght@400;500&display=swap');
skills/render-visual/themes/paper.css
- Network accessline 1
/* rendercraft theme: paper — light editorial. Warm paper, serif display, print restraint. */ @import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600&family=IBM+Plex+Mono:wght@400;500&display=swap'); - Network accessline 2
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600&family=IBM+Plex+Mono:wght@400;500&display=swap');
skills/render-visual/themes/sepia.css
- Network accessline 1
/* rendercraft theme: sepia — aged press. Cream stock, brown ink, typewriter mono. */ @import url('https://fonts.googleapis.com/css2?family=Newsreader:opsz,wght@6..72,500;6..72,600&family=Courier+Prime:wght@400;700&display=swap'); - Network accessline 2
@import url('https://fonts.googleapis.com/css2?family=Newsreader:opsz,wght@6..72,500;6..72,600&family=Courier+Prime:wght@400;700&display=swap');
skills/render-visual/themes/slate.css
- Network accessline 1
/* rendercraft theme: slate — cool dark. Violet-leaning neutrals, jewel accents. */ @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap'); - Network accessline 2
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
skills/render-visual/themes/terminal.css
- Network accessline 1
/* rendercraft theme: terminal — near-black phosphor. Mono everything. */ @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap'); - Network accessline 2
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap');
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.
Some files could not be read; the facts below still hold.
Signal confidence: 25 facts
- Network access in prose of the SKILL.mdrender-visual/SKILL.md:408Low confidence
- Network access in prose of the SKILL.mdrender-visual/SKILL.md:409Low confidence
- Network access in prose of the SKILL.mdrender-visual/SKILL.md:410Low confidence
- Executable script in code of a file that runsrender-visual/scripts/animate.mjs:1High confidence
- Executable script in a comment of a file that runsrender-visual/scripts/chrome.mjs:1Low confidence
- Dangerous shell operation in a comment of a file that runsrender-visual/scripts/chrome.mjs:137Low confidence
- Executable script in a comment of a file that runsrender-visual/scripts/cli.mjs:1Low confidence
- Executable script in code of a file that runsrender-visual/scripts/doctor.mjs:1High confidence
- Executable script in a comment of a file that runsrender-visual/scripts/gif.mjs:1Low confidence
- Executable script in a comment of a file that runsrender-visual/scripts/images.mjs:1Low confidence
- Possible obfuscation in code of a file that runsrender-visual/scripts/images.mjs:134High confidence
- Network access in code of a file that runsrender-visual/scripts/images.mjs:260High confidence
- Network access in code of a file that runsrender-visual/scripts/images.mjs:261High confidence
- Network access in code of a file that runsrender-visual/scripts/images.mjs:262High confidence
- Executable script in a comment of a file that runsrender-visual/scripts/markup.mjs:1Low confidence
- Executable script in code of a file that runsrender-visual/scripts/mermaid.mjs:1High confidence
- Executable script in a comment of a file that runsrender-visual/scripts/parts.mjs:1Low confidence
- Executable script in code of a file that runsrender-visual/scripts/render.mjs:1High confidence
- Executable script in code of a file that runsrender-visual/scripts/selftest.mjs:1High confidence
- Network access in code of a file that runsrender-visual/scripts/selftest.mjs:695High confidence
- Network access in code of a file that runsrender-visual/scripts/selftest.mjs:696High confidence
- Network access in code of a file that runsrender-visual/scripts/selftest.mjs:697High confidence
- Network access in code of a file that runsrender-visual/scripts/selftest.mjs:841High confidence
- Network access in code of a file that runsrender-visual/scripts/selftest.mjs:842High confidence
- Network access in code of a file that runsrender-visual/scripts/selftest.mjs:843High confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/render-visual/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/render-visual/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/render-visual/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/render-visual/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/render-visual/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.