New to Claude Skills? Learn how to install them →

minimax-ai on GitHub

Minimax PDF

Free

Create and format high-quality PDFs with ease.

by minimax-ai13.3k stars on minimax-ai/skills
1 views
Updated Apr 18, 2026
Get this skill

Free · Opens the source repo

What Minimax PDF does

Minimax PDF is a versatile skill designed for generating, filling, and reformatting PDF documents with a strong emphasis on visual quality and design identity. This skill is particularly useful for professionals who need to produce polished documents such as reports, proposals, resumes, and portfolios. It supports three main tasks: creating new PDFs from scratch, filling out form fields in existing PDFs, and reformatting existing documents to enhance their appearance. The skill utilizes a token-based design system that ensures consistent application of colors, typography, and spacing throughout the document, resulting in a print-ready output that meets professional standards.

The CREATE function allows users to generate a variety of document types, including reports, proposals, and academic papers, by specifying content and design parameters. Users can customize elements such as title, author, and accent colors to align with the document's purpose and audience. The FILL function provides an efficient way to complete form fields in existing PDFs, making it ideal for situations where quick data entry is required. Meanwhile, the REFORMAT function enables users to apply a new design to an existing document, transforming it into a visually appealing format without starting from scratch.

This skill is particularly suited for designers, project managers, and anyone who frequently creates or modifies professional documents. Its emphasis on aesthetic quality makes it a valuable tool for those in fields where presentation matters, such as marketing, consulting, and academia. By streamlining the process of document creation and formatting, Minimax PDF helps users save time while ensuring their outputs are visually compelling and aligned with their brand identity.

When to use it

Use this skill when you need to create, fill, or reformat PDFs with a focus on design quality and consistency.

When not to use it

This skill may not be suitable for simple PDF tasks that do not require a strong visual identity or when working with documents that do not need formatting.

What you can build with it

Creating a Professional Proposal

Generate a polished proposal PDF with a custom cover and well-structured content.

Filling Out Client Forms

Quickly fill in required fields in a client PDF form, streamlining the data entry process.

Reformatting an Academic Paper

Transform an existing academic paper into a visually appealing format that meets publication standards.

How to install Minimax PDF

View source

1. Install with the skills CLI

npx skills add minimax-ai/skills/minimax-pdf --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by minimax-ai

minimax-pdf

Three tasks. One skill.

Read design/design.md before any CREATE or REFORMAT work.


Route table

User intentRouteScripts used
Generate a new PDF from scratchCREATEpalette.pycover.pyrender_cover.jsrender_body.pymerge.py
Fill / complete form fields in an existing PDFFILLfill_inspect.pyfill_write.py
Reformat / re-style an existing documentREFORMATreformat_parse.py → then full CREATE pipeline

Rule: when in doubt between CREATE and REFORMAT, ask whether the user has an existing document to start from. If yes → REFORMAT. If no → CREATE.


Route A: CREATE

Full pipeline — content → design tokens → cover → body → merged PDF.

bash scripts/make.sh run \
  --title "Q3 Strategy Review" --type proposal \
  --author "Strategy Team" --date "October 2025" \
  --accent "#2D5F8A" \
  --content content.json --out report.pdf

Doc types: report · proposal · resume · portfolio · academic · general · minimal · stripe · diagonal · frame · editorial · magazine · darkroom · terminal · poster

TypeCover patternVisual identity
reportfullbleedDark bg, dot grid, Playfair Display
proposalsplitLeft panel + right geometric, Syne
resumetypographicOversized first-word, DM Serif Display
portfolioatmosphericNear-black, radial glow, Fraunces
academictypographicLight bg, classical serif, EB Garamond
generalfullbleedDark slate, Outfit
minimalminimalWhite + single 8px accent bar, Cormorant Garamond
stripestripe3 bold horizontal color bands, Barlow Condensed
diagonaldiagonalSVG angled cut, dark/light halves, Montserrat
frameframeInset border, corner ornaments, Cormorant
editorialeditorialGhost letter, all-caps title, Bebas Neue
magazinemagazineWarm cream bg, centered stack, hero image, Playfair Display
darkroomdarkroomNavy bg, centered stack, grayscale image, Playfair Display
terminalterminalNear-black, grid lines, monospace, neon green
posterposterWhite bg, thick sidebar, oversized title, Barlow Condensed

Cover extras (inject into tokens via --abstract, --cover-image):

  • --abstract "text" — abstract text block on the cover (magazine/darkroom)
  • --cover-image "url" — hero image URL/path (magazine, darkroom, poster)

