Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add spencerpauly/awesome-cursor-skills --skill exporting-to-png -a claude-code
Open on GitHub

What 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-code

2Manually: put the files in place

~/.claude/skills/exporting-to-png/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/exporting-to-png/

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

Similar skills

Everything for Design →

From the same set59

profiling-performance This skill profiles web application CPU performance using browser MCP tools. It captures call stacks and pinpoints slow functions causing interface lag. CX Codex +1 410installs python-tdd-with-uv Runs your agent through red-green-refactor in Python and sets the project up on uv. Useful when tests come before the code. CX Codex +1 409installs recording-browser-flow-as-test Walks through browser interactions step by step via MCP and outputs a clean Playwright test based on accessibility tree selectors. CX Codex +1 406installs verifying-markdown-formatting Walks a Markdown file through a formatting checklist and fixes what it finds: headings, lists, links, code blocks, spacing. Useful before committing a README or docs. CX Codex +1 404installs parallel-ci-triage Splits failed GitHub Actions jobs across parallel subagents, each fixing its own slice. Useful when CI breaks in several places at once. CX Codex +1 403installs screenshotting-changelog Builds a visual changelog for a pull request: captures pages before and after your UI edits and drops the image pairs into the PR body. CX Codex +1 401installs updating-npm-package Updates npm dependencies safely by checking npmjs.com and adapting to the version jump. It runs tests on minor updates and finds migration guides for major ones. CX Codex +1 398installs react-native-patterns This skill guides an agent building React Native and Expo apps, covering navigation, platform-specific code, styling, lists, and native modules. CX Codex +1 399installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor