I built an agent-skill that turns your texts into diagrams and BI-visuals Developer imshaikot released render-visual-skill, an agent skill that lets coding agents generate diagrams, presentation slides, social cards, code snippets, and device mockups as HTML/SVG rendered to PNGs via headless Chromium, with no design tool, API, or npm dependencies. The skill supports sequence diagrams animated into GIFs in pure Node, includes 57 referenceable parts and eight themes, and works with Claude Code, Cursor, GitHub Copilot, VS Code, Codex, Gemini CLI, OpenCode, Amp, and Goose. It is available via the Claude plugin marketplace command 'claude plugin marketplace add imshaikot/render-visual-skill'. Your coding agent cannot draw. This Agent Skill https://agentskills.io fixes that — diagrams, presentation slides, social cards, code snippets and device mockups, authored as HTML/SVG and rendered to crisp PNGs by the headless Chromium you already have. No design tool, no API, no npm dependencies. diagram · ember | slide · slate | card · paper | Sequence diagrams animate — each step tweened over several frames, assembled into a looping GIF in pure Node . Chrome renders the frames in parallel, the built-in zlib decodes them, and a hand-rolled GIF89a/LZW encoder with changed-region deltas does the rest: claude plugin marketplace add imshaikot/render-visual-skill claude plugin install render-visual-skill@render-visual-skill Works in any skills-compatible agent — Claude Code, Cursor, GitHub Copilot / VS Code, Codex, Gemini CLI, OpenCode, Amp and Goose. Install install covers the clone-a-branch lane that every agent other than Claude Code uses. Every image in this README was rendered by the skill. Gallery gallery Capabilities capabilities Requirements requirements Install install Usage usage Themes themes Element library element-library CLI reference cli-reference What's inside whats-inside Why HTML instead of a design tool why-html-instead-of-a-design-tool Uninstall uninstall License license Five more diagram idioms ship as templates, each 1360×740 and assembled from the same parts: swimlane · ember | cluster · slate | deployment · blueprint | tree · paper | mind map · neon | Same markup, different theme: Code snippets get a Carbon-style window — hand-highlighted with a fixed token→accent mapping, line numbers, a highlight line and diff rows, in any of the eight themes: Diagrams | Architecture and flow figures — nodes, labelled arrows, return paths, bridged line crossings. 1360×740 | Presentation slides | Kicker, gradient headline, up to three points, footer. 1920×1080; a deck is one file per slide | Social / og cards | Mark, headline, one-paragraph pitch, chips. 1200×630 | Code snippets | Carbon-style window, hand-highlighted against a fixed token→accent mapping, line numbers, a highlight line, diff rows | Sequence diagrams | Lifelines, calls, returns, activations — rendered static, or animated step by step | Swimlanes | Lanes that own the steps, labelled handoffs, an exception path that stays in its lane | Trees | One hierarchy two ways — an indented tree view beside the same tree drawn node-link | Clusters | A dashed boundary, control plane, worker nodes and pods; what is outside it survives a rebuild | Deployment diagrams | 3-D nodes, «stereotypes» and artifact chips: which file lands on which machine, over which protocol | Mind maps | A question in the middle, branches around it, leaves as evidence | Animated GIFs | Steps tweened over several frames slide , fade , pop , assembled in pure Node. No ffmpeg | Element library | 57 referenceable parts — device frames, infrastructure shapes, a 3-D deployment node, charts, BI furniture and 30 glyphs | Chart & BI schematics | Pie, donut, bar, hbar, line, area, stacked, scatter, funnel, gauge, heatmap, sparkline, dashboard, KPI tile, table | Your own images | Screenshots and photos placed into a device frame or cropped to a shape, inlined before the render | Eight themes | Swap with one flag — every template consumes design tokens, never hard-coded colour | Alpha grades | Every colour token has a component twin, so oklch var --a1-raw / 12% gives any transparency of any accent — washes, edges and scrims that cannot drift from the colour they came from | Transparent output | A real alpha channel via --transparent , so a figure drops onto any background | Parallel-safe | Each render claims its own Chrome profile by pid lockfile, and reaps orphans an interrupted run left behind | Fails loudly | A wrong image at exit 0 is the one thing refused outright — blank canvases, missing stylesheets, unreadable images and unknown parts all fail, never render quietly wrong | Node 18+ A Chromium-based browser — Chrome, Chromium, Brave or Edge. Standard install paths and PATH are probed; CHROME PATH overrides. Without one: npx @puppeteer/browsers install chrome@stable no root needed . Network access at render time , for theme fonts. All eight themes @import from fonts.googleapis.com . Offline renders still succeed but fall back to system fonts, so they will not match the previews above. It needs a shell and a local browser, so it cannot run on surfaces that have neither — claude.ai chat, the Skills API, cloud sessions and most CI images. Claude Code — as a plugin gets you /plugin update . From your shell: claude plugin marketplace add imshaikot/render-visual-skill claude plugin install render-visual-skill@render-visual-skill Or from inside Claude Code, as two separate commands — run the first, let it finish, then run the second: /plugin marketplace add imshaikot/render-visual-skill /plugin install render-visual-skill@render-visual-skill Important /plugin marketplace add may open an Add Marketplace dialog. Only imshaikot/render-visual-skill belongs in that field. Pasting both lines into it is rejected as an invalid owner/repo shorthand — the /plugin install line is a second command, not part of the source. The repeated name is not a typo: render-visual-skill@render-visual-skill reads as plugin@marketplace , and here both are called the same thing. Any agent — clone the skill into its skills directory. The skill branch is published by CI with the skill at its root, so the clone target is the skill: Cursor · VS Code/Copilot · Codex · Gemini CLI · OpenCode · Amp · Goose git clone --depth 1 -b skill https://github.com/imshaikot/render-visual-skill.git \ ~/.agents/skills/render-visual Claude Code git clone --depth 1 -b skill https://github.com/imshaikot/render-visual-skill.git \ ~/.claude/skills/render-visual Update with git -C