Environment Variables

This page lists all environment variables recognized by the exo CLI. Set them in your shell profile (~/.bashrc or ~/.zshrc) or inline before a command.

Configuration Root

VariableDescriptionDefault
EXO_CONFIG_DIRRoot directory for all exo config, cache, and credentials. When set, all paths (contexts, credentials, SSH config, AWS credentials, drive tokens, credential-helper cache) are rooted under this directory instead of the system defaults. Equivalent to the --config-dir persistent flag.(none — system defaults)

This is useful for running multiple isolated exo sessions on the same machine (e.g., CI/CD pipelines, container builds, or multi-user environments):

# Isolate all exo state under a per-job directory
export EXO_CONFIG_DIR=/tmp/exo-job-42
exo login
exo sync

Or use the --config-dir flag directly (it sets EXO_CONFIG_DIR for all subprocesses automatically):

exo --config-dir /tmp/exo-job-42 sync

Directory layout under EXO_CONFIG_DIR:

PathContents
<root>/exo/Contexts, SSH config, drive tokens, credentials
<root>/aws/credentialsAWS shared credentials file
<root>/cache/exo-credential-helper/S3 credential cache

Core

VariableDescriptionDefault
EXOHUB_CONTEXTActive context name (alternative to --context flag)(none)
EXOHUB_JOBSParallel jobs for sync, get, export, copy, fsck, and add operations1
EXOHUB_LARGE_TEXT_THRESHOLDOverride the fallback large-text threshold used by exo add’s auto routing (e.g. 1MiB). A --large-text-threshold flag takes precedence over this variable. Never overrides an explicit annex.routing rule.5MiB
EXOHUB_API_URLExoHub API endpoint(none — must be set or provided by your ExoHub deployment)
EXOHUB_GIT_HOSTDefault git host URL used by the built-in default context. Useful when deploying ExoHub against a custom GitLab or GitHub instance.(built-in on internal binary; none on OSS build)
EXOHUB_CATALOG_URLArtifactDB catalog URL for exo atlas and exo download(auto-resolved from context)
EXOHUB_BASE_URLExoHub host root URL (no /api suffix), used for endpoints outside /api such as the /eds index resolved by exo download --eds(derived from EXOHUB_API_URL/built-in API base with any trailing /api stripped)
EXOHUB_PROFILEProfile name to apply when running exo init in a new directory (equivalent to --profile; ignored if the current directory is already a git repository)(none)
EXOHUB_TPL_<NAME>Expose an environment variable to profile templates as .<NAME> (top-level, e.g. EXOHUB_TPL_BUCKET → .BUCKET)(none)
EXO_UPGRADE_URLURL of the upgrade script used by exo upgrade. Must use https://. Overrides the built-in default when set. The internal binary has a built-in default; the open-source build has none (exo upgrade fails if neither built-in nor env var is set).(built-in on internal binary; none on OSS build)
EXOHUB_VERSION_CHECK_URLOverride the version-update-check service URL used by exo version. The internal binary has a built-in default; the open-source build has none (update check is skipped unless set).(built-in on internal binary; none on OSS build)
EXOHUB_DOCS_URLllms.txt index URL for the ExoHub user guide, shown in exo --help, in the MCP server instructions, and used by the MCP docs tool to point agents at usage documentationhttps://genentech.github.io/exohub/llms.txt (OSS); internal binary has its own built-in

Appearance

VariableDescriptionDefault
EXO_THEMEOverride the active color theme (e.g., exohub, mono)(from preferences file, or exohub)
EXO_THEME_MODEOverride dark/light mode (auto, dark, light)auto (auto-detects terminal background)
EXOHUB_DISABLE_TIPSUnconditionally disable daily tips when set to 1, true, or yes. Intended for CI/server environments. Takes precedence over EXOHUB_TIPS and preferences. Any other non-empty value is ignored.(unset)
EXOHUB_TIPSControl daily tips display (false or 0 to disable). Checked only when EXOHUB_DISABLE_TIPS is not active.(from preferences tips_enabled, default enabled)

Authentication

VariableDescriptionDefault
EXO_OIDC_ISSUEROIDC issuer URL used by exo doctor’s network probe and by the generic/open-source build of the CLI for device flow login(none — internal binary uses built-in OIDC defaults)
EXO_OIDC_CLIENT_IDOIDC client ID for the generic/open-source build(none — internal binary uses built-in defaults)
EXO_OIDC_SCOPESSpace-separated OIDC scopes for the generic/open-source buildopenid profile
EXO_OIDC_AUDIENCEOIDC audience for the generic/open-source build(none)
EXO_AWS_ROLE_ARNIAM role ARN for sts:AssumeRoleWithWebIdentity in the generic/open-source build(none — internal binary uses built-in defaults)
EXO_AWS_SESSION_DURATIONSTS session duration in seconds for the generic/open-source build3600
EXO_AWS_REGIONAWS region for the STS call in the generic/open-source buildus-east-1
EXOHUB_AWS_PROFILEAWS credentials profile used by exoexohub
EXO_NO_AWS_PROFILE_INJECTSet to 1 to prevent exo from injecting its own AWS_PROFILE into subcommands (git-annex, s5cmd, etc.). Use this when you want subcommands to use your own pre-set AWS credentials (AWS_PROFILE, AWS_ACCESS_KEY_ID, etc.) instead of exo’s credentials. Note: if any AWS identity variable (AWS_PROFILE, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, or AWS_SESSION_TOKEN) is already set in the environment, exo automatically skips injection even without this flag.(unset)
EXOHUB_GIT_TOKENGeneric git authentication token (used if no provider-specific token is set)(none)
EXOHUB_GITLAB_TOKENGitLab-specific git token(none)
EXOHUB_GITHUB_TOKENGitHub-specific git token(none)
EXOHUB_GITEA_TOKENGitea-specific git token(none)
EXO_TOKEN_FILEPath to the OAuth token file (overrides EXO_CONFIG_DIR-derived path and system default)~/.config/exo/credentials/token.json

S3 Access Grants

VariableDescriptionDefault
EXOHUB_GRANTS_ACCOUNT_IDAWS account ID for S3 Access Grants. Required on open-source builds (no built-in default); the internal binary has a built-in production value. When not set on an OSS build, exo doctor’s S3 Control network probe is skipped.(none — set by internal binary on internal builds)
EXOHUB_GRANTS_REGIONAWS region for S3 Access Grants. Required on open-source builds (no built-in default); the internal binary has a built-in production value.(none — set by internal binary on internal builds)
EXO_CREDENTIAL_HELPER_BINPath to the credential helper binaryexo-credential-helper

Local Standalone Catalog

| Variable | Description | Default | |———-|————-|———|| | VERSITYGW_SECRET_KEY | Root secret key for the managed versitygw S3-compatible object store launched by exo standalone up. Alternative to the --secret-key flag. | (required — no default) |

Debugging

VariableDescriptionDefault
EXOHUB_CLI_DEBUGEnable verbose HTTP logging and command echoing(unset)