Skip to content

Configuration

Voltig CLI uses a voltig.yml file to define packages and custom commands. Voltig will automatically find voltig.yml in your current directory or any parent directory.

You can run Voltig commands from any subfolder in your project tree—Voltig will search upwards for the nearest voltig.yml.

The voltig.yml file defines packages and custom commands for the Voltig CLI. Below are the allowed formats and best practices for configuration.

Define packages to be installed and managed. Each package entry can use either a single name (as a string) or multiple names (as an array of strings).

packages:
# Single package name (string)
- name: "python3"
version: latest
manager: brew
# Multiple package names (array)
- name: ["node", "rust"]
version: latest
manager: brew
  • name: string or array of strings — The name(s) of the package(s).
  • version: string — The version to install (e.g., latest, 1.0.0). Optional.
  • manager: string — The package manager to use (e.g., brew).
  • optional: boolean — If true, package is optional. Default is false.
  • dependencies: array of strings — List of package dependencies. Optional.
packages:
- name: "python3"
version: "3.11"
manager: brew
- name: ["node", "rust"]
version: latest
manager: brew
- name: ["git"]
manager: brew
optional: true
dependencies: ["curl", "openssl"]

Define custom commands to run with Voltig. Each command can have a summary, a shell command, a script, and optional arguments.

commands:
build:
summary: Build the project
command: go build -o voltig .
test:
summary: Run tests
command: go test ./...
setup-dev:
summary: Run setup script
script: ./scripts/setup-dev.sh
deploy:
summary: Deploy with arguments
script: ./scripts/deploy.sh
args:
- "--prod"
  • summary: Short description of the command.
  • command: Shell command to execute.
  • script: Path to a script file to run.
  • args: List of arguments to pass to the script.

💡 Tip: Indentation should be two spaces. Use YAML array syntax for multiple values.

  • Group related packages using the array syntax for clarity.
  • Use descriptive summaries for commands.
  • Keep your configuration DRY and organized.