Files
pmg/docs/config.md
T
Sahil BansalandGitHub d1dd2560a4 feat: consolidate proxy config into structured section and add support for custom commands to skip proxy (#240)
* feat: add ProxyConfig struct with per-PM skip_commands and legacy fallback

* feat: consolidate proxy config into structured section with backward compat

Replaces flat proxy_mode/proxy_install_only keys with a structured proxy
section supporting per-package-manager skip_commands. Legacy keys are
respected via fallback when user's config lacks the new proxy section.
Removes deprecated experimental_proxy_mode config and flag.

* fix: env var resolution for nested config keys and deduplicate skip command matching

- Add "." to "_" in Viper env key replacer so nested keys like
  sandbox.enabled resolve from PMG_SANDBOX_ENABLED (was silently broken)
- Export IsFirstNonFlagArgInList and remove duplicate from proxy_flow.go
- Add table-driven tests for skip command matching with real-world cases
- Remove redundant env var test

* docs: update proxy configuration and env var documentation

Update config.md env var table to reflect new proxy.enabled and
proxy.install_only keys. Add proxy configuration section to proxy.md
covering config structure, per-PM skip commands, CLI flags, and env vars.

* fix: legacy fallback precedence
2026-05-06 18:27:23 +05:30

1.6 KiB

Configuration

PMG supports local configuration through a configuration file. To create the default configuration file, run:

pmg setup install

To see the configuration file path and activated configuration, run:

pmg setup info

To edit configuration file:

pmg setup edit

See config template for the configuration schema.

Environment Variables

Any configuration key can be overridden using environment variables, without modifying the config file. This is useful for CI/CD pipelines or temporary overrides.

Format: PMG_<KEY> where the key is the config key uppercased, with nested keys joined by _.

Config key Environment variable
transitive PMG_TRANSITIVE
paranoid PMG_PARANOID
proxy.enabled PMG_PROXY_ENABLED
proxy.install_only PMG_PROXY_INSTALL_ONLY
verbosity PMG_VERBOSITY
skip_event_logging PMG_SKIP_EVENT_LOGGING
sandbox.enabled PMG_SANDBOX_ENABLED
dependency_cooldown.enabled PMG_DEPENDENCY_COOLDOWN_ENABLED
cloud.enabled PMG_CLOUD_ENABLED

Legacy environment variables PMG_PROXY_MODE and PMG_PROXY_INSTALL_ONLY (for the old flat keys) are still supported when the proxy: section does not exist in the config file.

Example:

# Enable paranoid mode without editing the config file
PMG_PARANOID=true pmg npm install express

# Restrict proxy to install commands only
PMG_PROXY_INSTALL_ONLY=true pmg npm install express

Precedence (highest to lowest):

  1. CLI flags
  2. Environment variables (PMG_*)
  3. Config file (config.yml)
  4. Built-in defaults