Skip to content

Configuration Reference

Yusuke Abe edited this page Aug 11, 2026 · 3 revisions

Configuration Reference

Index of every wip.yml key. Each feature has its own page; this page is the map plus the top-level keys that don't warrant one.

Top-level keys

Key Modes Default Meaning
version: all 1 Config schema version. Only 1 is supported; anything else is a ConfigError.
mode: all container container / compose / compose-native. See Choosing a Mode.
wslc: all {command: auto} Which wslc binary to shell out to. See Config File Discovery.
container: container (none) Which dependencies: entry is primary. Required once dependencies: has entries. See Dependencies.
network: container (unset) Container network shared by every dependency. See Networking.
dependencies: container {} Every container wip manages. See Dependencies.
compose: compose, compose-native Which compose file/service to use. See Compose Mode / Compose Native Mode.
interaction: / commands: all {} Project commands run as wip NAME. See Interactions.
sync: all (unset) Mirror the source into a named volume. See Source Sync.

By feature

File and binary resolution

Containers

Commands

  • Interactionsinteraction: / commands:, type: exec|run|build, name collisions

Environment

  • Env Files.env loading rules, --env-file, precedence
  • Secret Masking — what wip config redacts, and what that does and doesn't protect

Builds

Source sync

  • Source Sync — the sync: block, every parameter, mount rewriting
  • Sync Modesexec vs. run, sync.image / sync.build, per-mode defaults

compose.yml

Which keys are legal in which mode

Key container compose-native compose
container: required with deps rejected (implied) rejected (implied)
dependencies: yes rejected rejected
network: yes derived from compose.project rejected
compose.service required required
compose.file optional optional
compose.project optional optional
compose.command rejected required
interaction.type: run yes yes rejected
interaction.type: build yes yes rejected
sync.mode: exec yes (default) yes (default) rejected
sync.image / sync.build optional optional one required

Every rejection above is a load-time ConfigError — see Configuration Errors for the exact messages.

Seeing the effective config

wip config

prints the fully defaulted, secret-masked configuration as YAML — the fastest way to check what wip actually resolved. See wip config.

Clone this wiki locally