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.