Loading...
Loading...
Render markdown as beautiful styled images using the inkframe CLI. Use this skill whenever the user wants to turn text or markdown into a visual image, create social media graphics (tweets, Instagram posts, LinkedIn cards, quote cards, memes), generate code snippet images, make visual cards or posters from content, or produce any image from text/markdown. Also trigger when the user mentions 'inkframe', asks to 'render markdown', 'markdown to image', 'text to image', or wants to make content visually shareable. Even if they just say 'make this look nice as an image' or 'create a graphic for this' — use this skill.
npx skill4agent add ericjy/inkframe markdown-to-imagenpx inkframenpx inkframe# Simplest render — just give it markdown
npx inkframe render --content "# Hello World\n\nThis is styled." --output out.png
# Render from a file
npx inkframe render --content @post.md --output out.png
# Use a template for instant styling
npx inkframe render --template tmpl_PWfUUDlVw --content @post.md --output out.png
# Preview in the browser (free, no API key needed)
npx inkframe open --content @post.md --design @design.jsonnpx inkframe open| Flag | Description | Default |
|---|---|---|
| Markdown string or | — |
| Inline JSON or | — |
| Playground base URL | |
npx inkframe open --content "# Hello World"
npx inkframe open --content @post.md --design @design.jsonnpx inkframe render| Flag | Description | Default |
|---|---|---|
| Markdown string or | Required (unless |
| Template ID — applies its design (and content if | — |
| Inline JSON or | — |
| Save image to file (e.g. | prints URL |
| Scale factor: 1, 2, or 3 | 2 |
| Output format: | |
@--content @notes.mdnotes.md--content "# Title"npx inkframe templates listnpx inkframe templates get <id>--design-only-o file.json| ID | Name | Good for |
|---|---|---|
| Tweet (Dark) | Dark-themed tweet screenshots |
| Poem | Poetry, literary quotes |
| Quote | Inspirational/pull quotes |
| Business Poster | Professional announcements |
| Tweet | Tweet-style cards |
| DeepSeek问答 | Q&A format (Chinese) |
| Meme - Drake | Drake meme format |
| Tweet (Bilingual) | Bilingual tweet cards |
| Story (Bilingual) | Bilingual story format |
| Quote Card (Classic) | Classic styled quotes |
| Flowchart | Process/flow diagrams |
| Quote Card | Modern quote cards |
| Tweet | Alternative tweet style |
| Testimonial | Customer testimonials |
| Code Snippet | Code with syntax highlighting |
| Carousel | Multi-slide carousel |
| Listicle | Numbered/bulleted lists |
inkframe templates get <id>tmpl_qtYz45Xaotmpl_PWfUUDlVwtmpl_pXED6toGNtmpl_hSlqk3U8htmpl_W46vhIVoJtmpl_650IbCa8ktmpl_ciwTrec6Utmpl_DAtOcPEQEtmpl_0fJUHUTWstmpl_jKumMZX6E--designnpx inkframe templates get <id> --design-only --output design.jsonnpx inkframe render --content @post.md --design @design.json --output out.pngreferences/design-options.md\pagebreak\pagebreak# Split content and render each page in parallel
npx inkframe render --content @page1.md --design @design.json --output slide1.png &
npx inkframe render --content @page2.md --design @design.json --output slide2.png &
npx inkframe render --content @page3.md --design @design.json --output slide3.png &
wait&waitcontentBoxVisibilitybackgroundKeycolorPaletteKeycontentBoxVisibility: falsebackgroundKeycolorPaletteKeycontentBoxVisibility: falsenpx inkframe templates list--templatenpx inkframe templates get <id>npx inkframe opennpx inkframe open --content @post.md --design @design.json@file.md--output