Environment Variables
Forge reads the following environment variables. Use them in CI/CD pipelines, containers, or to override configuration for a single session.
Variables that accept a boolean treat true, 1, yes, and on (case-insensitive) as enabled, unless noted otherwise.
Beta and risk consent
| Variable | Description | Default |
|---|---|---|
FORGE_ACCEPT_BETA_RISK | Accepts the beta software terms without the interactive consent prompt. Required to run Forge in non-interactive CI. | Not set (prompt) |
FORGE_ACCEPT_AUTO_RISK | Bypasses the AI-generated content warning of frg app discover --auto in non-interactive environments. | Not set (prompt) |
Setting these variables means your team accepts the terms and that autonomous actions proceed without confirmation. Run CI jobs in an isolated environment and review their output.
# GitHub Actions
jobs:
build:
runs-on: ubuntu-latest
env:
FORGE_ACCEPT_BETA_RISK: true
steps:
- uses: actions/checkout@v7
- run: frg issue draft
License
| Variable | Description | Default |
|---|---|---|
TELERIK_LICENSE | Contents of your Telerik license file (not a path). | Not set |
KENDO_UI_LICENSE | Contents of a Kendo UI license file (not a path). | Not set |
TELERIK_LICENSE_PATH | Full path to a license file. | Not set |
Forge checks these variables before the license file locations. See Licensing.
Context
| Variable | Description | Default |
|---|---|---|
FORGE_ISSUE_ID | Current issue ID for workflow commands. Alternative to frg config set-issue. | Not set |
FORGE_PR_ID | Current pull request ID. Alternative to frg config set-pr. | Not set |
FORGE_TICKET_ID | Current ticket ID. Alternative to frg config set-ticket. | Not set |
FORGE_USER_NAME | User name for telemetry and attribution. Takes precedence over .forge/context.toml and git config. | Not set |
FORGE_USER_EMAIL | User email for telemetry and attribution. Takes precedence over .forge/context.toml and git config. | Not set |
FORGE_DISABLE_EXTERNAL_CONFIGS | Ignores user-level and system-level configuration sources and uses repository configuration only. | Not set |
See Session Context, OpenSearch Integration, and Hierarchical Configuration.
Tokens
Built-in toolchain integrations tell the agent to read these tokens when it uses a REST API. Set them before you run Forge. Forge does not write them to logs, traces, or prompts.
| Variable | Used for |
|---|---|
FORGE_ISSUE_TOKEN | Issue trackers: GitHub Issues, Jira, Azure DevOps (personal access token) |
FORGE_TICKET_TOKEN | Ticket trackers such as Jira, Azure DevOps, and Shortcut |
FORGE_CODE_TOKEN | Code platforms: GitHub, GitHub Enterprise Server, Bitbucket |
FORGE_SECURITY_TOKEN | Security scanners: Black Duck Polaris, GitHub Advanced Security (falls back to GITHUB_TOKEN) |
Telemetry
| Variable | Description | Default |
|---|---|---|
FORGE_TELEMETRY_DISABLED | Disables usage telemetry to Progress Analytics. Takes precedence over [usage] enabled in telemetry.toml. | Not set (telemetry on) |
FORGE_TELEMETRY_PATH | Path to the telemetry.toml file to use. | Not set |
Without FORGE_TELEMETRY_PATH, Forge looks for telemetry.toml in .forge/config/, ~/.config/forge/ (or $XDG_CONFIG_HOME/forge/), and /etc/forge/. The file configures usage telemetry, OpenSearch, and OTLP export.
export FORGE_TELEMETRY_DISABLED=1
See Security Guide and Progress Observability Integration.
OpenSearch
| Variable | Description |
|---|---|
FORGE_OPENSEARCH_BATCH_SIZE | Deprecated and ignored. OpenSearch uploads are synchronous. |
FORGE_OPENSEARCH_FLUSH_INTERVAL_SECS | Deprecated and ignored. OpenSearch uploads are synchronous. |
Forge has no environment variables for the OpenSearch URI or token. Configure [opensearch] in telemetry.toml. See OpenSearch Integration.
| Variable | Description | Default |
| FORGE_RETRY_DISABLED | Disables retries for transient agent failures. | Not set (retries on) |
| FORGE_RETRY_MAX_ATTEMPTS | Maximum retry attempts. 0 disables retries. | 2 (3 attempts in total) |
| FORGE_RETRY_INITIAL_DELAY | Initial retry delay in seconds. | 1 |
| FORGE_RETRY_MAX_DELAY | Maximum retry delay in seconds. | 30 |
| FORGE_RETRY_BACKOFF_FACTOR | Multiplier applied to the delay after each retry. | 2.0 |
FORGE_RETRY_MAX_ATTEMPTS=4 \
FORGE_RETRY_INITIAL_DELAY=2 \
FORGE_RETRY_MAX_DELAY=20 \
FORGE_RETRY_BACKOFF_FACTOR=1.5 \
frg issue plan
Agent
| Variable | Description | Default |
|---|---|---|
FORGE_AGENT_AUTH_TIMEOUT_SECS | Timeout in seconds for the agent authentication check. When the check times out, Forge assumes the agent is authenticated. | Not documented |
FORGE_STDERR_LIMIT | Limits how much agent stderr output Forge includes. | Not documented |
FORGE_STDERR_MAX_LINES | Maximum number of agent stderr lines Forge shows. | Not documented |
Update check
| Variable | Description | Default |
|---|---|---|
FORGE_NO_UPDATE_CHECK | Disables the check for new Forge releases. Takes precedence over [update_check] configuration. | Not set |
Forge also skips the update check in CI and non-interactive sessions. See Update Check Configuration.
Output and testing
| Variable | Description | Default |
|---|---|---|
NO_COLOR | Disables colored output, for example NO_COLOR=1 frg config show. | Not set |
RUST_LOG | Log level for diagnostic output, for example RUST_LOG=debug. | Not set |
FORGE_FORCE_INTERACTIVE | Test only. Forces interactive mode when stdin or stdout is not a TTY. Never set it in production. | Not set |
Forge detects CI through standard variables such as CI, GITHUB_ACTIONS, GITLAB_CI, JENKINS_URL, AZURE_PIPELINES, and CONTINUOUS_INTEGRATION.
Internal variables
Forge also reads FORGE_OTEL_DISABLE_IN_TESTS, FORGE_APPINSIGHTS_DISABLE_IN_TESTS, and FORGE_APPINSIGHTS_CONNECTION_STRING. They are for Forge's own testing and are not supported for general use.