npm install -g @yell/cli
Or use via npx:
npx yell --help
yell validateValidate a YAML file against the schema:
yell validate input.yell.yaml
yell validate input.yell.yaml --registry ./components.yaml
Exit codes:
0 — valid1 — invalid (errors printed to stderr)2 — parse erroryell renderRender YAML to HTML:
yell render input.yell.yaml --out dist/index.html
yell render input.yell.yaml --registry ./components.yaml --pretty
yell lintCheck YAML for anti-patterns:
yell lint input.yell.yaml
yell lint input.yell.yaml --rules noInlineFunctions,maxDepth:5
| 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 | ['==','!=','&&','||','!','>','<'] |
Auto-fix safe violations:
yell lint input.yell.yaml --fix
yell buildBuild with import/include resolution:
yell build input.yell.yaml --out dist/
yell build input.yell.yaml --registry ./components.yaml --tokens ./tokens.yaml
yell tokensMigrate token references:
yell tokens migrate --from old.yaml --to new.yaml input.yell.yaml
yell aiGenerate 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
| Option | Description |
|---|---|
--help, -h |
Show help |
--version, -v |
Show version |
--quiet, -q |
Suppress output |
--verbose |
Extra debug output |
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.
# .github/workflows/yell.yml
- name: Validate YAML
run: yell validate . --recursive
- name: Build for production
run: yell build ./src --out ./dist
yell build --watch
File changes trigger rebuild.