What's New in Etcha: v2024.01

Release notes for Etcha v2024.01.


Declarative Helpers

Etcha now ships with declarative helper arguments:

  • etcha copy to copy files.
  • etcha dir to manage directories.
  • etcha file to manage files.
  • etcha get to retrieve files locally or from HTTP endpoints.
  • etcha line to manage lines in files.
  • etcha link to manage symlinks.

Libraries have been updated to use these native functions instead of system helpers.

See CLI for details.

Variable Evaluation

Patterns will now evaluate shell variables (${VARIABLE}) before executing a Command if the variable is defined. This applies to variables specified in check, change, and remove Commands, as well as the new stdin value.


  • CLI: Changed and combined CLI arguments to be more concise and reduce the number of similar arguments. See CLI for details.
  • Commands: Stdin can now be set for Commands. See Commands for details.
  • Config: Container networks can now be set for Exec configs. See Commands for details.
  • Jsonnet: Added getArch, a jsonnet library for retrieving the current arch.
  • Jsonnet: Added getOS, a jsonnet library for retrieving the current OS.
  • Libraries: Added line, a library for managing lines in files.
  • Libraries: Added etchaInstall, a library for managing lines in files.


  • CLI: Fixed etcha render not parsing JWTs correctly.
  • Lint: Fixed linting reporting duplicate results.
  • Patterns: Fixed Pattern imports using the Jsonnet function getEnv not obeying the exec.envInherit or exec.env values within the main configuration or source configuration.
  • Sources: Fixed Pattern loading and execution at startup not obeying naming order of sources.