Color overrides — always choose these based on document content:

  • --accent "#HEX" — override the accent color; accent_lt is auto-derived by lightening toward white
  • --cover-bg "#HEX" — override the cover background color

Accent color selection guidance:

You have creative authority over the accent color. Pick it from the document's semantic context — title, industry, purpose, audience — not from generic "safe" choices. The accent appears on section rules, callout bars, table headers, and the cover: it carries the document's visual identity.

ContextSuggested accent range
Legal / compliance / financeDeep navy #1C3A5E, charcoal #2E3440, slate #3D4C5E
Healthcare / medicalTeal-green #2A6B5A, cool green #3A7D6A
Technology / engineeringSteel blue #2D5F8A, indigo #3D4F8A
Environmental / sustainabilityForest #2E5E3A, olive #4A5E2A
Creative / arts / cultureBurgundy #6B2A35, plum #5A2A6B, terracotta #8A3A2A
Academic / researchDeep teal #2A5A6B, library blue #2A4A6B
Corporate / neutralSlate #3D4A5A, graphite #444C56
Luxury / premiumWarm black #1A1208, deep bronze #4A3820

Rule: choose a color that a thoughtful designer would select for this specific document — not the type's default. Muted, desaturated tones work best; avoid vivid primaries. When in doubt, go darker and more neutral.

content.json block types:

BlockUsageKey fields
h1Section heading + accent ruletext
h2Subsection headingtext
h3Sub-subsection (bold)text
bodyJustified paragraph; supports <b> <i> markuptext
bulletUnordered list item (• prefix)text
numberedOrdered list item — counter auto-resets on non-numbered blockstext
calloutHighlighted insight box with accent left bartext
tableData table — accent header, alternating row tintsheaders, rows, col_widths?, caption?
imageEmbedded image scaled to column widthpath/src, caption?
figureImage with auto-numbered "Figure N:" captionpath/src, caption?
codeMonospace code block with accent left bordertext, language?
mathDisplay math — LaTeX syntax via matplotlib mathtexttext, label?, caption?
chartBar / line / pie chart rendered with matplotlibchart_type, labels, datasets, title?, x_label?, y_label?, caption?, figure?
flowchartProcess diagram with nodes + edges via matplotlibnodes, edges, caption?, figure?
bibliographyNumbered reference list with hanging indentitems [{id, text}], title?
dividerAccent-colored full-width rule
captionSmall muted labeltext
pagebreakForce a new page
spacerVertical whitespacept (default 12)

chart / flowchart schemas:

{"type":"chart","chart_type":"bar","labels":["Q1","Q2","Q3","Q4"],
 "datasets":[{"label":"Revenue","values":[120,145,132,178]}],"caption":"Q results"}

{"type":"flowchart",
 "nodes":[{"id":"s","label":"Start","shape":"oval"},
          {"id":"p","label":"Process","shape":"rect"},
          {"id":"d","label":"Valid?","shape":"diamond"},
          {"id":"e","label":"End","shape":"oval"}],
 "edges":[{"from":"s","to":"p"},{"from":"p","to":"d"},
          {"from":"d","to":"e","label":"Yes"},{"from":"d","to":"p","label":"No"}]}

{"type":"bibliography","items":[
  {"id":"1","text":"Author (Year). Title. Publisher."}]}

Route B: FILL

Fill form fields in an existing PDF without altering layout or design.

# Step 1: inspect
python3 scripts/fill_inspect.py --input form.pdf

# Step 2: fill
python3 scripts/fill_write.py --input form.pdf --out filled.pdf \
  --values '{"FirstName": "Jane", "Agree": "true", "Country": "US"}'
Field typeValue format
textAny string
checkbox"true" or "false"
dropdownMust match a choice value from inspect output
radioMust match a radio value (often starts with /)

Always run fill_inspect.py first to get exact field names.


Route C: REFORMAT

Parse an existing document → content.json → CREATE pipeline.

bash scripts/make.sh reformat \
  --input source.md --title "My Report" --type report --out output.pdf

Supported input formats: .md .txt .pdf .json


Environment

bash scripts/make.sh check   # verify all deps
bash scripts/make.sh fix     # auto-install missing deps
bash scripts/make.sh demo    # build a sample PDF
ToolUsed byInstall
Python 3.9+all .py scriptssystem
reportlabrender_body.pypip install reportlab
pypdffill, merge, reformatpip install pypdf
Node.js 18+render_cover.jssystem
playwright + Chromiumrender_cover.jsnpm install -g playwright && npx playwright install chromium

Frequently asked questions about Minimax PDF

Similar skills