Configuration
module-manager reads defaults in this order, from lowest to highest priority:
~/.config/module-manager/config.tomlMODULE_MANAGER_*environment variables- CLI options
TOML Config
Create ~/.config/module-manager/config.toml:
prefix = "/prod/tools"
module_root = "/prod/modulefiles"
[python]
indexes = ["https://packages.example/simple"]
find_links = ["/prod/wheels"]
uv_config_file = "/prod/config/uv.toml"
prefix and module_root must resolve to different directories. Using the
same root makes <prefix>/<name>/<version> both an installation directory and
a modulefile path.
Use a different config file with --config:
module-manager --config ./module-manager.toml deploy-python ...
Environment Variables
export MODULE_MANAGER_PREFIX=/prod/tools
export MODULE_MANAGER_MODULE_ROOT=/prod/modulefiles
export MODULE_MANAGER_INDEXES=https://packages.example/simple,https://mirror.example/simple
export MODULE_MANAGER_FIND_LINKS=/prod/wheels,/prod/more-wheels
MODULE_MANAGER_CONFIG can point to an alternate TOML config file.
There is no MODULE_MANAGER_* environment variable for uv configuration files.
Use uv's own UV_CONFIG_FILE environment variable when you want to set that via
the environment.
CLI Precedence
CLI options override both environment variables and TOML config:
module-manager deploy-rust ripgrep 14.1.1 \
--prefix /scratch/tools \
--module-root /scratch/modulefiles