forge config
Provider setup — show / switch / add providers, set the default model.
forge cost
Real per-day spend via measured stage factors.
Reports measured stages only — a stage with no events says “no data”, never a
default.
forge dash
Local dashboard over the ledger, metrics, and blast radius.
forge brand
Print the active brand token map.
brand.json); a rebrand is a single edit.
forge atlas
Build / query the code graph.
forge stack
Detect this repo’s real stack from its manifests.
package.json, pyproject.toml, go.mod, Cargo.toml, Gemfile,
composer.json, pom.xml / build.gradle, and *.csproj, and reports languages,
frameworks, package managers, and the repo’s actual test commands — which feed the
substrate’s verification checklist.
forge report v0.19+
Generate a static HTML report of the repo’s Forge state — the ledger, metrics, and blast
radius rendered to a self-contained file you can share or archive.
forge tools v0.19+
Select this repo’s primary AI coding tool and wire the matching .gitignore entries, so
generated config and .forge/ artifacts are ignored correctly for your setup.
forge integrations
Opt-in third-party MCP servers (for example context7), managed non-destructively across
every tool Forge emits config for — Claude Code, Codex, Cursor, Gemini, Continue, and the
rest.
Third-party MCP servers are not installed by default. Nothing lands on disk until you
run forge integrations add <name> --yes.
What add writes
add --yes writes the server into every tool’s native MCP config from one canonical
spec:
.mcp.json(Claude Code).cursor/mcp.json(Cursor).gemini/settings.json(Gemini).codex/config.toml— as a# forge:managed:<name>block, refreshed by byte-compare.continue/mcpServers/<name>.yaml— one forge-marked YAML per managed server- and the rest of the tools Forge emits config for
.forge/forge.config.json under mcp.integrations, so
every subsequent forge sync re-emits the same servers. The stop-hook auto-sync
byte-compares the whole config file, so a hand-edit to that file is detected and
repaired.
--adopt semantics
If a server with the same name already exists in one of the tool config files and Forge
did not put it there, add does not overwrite it. Instead it reports the file with an
--adopt hint. Re-run with --adopt to claim ownership — Forge records the entry under
mcp.adopted in .forge/forge.config.json and will manage it from then on.
Use --adopt when you configured a server by hand earlier and now want Forge to keep it
in sync across every tool.
remove
forge integrations remove <name> reverses an add. It deletes only forge-owned entries,
blocks, and files — a same-name server the user configured (and never --adopted) is
left alone. Running remove twice is a no-op.
.forge/forge.config.json
Per-repo Forge state — the unified config that also holds primaryTool, tools, and
profile — records opt-in integrations under two keys: