Environment Variables¶
This reference lists the environment variables that affect VIBE's runtime, logging, configuration, and test harnesses. Unless otherwise noted, variables can be supplied through a .env file or the host environment.
Note: Many settings that were previously controlled via environment variables have been migrated to
config.ymlkeys. Seedoc/configuration-reference.mdfor the full config.yml reference. Specifically,VIBE_DISABLE_ASSISTANT_LOGGING,VIBE_MODEL_CACHE_DIR, and allVIBE_REVIEW_*env vars are now config.yml keys (assistant_logging_enabled,model_cache_dir,review.*,review_backends.*). Assistant and Review settings only apply when those extensions are enabled.
Runtime Configuration¶
-
VIBE_CONFIG_PATHPath to the configuration file. Defaults toconfig.ymlin the current working directory. Can also be set via the--configflag onvibe run. -
VIBE_APP_BASE_URLBase URL used when constructing redirect links in the Zen authentication helper. Defaults tohttp://localhost:5001. -
VIBE_PASETO_KEYEnables token-based authentication for both the main application and the Zen helper. Must be a valid PASETO shared secret; if unset, token auth is disabled in the core app and Zen raises an error on startup. -
OIDC_CLIENT_ID,OIDC_CLIENT_SECRET,OIDC_TENANT_IDRequired to activate the optional Microsoft Entra OIDC login flow in the Zen helper. -
FLASK_SECRET_KEYOverrides the Flask session signing key used by the Zen helper. Falls back to the value inconfig.ymlwhen unset. -
DATABASE_URIOverrides the SQLAlchemy connection string for Zen's user database. Defaults to the bundled SQLite database insidezen/instance/. -
VIBE_DATA_DIRRedirects the data directory root. When provided, all session, draft, log, and cache paths resolve under this directory instead of.vibe_datain the current working directory.
Logging and CLI Behavior¶
-
VIBE_LOG_LEVELSets the console log level. Valid values areDEBUG,INFO,WARNING, orERROR. Defaults toINFO. UseDEBUGto see detailed diagnostic messages such as OCR cache keys and pipeline internals. Example:VIBE_LOG_LEVEL=DEBUG vibe run -
VIBE_QUIET_MODEWhen set to"1", silences console logging by installing a no-op logger. The CLI automatically enables this duringvalidatecommands unless--verboseis supplied. -
TEST_LOGGINGTreats test runs like production mode and emits full logging output. Accepts truthy values ("true","1","yes"). -
PYTEST_CURRENT_TESTDetected automatically by pytest. Its presence tells the logging stack to suppress log file creation that is otherwise enabled for non-test runs. -
FLASK_DEBUGWhen set to"1", instantiates the Flask application at import time so that Flask's debugger and IDE integrations can discover it.
LLM Provider Credentials¶
These keys populate the LLM endpoint definitions declared in config.yml. Leave an endpoint out of production use unless the corresponding key is available.
OPENAI_API_KEYBERGET_API_KEYGOOGLE_API_KEYANTHROPIC_CLAUDE_API_KEYMISTRAL_API_KEY
Each key must grant access to the respective provider; missing keys disable those endpoints at runtime.
Test Harness Controls¶
-
DEBUGPY_RUNNINGIndicates the tests are running under the VS Code debugger. Forces Chrome into headed mode to simplify interactive debugging. -
BROWSER_HEADLESSControls headless Chrome during Playwright browser tests. Any value other than"false"keeps the browser headless. -
VIBE_BROWSER_HELPER_TIMING,BROWSER_HELPER_TIMINGEnable timing instrumentation in the browser assistant helper when set to a truthy value.
E2E LLM tests are now controlled via pytest markers (
@pytest.mark.e2e_llm) and command-line options (--e2e-llm-endpoint,--e2e-record-to,--e2e-playback-from,--e2e-max-turns). Run them withpytest -m e2e_llm --e2e-llm-endpoint=<alias>.