New to FORGE? Start a free 30-day trial

Update Check Configuration

Updated on Oct 5, 2026

Forge checks GitHub for newer releases and prints a notice when one is available. This page explains when the check runs, how to turn it off, and what data it uses.

How it works

  • The check runs in a background thread and does not delay your command.
  • Forge caches the result locally and shows the notice from the cache.
  • Network and API errors are not shown. They are logged at debug level.
  • The notice is written to stderr, so it does not affect piped or redirected output.

When a newer version exists, the notice looks like this:

text
A newer version of frg is available: <latest> (current: <current>)
Run: curl -fsSL <install-script-url> | sh

If you installed Forge with a package manager, upgrade through that package manager instead. See Installation.

When the check is skipped

Forge skips the update check when any of these are true:

  • FORGE_NO_UPDATE_CHECK is set.
  • The check is disabled with [update_check] enabled = false.
  • Forge runs in a CI environment (for example, CI is set).
  • The session is non-interactive, or you pass -q/--quiet.

Disable the check

With an environment variable

Set FORGE_NO_UPDATE_CHECK for one command:

bash
FORGE_NO_UPDATE_CHECK=1 frg issue plan

To disable it for every session, add the variable to your shell profile:

bash
echo 'export FORGE_NO_UPDATE_CHECK=1' >> ~/.bashrc

FORGE_NO_UPDATE_CHECK takes precedence over configuration.

With configuration

Use the [update_check] table:

toml
[update_check]
enabled = false # Set to true to show update notices
interval_hours = 24 # Minimum hours between checks
KeyDescription
enabledShow update notices. Set to false to disable the check.
interval_hoursMinimum number of hours between network checks.

Privacy and data

ItemDetails
Endpointhttps://api.github.com/repos/telerik/forge/releases/latest
SentA standard HTTPS request identifying the Forge version. No project or personal data.
ReceivedLatest release version and metadata
Stored locallyupdate_check.json in the Forge user configuration directory (~/.config/forge/), with the last check time (last_check) and latest version (latest_version)

You can delete update_check.json to force a fresh check.

Automatic updates and pre-releases

Forge provides the frg update command and two [update_check] keys. Each key has three states: omitted, false, or true. A layer that omits a key inherits the value from the layer below it (system, then user, then repository).

auto_update — automatic installation

StateBehavior
Omitted (default)Forge shows the notice. You run frg update.
auto_update = falseSame as omitted, but overrides an opt-in from a lower-priority layer.
auto_update = trueForge installs the update after your command finishes. The new version runs on your next command.

Automatic updates use the same verified path as frg update: detect the install method, download, verify the SHA-256 checksum, smoke test, and swap the binary atomically. Failures never change your command's exit status.

Auto-update is skipped when FORGE_NO_UPDATE_CHECK is set, the update check is disabled, you are in CI, stdout is not a terminal, a package manager installed Forge, the install directory is not writable, or an attempt was made in the last 4 hours.

FORGE_AUTO_UPDATE (1/true/yes/on or 0/false/no/off) overrides auto_update in every layer. FORGE_NO_UPDATE_CHECK still wins: FORGE_AUTO_UPDATE=0 suppresses installation but keeps the notice, and FORGE_NO_UPDATE_CHECK=1 suppresses both.

include_prerelease — installing pre-release versions

StateBehavior
Omitted (default)frg update installs the newest stable release.
include_prerelease = falseSame as omitted, but overrides an opt-in from a lower-priority layer.
include_prerelease = truefrg update installs the newest published release, including pre-releases.

This setting affects only frg update without --version. If no stable release exists, Forge falls back to the newest pre-release.

toml
[update_check]
auto_update = true
include_prerelease = true

See Update Command.

Troubleshooting

No update notice appears

Cause: The check is disabled or skipped, or no newer version exists.

Solution:

  1. Check that FORGE_NO_UPDATE_CHECK is not set:
bash
echo "$FORGE_NO_UPDATE_CHECK"
  1. Check that CI is not set, and run Forge in an interactive terminal without --quiet.
  2. Check that [update_check] enabled is not false.
  3. Delete ~/.config/forge/update_check.json to force a fresh check.

The check cannot reach GitHub

Cause: A firewall, proxy, or DNS issue blocks api.github.com. Forge does not display these errors.

Solution:

  1. Test connectivity:
bash
curl -I https://api.github.com/repos/telerik/forge/releases/latest
  1. Allow outbound HTTPS to api.github.com, or disable the check with FORGE_NO_UPDATE_CHECK=1.

See Also