YAMLResume

CLI and Packages

YAMLResume is a pnpm monorepo. The yamlresume CLI is intentionally a thin command-line wrapper around reusable packages, so changes to CLI behavior often belong in a lower-level package rather than directly in packages/cli.

Package Architecture

The workspace contains these public packages and commands:

PackageResponsibility
@yamlresume/corePlatform-independent schema, compiler, renderers, and translations
@yamlresume/nodeNode.js file I/O, builds, watch mode, and LaTeX compilation
yamlresumeCLI commands and terminal output
@yamlresume/aiModel-level resume generation and translation
@yamlresume/samplesCurated, localized sample resume catalog
@yamlresume/playgroundBrowser-based React editor and preview component
create-yamlresumeProject scaffolding command
json2yamlresumeJSON Resume converter

The private @yamlresume/testing workspace package provides shared test fixtures, logger mocks, and command helpers.

For example, yamlresume build delegates file parsing and output generation to buildResumeFile from @yamlresume/node. The Node package calls @yamlresume/core for validation and rendering, then handles filesystem access and LaTeX compilation. Keeping the Commander action small makes the same build workflow available to scripts, web services, and future integrations.

Install and Build

Install every workspace dependency from the repository root:

pnpm install

Build all packages once, or keep them rebuilding while you work:

pnpm build
pnpm build:watch

You can target a package through a root shortcut:

pnpm core build
pnpm node build
pnpm cli build

Or use a pnpm filter directly:

pnpm --filter @yamlresume/node build

When changing a dependency of the CLI, build the dependency first. For example, changes to @yamlresume/core used through @yamlresume/node should be built before testing the CLI. Running pnpm build:watch from the root is the easiest way to keep the dependency chain current.

Run the CLI Locally

Run the TypeScript source directly with tsx:

pnpm cli dev --help
pnpm cli dev new resume.yml
pnpm cli dev build resume.yml
pnpm cli dev ai translate --to fr resume.en.yml resume.fr.yml

To exercise the compiled bundle instead:

pnpm cli build
node packages/cli/dist/cli.js --help

The source entry point is packages/cli/src/cli.ts. Command factories live in packages/cli/src/commands, and reusable runtime behavior belongs in packages/node/src whenever it is not specific to terminal presentation.

Run Tests

Run focused tests while developing:

pnpm cli test
pnpm node test
pnpm core test

Run the complete workspace test suite and code-quality checks before opening a pull request:

pnpm test
pnpm check:ci

See the testing guide for watch mode and coverage commands.

Edit on GitHub

Last updated on

On this page