Foundry

Install

What it needs

Node, and nothing else. Foundry makes no model calls of its own, so there is no API key to configure and no account to create.

plaintext
^22.22.3 || ^24.15.0 || >=26.0.0

That range is not arbitrary: foundry serve and foundry build render the screens through Angular and Vite, which set the floor. Check yours with node -v.

In a project

This is the one to prefer.

bash
npm i -D @cisstech/foundry@beta
yarn add -D @cisstech/foundry@beta
pnpm add -D @cisstech/foundry@beta

Then run it through your package manager, so you get the version this project pinned:

bash
npx foundry init
yarn foundry init
pnpm foundry init

The version lives in your package.json, so every contributor and your CI run the same checks against the same spec format. A spec that passes on your machine passes on theirs.

Globally

Convenient to try it out, or to scaffold before a project exists.

bash
npm i -g @cisstech/foundry@beta
pnpm add -g @cisstech/foundry@beta

Yarn 2 and later dropped global installs, so on yarn use yarn dlx below, or install the command with npm.

The catch is that a global install is one version for every project on your machine. The moment two projects sit on different versions of the format, the local install is the answer.

Once, without installing

For a pipeline, or to check a spec you were handed.

bash
npx @cisstech/foundry@beta check
yarn dlx @cisstech/foundry@beta check
pnpm dlx @cisstech/foundry@beta check

Verify

bash
foundry            # prints the commands
foundry check      # in a project: "ok: spec is coherent"

foundry check exits non zero when the spec breaks, which is what makes it usable as a gate.

The renderer is optional

foundry serve and foundry build draw the screens with Angular and Vite. Those come as optional dependencies: installed by default, so rendering works out of the box, and skipped on demand.

A pipeline that only verifies the spec has no use for them:

bash
npm i -D @cisstech/foundry@beta --omit=optional
default --omit=optional
init, check yes yes
serve, build yes prints how to add them
size on disk around 220 MB around 8 MB

Being optional is also what keeps the install from fighting your project. If you already work in an Angular repository, your version and the renderer's sit side by side instead of colliding, whichever major you are on.

Either way the light commands stay fast: the renderer is loaded only by a command that renders, so a check runs in well under a tenth of a second.

Next

Head to The loop for the walkthrough, or Working with an agent to wire your coding agent to the format.

Last updated Jul 30, 2026