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:
| Package | Responsibility |
|---|---|
@yamlresume/core | Platform-independent schema, compiler, renderers, and translations |
@yamlresume/node | Node.js file I/O, builds, watch mode, and LaTeX compilation |
yamlresume | CLI commands and terminal output |
@yamlresume/ai | Model-level resume generation and translation |
@yamlresume/samples | Curated, localized sample resume catalog |
@yamlresume/playground | Browser-based React editor and preview component |
create-yamlresume | Project scaffolding command |
json2yamlresume | JSON 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 installBuild all packages once, or keep them rebuilding while you work:
pnpm build
pnpm build:watchYou can target a package through a root shortcut:
pnpm core build
pnpm node build
pnpm cli buildOr use a pnpm filter directly:
pnpm --filter @yamlresume/node buildWhen 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.ymlTo exercise the compiled bundle instead:
pnpm cli build
node packages/cli/dist/cli.js --helpThe 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 testRun the complete workspace test suite and code-quality checks before opening a pull request:
pnpm test
pnpm check:ciSee the testing guide for watch mode and coverage commands.
Last updated on