Skip to main content
Forge follows a one tree, three front doors design: the plugin manifest, the hardened installer, and the npm bin all reference the same global/ + source/ tree. Pick the channel that fits your tool.

Choose a channel

Plugin (recommended)

For Claude Code and Codex. Guards auto-wire; nothing to merge.

npm global

For any tool. The forge CLI from the public npm registry.

github: install

No registry needed — install straight from the repo.

Contributor / local dev

Clone + npm link, or bash install.sh for the symlink setup.

Requirements

  • Node.js >= 20
  • Zero runtime dependencies — everything is a Node built-in. Optional tiers (FORGE_EMBED embeddings, Playwright for uicheck visual) are opt-in and add no required dependencies.

Plugin marketplace

The recommended path for Claude Code and Codex needs no token and no clone:
The plugin wires the guards through ${CLAUDE_PROJECT_DIR} so the pre-action gate and completion gate fire ambiently.

npm global

For any tool, from public npm:

No-registry github: install

Contributor / local dev

The installer is hardened: idempotent, symlink-based, with backup, and no curl | sh.

Verify

Whichever channel you used, confirm the install:
forge doctor also surfaces a non-nagging “commits behind upstream” notice for git checkouts. Set FORGE_NO_UPDATE_CHECK=1 to silence it. Every path is fail-open — offline or detached HEAD reports “unknown”, never an error.

Keeping Forge current

Now configure a repo

Head to the Quickstart to run forge init and your first substrate check.