# Environment variables Every user-tunable PlayMolecule setting is a `PM_*` environment variable. They are read once at import time and never re-read after; change them, then re-import (or restart your Python process). ## Registry and executor `PM_REGISTRIES` : *Default:* `docker://europe-southwest1-docker.pkg.dev/repositories-368911` Comma-separated registries, in priority order. Each entry must start with `docker://`, `http://`, or `local:`. `local:` is for developers iterating on their own app manifests on disk; most users want `docker://` (the default). Set to `none` to disable defaults entirely. `PM_EXECUTOR` : *Default:* `local` Where jobs run. Either `local` or an `http://` URL pointing at a PlayMolecule HTTP backend. `PM_NO_DEFAULT_REGISTRIES` : *Default:* `0` When `1`, skip the default Acellera registry. Use this if you only want the registries you set in `PM_REGISTRIES` and nothing else. ## Container runtime `PM_RUNTIME` : *Default:* `docker` `docker` or `apptainer` — which container engine to invoke for local execution. `PM_SIF_CACHE_DIR` : *Default:* `~/.cache/playmolecule/apptainer/` Where Apptainer SIF files are cached. Move to shared storage for multi-user / multi-node installs (see [Install apps for a cluster](../howto/install-apps-for-a-cluster.md)). ## Job submission `PM_QUEUE_CONFIG` : *Default:* unset JSON dict. When set, `ed.run()` with no arguments uses it. Expected keys: `queue`, `cpu_partition`, `gpu_partition`, plus any extra forwarded to {py:meth}`~playmolecule.ExecutableDirectory.run` as SLURM kwargs. `PM_SYMLINK` : *Default:* unset When set (any value), input files are **symlinked** into the run directory instead of copied. Faster for large inputs; the run directory becomes non-self-contained (see [Pass input files to an app](../howto/pass-input-files-to-an-app.md)). `PM_BLOCKING` : *Default:* `0` When `1`, app calls block until the job reaches `COMPLETED` or `ERROR` (HTTP-backend path). `PM_JOB_DIR_PREFIX` : *Default:* `""` Prefix applied to job paths submitted through the HTTP backend. `PM_WORKING_DIR` : *Default:* unset If set, used as the base for resolving relative paths. ## HTTP backend `PM_BACKEND_HEADERS` : *Default:* `{}` JSON dict of extra HTTP headers attached to every backend request. `PM_COOKIE_CACHE_DIR` : *Default:* `~/.cache/playmolecule/cookies/` Where login session cookies are persisted. Override in containerised CI runners where `$HOME` is ephemeral. `PLAYMOLECULE_EMAIL` / `PM_EMAIL` : *Default:* unset Default email for `playmolecule login`. `PLAYMOLECULE_PASSWORD` / `PM_PASSWORD` : *Default:* unset Default password for `playmolecule login`. Prefer prompting interactively in normal use. ## Logging `PM_LOG_LEVEL` : *Default:* unset Sets the `playmolecule` logger to any standard level (`DEBUG`, `INFO`, `WARNING`, `ERROR`). `PM_QUIET` : *Default:* `0` When `1`, convenience alias for `PM_LOG_LEVEL=WARNING`. ## See also - [Installation](../installation.md) - [Architecture](../explanation/architecture.md) - [CLI](cli.md)