Reference documentation for YAML8n’s configuration

Configuration Sources

Configuration is performed using a JSON/Jsonnet configuration file, environment variables, and command line arguments. Configurations from one source will override previous sources, i.e. environment variables override configuration files, command line arguments override environment variables.

Command Line

Every configuration key can be set using -x <a_config_key1>="a value" -x <a_config_key2>="another value", i.e. -x cli_logLevel=debug -x cli_logFormat=kv. Config values can also be set using JSON, i.e. -x cli='{"logLevel": "debug"}'

Command line values override all other sources.

Environment Variables

Every configuration key can be set using YAML8N_section_key=a value, i.e. YAML8N_cli_logLevel=debug

Environment Variables override a configuration file.

Configuration File

A configuration file be formatted using JSON or Jsonnet. YAML8n looks for yaml8n.jsonnet by default, ascending the directory tree to find it. See the Jsonnet reference for more information. Configuration files are rendered at startup, allowing you to use dynamic Jsonnet functions to dynamically alter the config, i.e.:

local getRecord(type, name, fallback=null) = std.native('getRecord')(type, name, fallback);
local level = getRecord('txt', '');

  cli: [
    logLevel: level,

You can view the rendered configuration by running yaml8n config.

Configuration Values



String, path to the configuration file. If a filename without a path is specified, Rot will search parent directories for the filename and use the first one found.

Default: ".jsonnet"


String, log format to use for logging: human, kv, or raw.

Default: "human"


String, log level to use for logging: none, debug, info, or error.

Default: "info"


Boolean, disables colored log output.

Default: false


Boolean, disables paging of log output using less.

Default: false


String, check/validate a specific language code.

Default: ""


String, the default language code to use if none are set in the translation file. Used to globally set the defaultCode value across multiple translation files or within a monorepo.

Default: ""


Boolean, if warnings should cause failures.

Default: false


Configuration toggles for disabling Jsonnet Native Functions. Some of these functions are disabled by default–namely anything that could perform an external call, like running a command, or performing HTTP or DNS requests. These should only be enabled for Jsonnet files you trust, as they could lead to data exfiltration or worse.


Disable the getArch function.

Default: false


Disable the getCmd function.

Default: true


Disable the getConfig function.

Default: false


Disable the getEnv function.

Default: false


Disable the getFile function.

Default: false


Disable the getFileHTTP function.

Default: true


Disable the getOS function.

Default: false


Disable the getPath function.

Default: false


Disable the getRecord function.

Default: true


Map of ISO 639 codes to their pretty name. YAML8n will warn on translations that are missing these codes. Will be used if none are set in the translation file. Used to globally set the iso639Codes value across multiple translation files or within a monorepo.

Default: {}


String, the YAML8n license key provided to your organization.

Default: ""


String, the path to a translations YAML file.

Default: ""