Reference

Environment variables

Every environment variable SI Fabrik reads, sets for agents and hooks, or keeps to itself.

Credentials SI Fabrik reads#

Set these in Settings → Credentials or Settings → Environment on the Mac, in secrets.env on a server, or in a project's environment to override them for one project.

NamePurposeReaches
ANTHROPIC_API_KEYAnthropic API key for Claude CodeThe agent process only
CLAUDE_CODE_OAUTH_TOKENToken from claude setup-tokenThe agent process only
OPENAI_API_KEYOpenAI key for CodexThe agent process only
HARNESS_GATEWAY_API_KEYModel gateway keyThe agent process only
LITELLM_API_KEYGateway key (alternative name; Codex reads it from its provider config)The agent process only
CLICKUP_API_TOKENClickUp tracker (default for provider.api_token)SI Fabrik's host-side tools only
GITHUB_TOKENGitHub tracker (default for provider.token)SI Fabrik's host-side tools only
HARNESS_GITHUB_TOKENPush, PRs and cloning on GitHubSI Fabrik's own git, through a credential helper
HARNESS_GITLAB_TOKENPush, MRs and cloning on GitLabSI Fabrik's own git, through a credential helper
HARNESS_CLOUDFLARE_TOKENThe bridge Worker's HARNESS_BRIDGE_TOKENSI Fabrik only
GH_HOSTGitHub Enterprise host for gh pr createSI Fabrik's own gh

Variables set for hooks#

NameValue
SYMPHONY_WORKSPACEThe workspace path (/workspace in a sandbox)
SYMPHONY_WORKSPACE_KEYThe workspace key
SYMPHONY_WORKFLOW_DIRThe folder of WORKFLOW.md (host hooks only)
SYMPHONY_HOOKafter_create, before_run, after_run or before_remove
SYMPHONY_ISSUE_IDThe task id
SYMPHONY_ISSUE_IDENTIFIERThe task identifier
SYMPHONY_ISSUE_TITLEThe task title
SYMPHONY_ISSUE_STATEThe task state
SYMPHONY_ISSUE_BRANCHThe task branch, symphony/<key>

Variables set for agents#

Depending on the project, agents get:

NameWhen
ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY, ANTHROPIC_DEFAULT_OPUS_MODEL, ANTHROPIC_DEFAULT_SONNET_MODEL, ANTHROPIC_DEFAULT_HAIKU_MODEL, CLAUDE_CODE_SUBAGENT_MODEL, ANTHROPIC_CUSTOM_HEADERS, CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASWith a model gateway (Claude Code)
ANTHROPIC_BASE_URL (the relay) and a placeholder in ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN or CLAUDE_CODE_OAUTH_TOKENClaude Code in Docker or Cloudflare: the relay adds the real credential
HTTP_PROXY, HTTPS_PROXY, NO_PROXY, NODE_USE_ENV_PROXYIn Docker (allowlist and open mode)
NODE_EXTRA_CA_CERTS, SSL_CERT_FILE, CURL_CA_BUNDLE, GIT_SSL_CAINFO, REQUESTS_CA_BUNDLE, PIP_CERT, CARGO_HTTP_CAINFOIn Docker: the egress proxy's CA, for the read-only hosts
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1, HOME=/home/nodeIn Docker
NPM_CONFIG_USERCONFIGWith a registry package link that has a token
Each service link's env nameWith service links (the service's address)
Each docker.env nameAlways, by name, except model credentials
HARNESS_MODEL_KEYCodex in Docker or Cloudflare: a placeholder the relay swaps for the real key
IS_SANDBOX=1, CLAUDE_CODE_DISABLE_AUTOUPDATER=1Set in the agent image

Variables for SI Fabrik itself#

NameEffect
HARNESSD_CONFIGharnessd's configuration file when --config isn't given
HARNESS_SANDBOX_SUBNETThe Docker sandbox subnet, instead of the one chosen per data folder
HARNESS_PREVIEW_PORT_BASEFixed loopback ports for Docker previews, starting here (default: free ports Docker picks)

Variables for the test suite#

Some tests need real infrastructure and only run when you opt in:

NameRuns
HARNESS_DOCKER_TESTS=1Sandbox network policy, live browser and linked services (Docker and the images)
HARNESS_CF_BRIDGE_URL, HARNESS_CF_BRIDGE_TOKENThe same against a deployed Cloudflare bridge
HARNESS_LINKS_PLAYGROUND=<path>Checks a multi-project links playground's workflows link up

Previews use free loopback ports, so the tests, the app and a harnessd can share one Docker.

See also#