Skip to content

CLI reference

One binary, five commands. validate and build accept both single products (schema: product/v1) and assemblies (schema: assembly/v1) — the CLI dispatches on the document’s schema: marker.

Terminal window
forge validate <product.yaml> [--strict] [--debug-ir] [-o out]

The pre-CAD golden gate: catalog load with fail-fast name binding, parameter resolution, capability report, Form IR build, modifiers, and every form-time validator. Never imports cadquery; writes nothing (--debug-ir dumps the IR for inspection). Exits non-zero on critical failure in strict mode.

Terminal window
forge build <product.yaml> [-o out] [--strict]

Everything validate does, then: CAD compile, geometry validators (topology / region / manufacturing), contract + score, honesty report, and STL/STEP export with the print orientation baked in. Output lands in out/<product-id>/ (assemblies: per-part subdirectories plus a top-level assembly_report.yaml and posed assembled.step).

Terminal window
forge edit <product.yaml> --intent make_support_free -o out
forge edit <product.yaml> --patch changes.yaml -o out

Semantic edit — a rebuild from the YAML source, never mesh surgery. Typed patches carry a preserve contract (listed parameters must come out of the rebuild numerically identical; checked, not promised). Intents v1: make_support_free, make_biomorphic, remove_perforation, make_stronger. An intent may even migrate the product between archetypes of one object class when that is what it takes.

Terminal window
forge ui # requires the [web] extra

Launches the local Product Cockpit — a visual debugger of engineering truth: live CAD-free validation with sliders, section view rendered from exact IR segments, region and honesty lenses. An Anthropic key enables the optional natural-language intent translator; without one the cockpit honestly shows LLM: OFF and works deterministically.

Terminal window
forge compat [--yaml]

Prints the interface-compatibility matrix of the loaded catalog — derived from declared interfaces and their published datums; there is no hand-written matrix by design.