Skip to main content
A small set of environment variables controls where the facet CLI writes state, how it authenticates, and which binary the launcher runs. FACET_DIR, FACET_TOKEN, and FACET_REGISTRY_URL are user-facing; the rest are for CLI development and specialized installs.

FACET_DIR

The single base directory for everything the facet CLI manages on disk: the content-addressed cache, installed adapters, install advisory locks, and (for curl installs) the binary itself. Default: ~/.facet/. Setting FACET_DIR is the override — there are no separate per-subsystem env vars.
Each adapter directory is a managed installation: the installation.json receipt records the active generation, the verified adapter API, and the source provenance used to install it (specifier, resolved npm package/version, integrity). Replacements stage a new generation and switch the receipt atomically — see facet adapter install. Whitespace-only values (FACET_DIR=, FACET_DIR=" ") are treated as unset so a misconfigured shell rc doesn’t accidentally point everything at a relative path. Surrounding whitespace is trimmed.

FACET_TOKEN

A registry credential (a fct_pub_… personal access token) supplied via the environment. When set to a non-empty value it takes precedence over the credentials file written by facet login; whitespace-only values are treated as unset. Preferred for CI and scripts — see facet logout for the shell hygiene caveat.

FACET_REGISTRY_URL

Overrides the facet registry base URL (default https://api.agentfacets.io). The value is an origin only — no path suffix — and trailing slashes are stripped. Empty values are treated as unset. Not to be confused with FACET_CLI_REGISTRY below, which is the npm registry the installer fetches CLI tarballs from.

FACET_BIN_OVERRIDE

A direct override of the binary the launcher executes. When set, the launcher skips its normal resolution (cached hard-link, platform package lookup, etc.) and runs the binary at the override path.
Setting FACET_BIN_OVERRIDE also disables facet self-update: when you’ve overridden which binary runs, self-update has no business writing over whatever you pointed it at. Unset the variable to re-enable self-update for a real install. This variable is primarily for CLI development. End users should not set it; if you want to control where the curl installer puts the binary, set FACET_DIR instead.

FACET_CLI_REGISTRY

Overrides the npm registry base URL the curl installer and self-update use to fetch CLI tarballs. Defaults to https://registry.npmjs.org.

FACET_VERSION

Read by the curl installer (install.sh) as an alternative to --version. If both are set, the flag wins.