Skip to content

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.

bash
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:

bash
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 commit

When reading from stdin, the output filename is derived from:

  1. Frontmatter output (if present)
  2. The first # H1 heading (e.g. # Jane Smith produces Jane_Smith.pdf)
  3. If neither exists, use -o to specify the output name

--watch is not available with stdin input.

Options

FlagDescription
--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, --watchWatch for changes and auto-rebuild.
--checkValidate only, do not render. Exit code 1 if critical issues found.
--no-checkSkip validation entirely.
--strictFail 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

bash
# 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 warning

init

Create a new resume from the starter template.

bash
resumx init [filename]
ArgumentDefaultDescription
filenameresume.mdName for the new resume file.
FlagDescription
--forceOverwrite existing file without prompting.

Examples

bash
resumx init                    # Creates resume.md
resumx init my-resume.md       # Creates my-resume.md
resumx init resume.md --force  # Overwrite if exists

Output Formats

FormatFlagNotes
PDF--format pdf (default)Rendered via Chromium, A4 page size
HTML--format htmlStandalone file with embedded CSS
PNG--format pngA4 viewport (794 × 1123 px)
DOCX--format docxVia 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).

yaml
---
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:

ScenarioOutput
No view, no langsresume.pdf
With tag/viewresume-frontend.pdf
With langsresume-en.pdf
Tag/view + langsfrontend/resume-en.pdf

For custom naming, use the -o flag with template variables:

bash
# 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.pdf

See the Frontmatter Reference for full details on template variables and modes.