CLI
YAMLResume provides a CLI tool to help you manage your resume. You can follow the installation guide to install it.
YAMLResume CLI in docker
Please note that we have a docker image
for you, which has yamlresume CLI installed with all the necessary
dependencies.
For each sub-command in this guide, you can run it in docker by appending the
sub-command after yamlresume/yamlresume.
For example, to create a new resume in yamlresume CLI:
yamlresume new my-resume.ymlYou can also run it in docker by:
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.ymlHelp
Show CLI help and all available commands:
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
ai AI-powered resume commands
build [options] <resume-path> build a resume to Docx, HTML, Markdown or
LaTeX/PDF
dev [options] <resume-path> build a resume on file changes (watch mode)
doctor check environment for YAMLResume dependencies
languages i18n and l10n support
new [options] [filename] create a new resume
samples manage sample resumes
templates manage resume templates
validate <resume-path> validate a resume against the YAMLResume schema
help [command] display help for commandShow YAMLResume CLI version:
$ yamlresume -V
0.16.0AI
Generate a new resume or translate an existing one with an LLM:
$ yamlresume ai --help
Usage: yamlresume ai [options] [command]
AI-powered resume commands
Options:
-h, --help display help for command
Commands:
generate [options] <filename> generate a new resume with AI
translate [options] <input> <output> translate a resume from one locale
language to another with AI
help [command] display help for commandSee the AI overview, generation guide, and translation guide for provider setup and command options.
New
Create a new resume. The default resume filename is resume.yml, but you
can specify a custom filename:
$ yamlresume new --help
Usage: yamlresume new [options] [filename]
create a new resume
Arguments:
filename output filename (default: "resume.yml")
Options:
--sample <id> create from a curated sample resume
--language <language> locale language for the sample (default: "en")
-h, --help display help for command
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.Since v0.15.0, yamlresume new creates your resume from a curated sample
resume (the default is the software-engineer sample in English). The
generated file comes with helpful YAML comments for editor/IDE schema
validation and a set of default layouts, so you can build it right away.
--sample
If you want to start from a specific curated sample resume, use the
--sample option. Run yamlresume samples list to see all
available samples:
$ yamlresume new ux-designer.yml --sample ux-designer
✔ Created ux-designer.yml from sample "ux-designer" successfully.If an unknown sample id is given, the CLI prints all available samples to help you choose:
$ yamlresume new my-resume.yml --sample no-such-sample
ERROR Sample resume not found: no-such-sample
ℹ Available samples:
- data-analyst: Data Analyst
- data-scientist: Data Scientist
- product-manager: Product Manager
- software-engineer: Software Engineer
- ux-designer: UX Designer--language
All sample resumes are translated in 12 locale languages. You can use the
--language option to create a resume from a localized sample, which is
quite handy for writing non-English resumes:
$ yamlresume new my-resume.yml --sample software-engineer --language zh-hans
✔ Created my-resume.yml successfully.Samples
YAMLResume ships with a set of curated sample resumes for common positions,
translated in 12 locale languages (de, en, es, fr, id, ja, nl,
no, pt-br, zh-hans, zh-hant-hk, zh-hant-tw). List them all with the
samples list subcommand:
$ yamlresume samples --help
Usage: yamlresume samples [options] [command]
manage sample resumes
Options:
-h, --help display help for command
Commands:
list list all sample resumes
help [command] display help for command
$ yamlresume samples list
| ID | Position | Title | Category |
| ----------------- | ----------------- | ----------------- | -------------- |
| data-analyst | data analyst | Data Analyst | Data Analytics |
| data-scientist | data scientist | Data Scientist | Data Science |
| product-manager | product manager | Product Manager | Product |
| software-engineer | software engineer | Software Engineer | Engineering |
| ux-designer | ux designer | UX Designer | Design |Use yamlresume new --sample <id> to create a new resume file from a
sample.
Build
Build every layout configured in a YAML resume. A single command can generate
DOCX, HTML, Markdown, and LaTeX/PDF outputs. LaTeX layouts also produce the
.tex source and may leave intermediate files such as .aux and .log when
using XeTeX.
$ yamlresume build --help
Usage: yamlresume build [options] <resume-path>
build a resume to Docx, HTML, Markdown or LaTeX/PDF
Arguments:
resume-path the resume file path
Options:
--no-pdf only generate TeX file without PDF (for LaTeX layouts)
--no-validate skip resume schema validation
-o, --output <dir> output directory for generated files
-t, --timeout <seconds> timeout for LaTeX compilation in seconds (default: 30, 0 to disable)
-h, --help display help for command
$ yamlresume build my-resume.yml
◐ Generating resume PDF file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF file successfully.--no-pdf
If you only want to generate the LaTeX file without PDF, you can use --no-pdf
option.
$ yamlresume build --no-pdf my-resume.yml--no-validate
If you want to skip the resume schema validation, you can use --no-validate
option.
$ yamlresume build --no-validate my-resume.yml--output
If you want to specify a custom output directory for the generated files, you can
use the -o, --output option.
$ yamlresume build -o ./output my-resume.yml--timeout
If you want to customize the timeout for LaTeX compilation, you can use the
--timeout option. The default timeout is 30 seconds. You can disable the
timeout by setting it to 0.
$ yamlresume build --timeout 60 my-resume.ymlDev
Watch a YAML resume and rebuild all configured layouts whenever the file
changes. This is convenient for previewing edits in real time. dev supports
the PDF, validation, and output-directory options from build.
$ yamlresume dev --help
Usage: yamlresume dev [options] <resume-path>
build a resume on file changes (watch mode)
Arguments:
resume-path the resume file path
Options:
--no-pdf only generate TeX file without PDF
--no-validate skip resume schema validation
-o, --output <dir> output directory for generated files
-h, --help display help for commandValidate
Validate a resume against the YAMLResume schema.
$ yamlresume validate --help
Usage: yamlresume validate [options] <resume-path>
validate a resume against the YAMLResume schema
Arguments:
resume-path the resume file path
Options:
-h, --help display help for commandFor example, for the following resume:
# yaml-language-server: $schema=https://yamlresume.dev/schema.json
---
content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@pp
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences
location:
address: 123 Main Street
region: California
city: S
country: United States
postalCode: "95814"
education:
- institution: University of Southern California
url: https://www.cs.usc.edu/
degree: Bachelor
area: Computer Engineering and Computer Science
score: "3.8"
startDate: Sep 1, 2016
endDate:
courses:
- D
- Programming Language Concepts
summary: |
- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations
layouts:
- engine: latex
typography:
fontSize: 13ptyamlresume validate will give you a list of potential errors, with clear
positional information
$ yamlresume validate invalid-resume.yml
invalid-resume.yml:9:12: warning: email is invalid.
email: hi@pp
^
invalid-resume.yml:19:11: warning: city should be 2 characters or more.
city: S
^
invalid-resume.yml:31:11: warning: courses should be 2 characters or more.
- D
^
invalid-resume.yml:41:17: warning: font size option is invalid, it must be one of the following: ["10pt", "11pt", "12pt"]
fontSize: 13pt
^
✖ Resume validation failed.Doctor
Check your environment for YAMLResume dependencies. This command helps diagnose setup issues by verifying that all required tools and fonts are properly installed.
$ yamlresume doctor
System:
OS: macOS 14.6.1
CPU: (10) arm64 Apple M1 Max
Binaries:
Node: 25.6.0 - /opt/homebrew/bin/node
Yarn: 1.22.22 - /Users/hanyu/Library/pnpm/yarn
npm: 11.8.0 - /opt/homebrew/bin/npm
pnpm: 10.6.3 - /opt/homebrew/bin/pnpm
ℹ Checking XeTeX...
XeTeX: XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
ℹ Checking Tectonic...
Tectonic: tectonic 0.15.0
ℹ Checking Fonts...
Linux Libertine O: Not Installed
Linux Libertine: Installed
Noto Serif CJK SC: Installed
Noto Sans CJK SC: InstalledThe doctor command checks:
- System information: OS, CPU architecture
- Binaries: Node.js, npm, pnpm, Yarn, Bun
- LaTeX engines: XeTeX and Tectonic availability
- Fonts: Required fonts for optimal resume rendering (Linux Libertine for Latin text, Noto CJK for Chinese/Japanese/Korean)
This is particularly helpful when setting up YAMLResume on a new machine or troubleshooting resume build issues.
Languages
List all available languages. The language code follows the spec in ISO
639 specification. You can specify
the language code in locale.language in order to change the language of
your resume. Changing the language of your resume will automatically translate
all fixed terms. You can check more details in our content -> multi
languages section.
$ yamlresume languages list
| locale.language | Language Name |
| --------------- | ------------------------------- |
| en | English |
| zh-hans | Simplified Chinese |
| zh-hant-hk | Traditional Chinese (Hong Kong) |
| zh-hant-tw | Traditional Chinese (Taiwan) |
| es | Spanish |
| fr | French |
| no | Norwegian |
| nl | Dutch |
| ja | Japanese |
| de | German |
| id | Indonesian |
| pt-br | Brazilian Portuguese |Templates
List all available templates. You can change the resume template by setting
layouts.[].template in your YAML resume. PPResume
Templates for more details.
$ yamlresume templates list
| layouts.[].template | Engine | Template Name | Description |
| ------------------- | ------ | ---------------- | ------------------------------------------------------------------- |
| jake | latex | Jake's Resume | A simple, straight-forward resume template based on Jake's Resume |
| moderncv-banking | latex | ModernCV Banking | ModernCV template with banking style |
| moderncv-casual | latex | ModernCV Casual | ModernCV template with casual style |
| moderncv-classic | latex | ModernCV Classic | ModernCV template with classic style |
| calm | html | Calm | Clean and minimalist design suitable for all professionals. |
| vscode | html | VS Code | Dark theme inspired by Visual Studio Code, tailored for developers. |
| calm | docx | Calm | Clean and minimalist design suitable for all professionals. |Last updated on