exporting-to-png — Claude Code skill: what it does, how to install
Teaches the agent to render code snippets, Mermaid diagrams, terminal logs, and SVG files into PNG images via CLI utilities or headless browsers.
npx skills add spencerpauly/awesome-cursor-skills --skill exporting-to-png -a claude-codeWhat exporting-to-png does
This skill instructs an agent to turn source code, terminal sessions, HTML markup, SVG vectors, and Mermaid diagrams into PNG images. The workflow starts with an environment check: the model inspects local tools using commands like which silicon or npx --help before selecting an appropriate render engine.
Each content type maps to dedicated tooling. Code snippets use silicon or Carbon URLs, Mermaid diagrams run through @mermaid-js/mermaid-cli or a Docker container, and SVG files rely on sharp, inkscape, or ImageMagick convert. When no dedicated binary is present, the skill falls back to generating an HTML document and capturing a screenshot with headless Playwright or Puppeteer.
Execution depends on local runtime dependencies; rendering fails immediately if the host machine lacks Node.js, Docker, or native CLI utilities. After generating the image, the agent validates that the file is non-empty via file output.png and reports the final image dimensions.
What it helps with
- export Mermaid diagrams to PNG with a transparent background
- generate syntax-highlighted code screenshots using
silicon - take full-page PNG screenshots of rendered HTML via Playwright or Puppeteer
- convert SVG vectors to PNG using
sharp, Inkscape, or ImageMagick - capture CLI terminal output into a PNG image using
termshot
Example prompts for the agent
- Export this Mermaid diagram from diagram.mmd into a transparent PNG
- Create a styled screenshot of source.py using silicon
- Render the HTML component into output.png using a headless browser
How to install exporting-to-png
1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill exporting-to-png -a claude-code2Manually: put the files in place
~/.claude/skills/exporting-to-png/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/exporting-to-png/
1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill exporting-to-png -a codex2Manually: put the files in place
.agents/skills/exporting-to-png/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill exporting-to-png -a cursor2Manually: put the files in place
.cursor/skills/exporting-to-png/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install spencerpauly/awesome-cursor-skills exporting-to-png2Manually: put the files in place
.github/skills/exporting-to-png/SKILL.md1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill exporting-to-png -a gemini-cli2Platform CLI
gemini skills install https://github.com/spencerpauly/awesome-cursor-skills --path resources/exporting-to-pngManually: put the files in place
.devin/skills/exporting-to-png/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill exporting-to-png -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about exporting-to-png
How to install exporting-to-png in Claude Code?
Run npx skills add spencerpauly/awesome-cursor-skills --skill exporting-to-png -a claude-code in your terminal. Alternatively, save the file to ~/.claude/skills/exporting-to-png/SKILL.md.
What does exporting-to-png do?
It guides the agent on how to convert source code, Mermaid diagrams, SVG vectors, and terminal output into PNG images using CLI utilities or headless browsers.
What happens if tools like silicon or mermaid-cli are missing?
The skill falls back to a universal approach: wrapping the content inside styled HTML and capturing a screenshot using Playwright or Puppeteer.
Source text
SKILL.md · CC0-1.0
---
name: exporting-to-png
description: Export code, terminal output, diagrams, or UI components to PNG images using headless browser rendering or CLI tools.
user-invocable: true
---
# Exporting to PNG
Convert code snippets, Markdown content, terminal output, diagrams, or rendered UI components into PNG image files.
## Methods
### 1. HTML → PNG via Headless Browser
The most flexible approach. Render any content as HTML and screenshot it.
```bash
# Using Playwright (if available)
npx playwright screenshot --full-page "file:///path/to/content.html" output.png
# Using Puppeteer one-liner
node -e "
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setContent(\`<html>...</html>\`);
await page.screenshot({ path: 'output.png', fullPage: true });
await browser.close();
})();
"
```
**Steps:**
1. Generate an HTML file with the content styled appropriately (syntax highlighting, padding, fonts)
2. Use a headless browser to render and capture
3. Crop if needed using an image tool
### 2. Code → PNG with Carbon or Silicon
For styled code screenshots:
```bash
# silicon (Rust CLI, fast)
silicon --language python --output code.png source.py
silicon --from-clipboard --output code.png
# Or generate a Carbon URL for browser capture
# https://carbon.now.sh/?l=python&code=<url-encoded-code>
```
### 3. Mermaid Diagrams → PNG
```bash
# Using mermaid-cli
npx @mermaid-js/mermaid-cli mmdc -i diagram.mmd -o diagram.png -b transparent
# Or with Docker
docker run --rm -v "$(pwd)":/data minlag/mermaid-cli mmdc -i /data/diagram.mmd -o /data/diagram.png
```
### 4. SVG → PNG
```bash
# Using sharp (Node.js)
node -e "
const sharp = require('sharp');
sharp('input.svg').png().toFile('output.png');
"
# Using Inkscape CLI
inkscape input.svg --export-type=png --export-filename=output.png
# Using ImageMagick
convert input.svg output.png
```
### 5. Terminal Output → PNG
```bash
# Using termshot (if installed)
termshot -- ls -la
# Manual approach: capture output, wrap in HTML with monospace font, screenshot
```
## Workflow
1. Determine the content type (code, diagram, HTML, terminal, SVG)
2. Check which tools are available in the environment (`which silicon`, `npx --help`, etc.)
3. Choose the best method and generate the PNG
4. Verify the output exists and is non-empty: `file output.png && ls -la output.png`
5. Report the file path and dimensions
## Tips
- For code screenshots, use a dark theme with generous padding (32px+) for a polished look
- Set `deviceScaleFactor: 2` in Playwright/Puppeteer for retina-quality output
- For transparent backgrounds, use `--background transparent` or `omitBackground: true`
- If no specialized tool is installed, fall back to the HTML + headless browser method — it works for everything
© spencerpauly · CC0-1.0 · spencerpauly/awesome-cursor-skills