Skip to content
Canopy is in pre-release. These docs describe the product at its public launch — commands, tool names, and integration examples reflect what you'll see once binaries ship. Join the waitlist →

v2.0.0 — Canopy

Development milestone: 2026-04-18

This is a major version milestone with a single purpose: the product formerly known as Forge is now Canopy. Every public interface has been renamed to match — binary, MCP tools, environment variables, config paths, and infrastructure. No functional behavior has changed. This is the version that will ship at public launch.


Forge was the internal working name through v1.6.0. In v2.0.0 it was renamed to Canopy to fit the Ironpine Labs brand family (Pith / Grove / Canopy — botanical, hierarchical) and to clear the heavily saturated “forge” namespace: Laravel Forge, Atlassian Forge, Autodesk Forge, and Minecraft Forge all occupy that word. “Canopy” is distinctive, memorable, and accurately describes what the tool does — it provides an overview of your codebase from above.

Because every public interface changed, this is a major version bump under semver. The bump does not reflect any behavior change; it reflects the rename being a breaking change to public naming conventions.


The table below maps every renamed identifier from its former Forge name to the current Canopy name.

CategoryOld (Forge)New (Canopy)
Binaryforgecanopy
MCP tool prefixforge_* (21 tools)canopy_* (21 tools)
Config directory (global)~/.forge/~/.canopy/
Config directory (per-repo)<repo>/.forge/<repo>/.canopy/
Log directory~/.local/share/forge-mcp/~/.local/share/canopy-mcp/
Environment variablesFORGE_REPO, FORGE_EPHEMERAL, FORGE_PUBLIC_KEY_HEX, FORGE_HEARTBEAT_URL, FORGE_ACTIVATION_URL, FORGE_LICENSE_KEY, FORGE_AIR_GAPPED_*CANOPY_* equivalents
systemd serviceforge-mcpcanopy-mcp
Keygen binaryforge-keygencanopy-keygen
GitHub repositorygithub.com/ironpine-labs/forgegithub.com/ironpine-labs/canopy
Domainforge.ironpinelabs.comcanopy.ironpinelabs.com
Heartbeat subdomainheartbeat.forge.ironpinelabs.comheartbeat.canopy.ironpinelabs.com
Admin portal subdomainadmin.forge.ironpinelabs.comadmin.canopy.ironpinelabs.com
Downloads subdomaindownloads.forge.ironpinelabs.com$CANOPY_DOWNLOAD_URL
Workersforge-license-webhook, forge-admin-portalcanopy-license-webhook, canopy-admin-portal
R2 bucketsforge-releases, forge-backupscanopy-releases, canopy-backups
Core typesForgeConfig, ForgeError, ForgeStatsCanopyConfig, CanopyError, CanopyStats
MCP output headersFORGE PREPARE, FORGE VALIDATE, FORGE UNDERSTANDCANOPY PREPARE, CANOPY VALIDATE, CANOPY UNDERSTAND
Workspace crates (12)forge-{core,ast,indexer,graph,...}canopy-{core,ast,indexer,graph,...}

The full set of renamed MCP tools (function signature and behavior unchanged):

canopy_parse_file, canopy_extract_symbol, canopy_search, canopy_search_symbols, canopy_pattern_search, canopy_trace_imports, canopy_trace_dependents, canopy_check_wiring, canopy_find_cycles, canopy_dependency_graph, canopy_health_check, canopy_architecture_map, canopy_coverage, canopy_git_history, canopy_git_blame, canopy_index_status, canopy_reindex, canopy_ingest_scip, canopy_prepare, canopy_validate, canopy_understand.


These things are unchanged in v2.0.0:

  • MCP tool behavior. Every tool behaves identically. Only the name prefix changed.
  • CLI behavior. All 11 CLI commands work the same way. Only the binary name changed.
  • SQLite schema. The database schema is unchanged.
  • Plugin YAML schema. All existing .canopy/plugins/*.yaml plugin files continue to work.
  • API stability guarantee. The v1.0.0 API freeze is still in effect. Tool signatures, CLI flags, and plugin schema remain frozen; breaking changes require a future major bump.
  • Apache-2.0 license. No change to the open-source license.
  • Pricing and tiers. Community, Solo, Pro, Team, and Air-Gapped tiers are unchanged.

Automatic migration (most users — do nothing)

Section titled “Automatic migration (most users — do nothing)”

When you run any canopy subcommand for the first time after installing, the migration module runs automatically:

  1. ~/.forge/ is copied to ~/.canopy/ (your license key, config, and stats move over).
  2. Any per-repo .forge/ directories are copied to .canopy/ when Canopy operates on them.
  3. The originals (~/.forge/, .forge/) are left in place so a rollback to v1.6.x recovers cleanly.

Both operations run at most once per destination — re-running canopy after migration does not re-copy.

  1. Install the binary. Download the new canopy binary from $CANOPY_DOWNLOAD_URL/releases/latest/ and add it to your $PATH.
  2. Update shell aliases. If you aliased forge to the binary path, update the alias.
  3. Update scripts. Replace forge invocations with canopy. Update FORGE_* env var names to CANOPY_*.
  4. Update .mcp.json. Rename the server key from "forge" (or similar) to "canopy" and update the command field to canopy.

If you invoke the binary via an old alias pointing at the Canopy v2.0.0 binary by name forge, the binary detects this and emits a deprecation notice before continuing normally:

[canopy] invoked as 'forge' — this alias will stop working in a future release. Update to 'canopy'.

This shim will be removed in the next minor release after 2026-07-20.

If you run Canopy as a systemd service, swap the unit:

Terminal window
bash scripts/swap-systemd-service.sh

This script handles stopping the old forge-mcp service, enabling canopy-mcp, and verifying the transition.


Backward Compatibility (scheduled for removal)

Section titled “Backward Compatibility (scheduled for removal)”

These compatibility shims are active in v2.0.0 and will be removed in a follow-up release after 2026-07-20:

  • FORGE_REPO and FORGE_EPHEMERAL env vars are still read as fallbacks when the new CANOPY_* names are unset. A one-shot deprecation warning is emitted.
  • The forge-ignore: secret_scan suppression marker is still accepted alongside canopy-ignore:.
  • ~/.forge/ and .forge/ source directories are left untouched after migration so a v1.6.x rollback works.
  • forge.db SQLite filename inside the data directory is retained for this release.
  • 301 redirects from heartbeat.forge.* and admin.forge.* to the new *.canopy.* subdomains are active for 90 days (until 2026-07-20).

This rename was a lot of tedious, careful work. The new name is cleaner. We’re keeping it.

Forge entries dated before 2026-04-18 in the changelog are preserved exactly as written — that wording is the accurate historical record of what was built under that name internally.