Skip to main content
ForgeCode ranks #1 on TermBench with 81.8% accuracy.Learn more →

Custom Binary Path

When you install ForgeCode normally, the binary lands in your $PATH as forge. The ZSH plugin assumes that name and calls it directly. That works until it doesn't — when you're testing a local build, running a binary at an absolute path, or keeping multiple versions side by side.

FORGE_BIN lets you tell the ZSH plugin exactly which binary to use instead.

What It Controls​

The ZSH plugin sources its shell integration at startup:

source <($FORGE_BIN extension zsh)

Every time you invoke ForgeCode from the shell, $FORGE_BIN is the command that runs. Change it and you change which binary answers.

The default is forge — whatever which forge resolves to on your system.

When to Change It​

Local build from source. You've compiled ForgeCode locally and want to test your changes without installing the binary system-wide:

export FORGE_BIN=/path/to/forgecode/target/debug/forge

Non-standard install path. The binary is on disk but not in a directory on your $PATH:

export FORGE_BIN=/opt/forgecode/bin/forge

Multiple versions. You have a stable release as forge and want to test a nightly build without replacing it:

export FORGE_BIN=~/bin/forge-nightly

In each case, the ZSH plugin picks up the change and routes every invocation through the specified binary.

Setting It​

~/.zshrc — persistent

This is the right place for FORGE_BIN. It must be set before the ZSH plugin is sourced, so it belongs in your shell profile rather than ~/.env:

# ~/.zshrc
export FORGE_BIN=/path/to/your/forge

# This line sources the ZSH integration using $FORGE_BIN
source <($FORGE_BIN extension zsh)

Reload your shell after editing:

source ~/.zshrc

Current session — temporary

To switch binaries for just the current terminal session:

export FORGE_BIN=~/builds/forge-dev
source <($FORGE_BIN extension zsh)

The change disappears when the session ends. This is useful for one-off testing without touching your permanent configuration.

Verifying the Change​

After setting FORGE_BIN, confirm the right binary is being used:

echo $FORGE_BIN          # shows the path you set
$FORGE_BIN --version # confirms the binary responds and shows its version

If $FORGE_BIN --version fails, the path is wrong or the binary isn't executable. Double-check the path and run chmod +x $FORGE_BIN if needed.

Reverting to the Default​

Unset the variable to go back to the system-installed forge:

unset FORGE_BIN
source <(forge extension zsh)

Or remove the export FORGE_BIN=... line from your ~/.zshrc and reload.

For everything else the ZSH integration can do — agent selection, multiline input, file tagging — see the ZSH Support reference.