CLI Reference
The Resumx CLI is invoked with resumx. Running resumx --help shows all commands and options.
Render (Default)
Render a Markdown resume to PDF, HTML, PNG, or DOCX.
resumx <file>If no file is specified, defaults to resume.md.
Reading from stdin
Resumx can read Markdown from standard input, enabling piping from other commands:
cat resume.md | resumx # Auto-detects piped stdin
cat resume.md | resumx --format html # Stdin with options
echo "# Quick Resume" | resumx - # Explicit - argument
git show HEAD~3:resume.md | resumx -o old # Render from a past commitWhen reading from stdin, the output filename is derived from:
- Frontmatter
output(if present) - The first
# H1heading (e.g.# Jane SmithproducesJane_Smith.pdf) - If neither exists, use
-oto specify the output name
--watch is not available with stdin input.
Options
| Flag | Description |
|---|---|
--css <path> | Path to custom CSS file. Repeatable, comma-separated. |
-o, --output <value> | Output path: name, directory (trailing /), or template with {view}/{lang}/{format}. |
-f, --format <name> | Output format(s): pdf, html, docx, png. Repeatable, comma-separated. |
-s, --style <name=value> | Override style property. Repeatable. |
-l, --lang <tag> | Generate for specific language(s) only. Repeatable, comma-separated (BCP 47 tags). |
-p, --pages <number> | Target page count. Shrinks to fit; for 1, also fills remaining space. |
--for <name-or-glob> | Tag view name, custom view name, glob pattern, or default for the default view. See Views. |
-v, --var <key=value> | Override a template variable. Repeatable. |
--hide <list> | Hide sections from output (comma-separated data-section values). |
--pin <list> | Pin sections to the top in specified order (comma-separated data-section values). |
--bullet-order <value> | Bullet ordering: none (default) or tag. See Views. |
-w, --watch | Watch for changes and auto-rebuild. |
--check | Validate only, do not render. Exit code 1 if critical issues found. |
--no-check | Skip validation entirely. |
--strict | Fail if validation has any errors. Blocks render (or exit 1 with --check). |
--min-severity <level> | Minimum severity to display: critical, warning, note, bonus. Default: bonus. |
Examples
# Basic render to PDF
resumx resume.md
# Custom CSS file
resumx resume.md --css my-styles.css
# Custom output name
resumx resume.md --output John_Doe_Resume
# Override style properties
resumx resume.md --style font-family="Inter, sans-serif" --style section-title-color="#2563eb"
# Multiple formats
resumx resume.md --format pdf,html,docx
# Fit to 1 page (shrink + fill)
resumx resume.md --pages 1
# Watch mode
resumx resume.md --watch
# Render a custom view
resumx resume.md --for stripe-swe
# Render a tag (uses implicit tag view)
resumx resume.md --for frontend
# Render all views matching a glob
resumx resume.md --for 'stripe-*'
# Render all discovered custom views
resumx resume.md --for '*'
# Use a custom view file
resumx resume.md --for ./tmp/stripe.view.yaml
# Override variables
resumx resume.md --for stripe-swe -v tagline="Stream Processing, Go, Kafka"
# Hide specific sections
resumx resume.md --hide publications,volunteer
# Pin sections to the top
resumx resume.md --pin skills,work
# Ephemeral view (no file modification)
resumx resume.md --for backend -v tagline="Stream Processing, Go" --pin skills,work -o stripe.pdf
# Validate only (no render)
resumx resume.md --check
# Render without validation
resumx resume.md --no-check
# Strict mode: validate, render only if clean
resumx resume.md --strict
# Filter validation output
resumx resume.md --check --min-severity warninginit
Create a new resume from the starter template.
resumx init [filename]| Argument | Default | Description |
|---|---|---|
filename | resume.md | Name for the new resume file. |
| Flag | Description |
|---|---|
--force | Overwrite existing file without prompting. |
Examples
resumx init # Creates resume.md
resumx init my-resume.md # Creates my-resume.md
resumx init resume.md --force # Overwrite if existsOutput Formats
| Format | Flag | Notes |
|---|---|---|
--format pdf (default) | Rendered via Chromium, A4 page size | |
| HTML | --format html | Standalone file with embedded CSS |
| PNG | --format png | A4 viewport (794 × 1123 px) |
| DOCX | --format docx | Via PDF intermediate — requires pdf2docx (pip install pdf2docx) |
Formats can be comma-separated: --format pdf,html,docx.
Frontmatter Configuration
Some CLI options can also be set in the resume's YAML or TOML frontmatter, or in views. CLI flags form an ephemeral view that overrides the active tag view or custom view, which overrides the default view (frontmatter render fields).
---
pages: 1
output: ./dist/John_Doe-{view}
style:
font-family: 'Inter, sans-serif'
section-title-color: '#2563eb'
---See the Frontmatter Reference for the full list of fields, types, defaults, and validation options.
Output Naming
When no -o flag or output frontmatter is set, filenames are automatically determined:
| Scenario | Output |
|---|---|
| No view, no langs | resume.pdf |
| With tag/view | resume-frontend.pdf |
| With langs | resume-en.pdf |
| Tag/view + langs | frontend/resume-en.pdf |
For custom naming, use the -o flag with template variables:
# Template with view name variable
resumx resume.md -o "John_Doe-{view}" --for frontend
# → John_Doe-frontend.pdf
# Template with view and lang
resumx resume.md -o "{view}/John_Doe-{lang}" --for frontend --lang en,fr
# → frontend/John_Doe-en.pdf, frontend/John_Doe-fr.pdfSee the Frontmatter Reference for full details on template variables and modes.