Yell

CLI Reference

Installation

npm install -g @yell/cli

Or use via npx:

npx yell --help

Commands

yell validate

Validate a YAML file against the schema:

yell validate input.yell.yaml
yell validate input.yell.yaml --registry ./components.yaml

Exit codes:

yell render

Render YAML to HTML:

yell render input.yell.yaml --out dist/index.html
yell render input.yell.yaml --registry ./components.yaml --pretty

yell lint

Check YAML for anti-patterns:

yell lint input.yell.yaml
yell lint input.yell.yaml --rules noInlineFunctions,maxDepth:5

Linter rules

Rule Description Default
noInlineFunctions Block onClick: () => ... error
maxExpressionLength Max chars in an expression 100
maxNestingDepth Max nesting depth 5
noMutations Block x = x + 1 error
allowedShowWhenOps Allowed operators in showWhen ['==','!=','&&','||','!','>','<']

Fix mode

Auto-fix safe violations:

yell lint input.yell.yaml --fix

yell build

Build with import/include resolution:

yell build input.yell.yaml --out dist/
yell build input.yell.yaml --registry ./components.yaml --tokens ./tokens.yaml

yell tokens

Migrate token references:

yell tokens migrate --from old.yaml --to new.yaml input.yell.yaml

yell ai

Generate YAML from natural language:

yell ai "Create a login page with email and password"
yell ai "Create a dashboard" --registry ./components.yaml --model claude-3-5-sonnet

Global options

Option Description
--help, -h Show help
--version, -v Show version
--quiet, -q Suppress output
--verbose Extra debug output

Configuration

Create a .yellrc file in your project root:

registry: ./components.yaml
tokens: ./tokens.yaml
rules:
  noInlineFunctions: error
  maxNestingDepth: 5
  maxExpressionLength: 100

Yell automatically loads .yellrc from the current directory.

Examples

Validate and render in CI

# .github/workflows/yell.yml
- name: Validate YAML
  run: yell validate . --recursive

- name: Build for production
  run: yell build ./src --out ./dist

Watch mode

yell build --watch

File changes trigger rebuild.

Next steps