Skip to main content

Inspect effective config

Use loom config show when you want to answer one of these questions quickly:

  • Which config files did Loom discover here?
  • Which value won after user config, repo config, and env overlays were merged?
  • Will loom run --local see the runtime default I expect?

Basic command​

loom config show

On success, the command prints YAML to stdout. The output can include:

  • sources.userConfigPath when ~/.config/loom/config.yml exists
  • sources.repoConfigPath when .loom/config.yml exists in the discovered repo
  • the effective runtime and providers config after layering

Example:

sources:
userConfigPath: /home/alex/.config/loom/config.yml
repoConfigPath: /work/repo/.loom/config.yml
runtime:
docker:
workspaceMount: ephemeral_volume
providers:
keepass:
aliases:
team/app:
path: /work/repo/.loom/vaults/team-app.kdbx
passwordEnv: TEAM_APP_PASSWORD
keyfileEnv: TEAM_APP_KEYFILE
op:
serviceAccountTokenEnv: LOOM_OP_TOKEN

Fast troubleshooting flow​

When config does not look right, check it in this order:

  1. Run loom config show.
  2. Confirm whether sources.userConfigPath and sources.repoConfigPath appear.
  3. Check the final winning value under runtime or providers.
  4. Re-run with a one-off env overlay if you want to test precedence without editing files.

For example:

LOOM_DOCKER_WORKSPACE_MOUNT=ephemeral_volume loom config show

That changes the effective value for this process only. It does not write back to either config file.

How repo discovery works​

loom config show starts from the current working directory and walks upward until it finds a repo marker. A directory counts as the repo root when Loom finds one of:

  • .loom/config.yml
  • .loom/workflow.yml
  • .git

That means you can usually run loom config show from the repo root or from a subdirectory and get the same repo-scoped result.

If no repo root is discovered, Loom skips the repo config layer and prints the effective config from built-in defaults, user config, and supported env overlays.

What you will not see​

loom config show prints the resolved config structure, not every secret or one-off runtime input.

In particular:

  • it shows providers.op.serviceAccountTokenEnv: LOOM_OP_TOKEN, not the actual 1Password service account token
  • it shows KeePass passwordEnv and keyfileEnv references, not the password or keyfile contents
  • it does not show loom run --local --docker-workspace-mount ..., because that flag belongs to the run command, not the config loader

Common misreads​

  • Seeing a value in loom config show does not mean loom check or loom compile will read it. Those commands do not consume layered runtime config.
  • Changing runtime config does not change workflow behavior in .loom/workflow.yml. Runtime config is runtime-only, not a second workflow language.
  • If you already exported a concrete runtime env var such as LOOM_KEEPASS_DB_TEAM_APP_PATH, loom run --local keeps that existing value instead of replacing it with a default from config.