Skip to content
Download PDF

Installation ​

Maistik Forge ships as a single Go binary named forge. The same binary runs on macOS, Linux, and Windows.

What Forge is (and is not)

Forge configures the AI coding agents you already have. It is not an agent installer and not a hosted service. Local secrets stay local: API keys are read from your environment only and are never persisted. Forge does send anonymous usage and error telemetry — see Telemetry below.

Telemetry ​

Forge sends anonymous usage and error telemetry to GitLab Observability, on by default. What's sent, every CLI invocation:

  • Command name (e.g. init, implement, review)
  • Forge version, OS, and architecture
  • A random install ID (a UUID generated once on first run and stored in ~/.forge/state.json) — not tied to your name, email, or IP
  • On failure: a best-effort-redacted error message (file paths are stripped)

Never sent: source code, file contents, repository names or contents, prompts, model output, API keys, or anything else from your project. Your AI coding agent's model calls and conversations are never touched by Forge, telemetry or otherwise.

You'll see a one-time notice printed the first time you run any forge command — on init, or on whatever command runs first after upgrading from a version that predates telemetry.

Opt out at any time:

bash
export FORGE_NO_TELEMETRY=1

Requirements ​

Forge itself needs, at runtime:

  • git, curl, Node ≥ 18, and npm — required.
  • Homebrew — optional (macOS).

Some features shell out to external tools: forge memory / forge recall use the Engram binary, and the graphify codebase-memory provider needs its own tooling. Both degrade gracefully when absent, but the feature will not work without them.

Install the binary ​

An active license is required

Maistik Forge Kit is proprietary software. Binaries are distributed to licensed customers through a private release repository. Buy a license on the pricing page, giving the GitHub username of every developer who needs access, and those accounts are added after purchase.

A Scoop bucket and curl | sh one-liners are not yet published.

Homebrew (macOS and Linux) ​

Forge also publishes a private Homebrew tap, as an alternative to downloading an archive by hand below. Like everything else in this section, it requires an active license: set HOMEBREW_GITHUB_API_TOKEN to a token from a GitHub account with collaborator access to the release repository — the Homebrew equivalent of the GITHUB_TOKEN/GH_TOKEN that scripts/install.sh reads (get access at maistik.studio).

sh
export HOMEBREW_GITHUB_API_TOKEN=<your-token>
brew tap maistik-studio/forge https://github.com/Maistik-Studio/forge-kit
brew install forge

brew upgrade forge picks up new releases the same way.

brew install forge without the tap installs the wrong package

forge is also the name of an unrelated formula in homebrew-core (arrayfire/forge, a C++ visualization library with no CLI). If you skip brew tap maistik-studio/forge ... first — or the tap silently fails because HOMEBREW_GITHUB_API_TOKEN isn't set, since the release repository is private — brew install forge falls back to that unrelated homebrew-core formula. It installs without error, but leaves you with no forge executable at all.

Run the tap command and check its output before installing. To remove any doubt, install fully qualified instead:

sh
brew install maistik-studio/forge/forge

If you already hit this, brew uninstall forge removes the wrong package, then re-run the two commands above in order.

Download a release ​

Once your account has access, open the release repository, pick the latest release, and download the archive for your platform:

github.com/Maistik-Studio/forge-kit/releases

Archives are named by platform and architecture, and every release ships a checksums.txt alongside them.

sh
# macOS (Apple silicon), adjust the archive name to the release you downloaded
tar -xzf forge_Darwin_arm64.tar.gz
sudo mv forge /usr/local/bin/forge
sh
# Linux (x86_64)
tar -xzf forge_Linux_x86_64.tar.gz
sudo mv forge /usr/local/bin/forge

On Windows, extract the .zip and put forge.exe on a directory in your PATH.

Pro tip: stop needing sudo for every install

/usr/local/bin is owned by root on a stock macOS/Linux install, which is why mv/upgrade need sudo above. Take ownership once and every future install, upgrade, or Homebrew-style operation into that directory stops asking:

sh
sudo chown -R $(whoami):admin /usr/local/bin

(On Linux, swap admin for your primary group, typically $(whoami) or staff.) Do this only on a single-user machine you control — on a shared or managed system, keep /usr/local/bin root-owned and use sudo per command instead.

Verify the download ​

Every release publishes checksums.txt. Check your archive against it before running anything:

sh
shasum -a 256 -c checksums.txt --ignore-missing
Why bother checking a checksum?

A checksum is a short fingerprint calculated from a file's exact contents — change even one byte, and the fingerprint changes completely. Comparing the checksum you calculate locally against the one Forge publishes confirms the file you downloaded is exactly the one that was released: not corrupted in transit, and not tampered with along the way. It takes one command and costs nothing to skip — until the one time it matters.

Keeping up to date ​

Once the binary is on your PATH, Forge updates itself from the same release channel:

sh
forge update      # report what is available
forge upgrade     # replace managed tool binaries in place

forge update and forge upgrade in action

Verify the install ​

sh
forge version     # is it on your PATH?
forge doctor      # read-only ecosystem health check

forge doctor inspects your environment and reports problems without changing anything. To also smoke-test the binary end to end:

sh
forge doctor --selftest

Configure your agents ​

Installing the binary does not touch your agents yet. To detect and configure the agents you already have:

sh
forge init        # scaffold .forge/ and pick agents (wizard, or --yes)
forge install     # write the Forge command set into your agents

forge install detects installed agents automatically. It backs up any existing agent configuration first, then writes the Forge command set. The operation is idempotent: running it again converges to the same state.

Common flags:

sh
forge install --scope workspace          # configure for this project only
forge install --agents claude,cursor     # limit to specific agents
forge install --dry-run                  # preview changes, write nothing
FlagMeaning
--scope global|workspaceWhere to write agent config. Default is global.
--agents <list>Restrict to a comma-separated set of agents.
--dry-runShow what would change without writing anything.

See Agents for the supported agents.

forge init and forge install onboarding wizard

Keeping Forge up to date ​

sh
forge update       # check for available updates
forge upgrade      # apply updates to managed tools (binary-only)

Note that forge upgrade updates managed tools; it does not run the install/sync pipelines. Forge also checks for updates automatically on most commands; run forge update explicitly to control when a new release is fetched.

Pro tip: forge upgrade failing with "permission denied"?

If the binary lives in a root-owned directory (/usr/local/bin on a stock install), forge upgrade can't write the replacement binary there. Either run the upgrade elevated:

sh
sudo forge upgrade

or fix ownership once so you never need sudo for this again — see the pro tip under Install the binary above.

Snapshots and cleanup ​

Every mutation Forge makes is snapshotted automatically, so changes are reversible. There is no separate backup command — backups are taken before any mutating operation.

sh
forge restore --list      # list snapshots
forge restore latest      # roll back to the most recent
forge uninstall --all     # remove Forge-managed config

Next steps ​