CLI
fh build
Compile the workspace and emit a deployment manifest.
fabric-harness build [--target <target>] [options]Compiles .fabricharness/agents/ and emits a deployment artifact under .fabricharness/build/<target>/, plus a manifest.json that downstream tools can consume.
Targets
| Target | Output |
|---|---|
node (default) | dist/server.mjs Node HTTP server with /health, /manifest, and POST /agents/:agent/:id. |
temporal-worker | A worker entrypoint that registers Fabric workflows + activities against a Temporal task queue. |
docker | Dockerfile + Node bundle ready for docker build. |
cloudflare | Worker entrypoint, Durable Object session store, Sandbox container binding, wrangler.jsonc. |
foundry-hosted-agent | Dockerfile, azure.yaml, infra/main.bicep, foundry-agent.yaml, server bundle. |
Options
| Flag | Description |
|---|---|
--out <dir> | Override the output directory (default .fabricharness/build/<target>). |
--no-clean | Skip cleaning the output directory before emit. |
--sbom | Emit a CycloneDX SBOM via Syft when available. |
--sbom-required | Fail if Syft is missing. |
--provenance | Emit provenance.json for the build artifact. |
--attestation | Emit attestation.intoto.jsonl with a manifest digest subject. |
--sign-provenance | Sign provenance.json via cosign sign-blob. Implies --provenance. |
--signing-key <path|env://VAR> | cosign key path or env reference (default env://COSIGN_PRIVATE_KEY). |
--docker-build | Run docker build after emitting --target docker. |
--docker-push | Run docker push after --docker-build. |
--docker-tag <tag> | Tag for the built/pushed image. |
--image-sbom | Emit an image SBOM via Syft. |
--image-sbom-required | Fail if image SBOM cannot be produced. |
Examples
Node server artifact
fh build --target node
node .fabricharness/build/node/dist/server.mjsDocker image with SBOM
fh build --target docker --docker-build --docker-tag myorg/agents:latest --sbom --image-sbomCloudflare scaffold
fh build --target cloudflare
cd .fabricharness/build/cloudflare
npm install @cloudflare/sandbox @fabric-harness/cloudflare @fabric-harness/sdk
npx wrangler devFoundry Hosted Agent scaffold
fh build --target foundry-hosted-agent
cd .fabricharness/build/foundry-hosted-agent
azd upSigned provenance + attestation
export COSIGN_PRIVATE_KEY=$(cat cosign.key)
fh build --target node --provenance --sign-provenance --attestationWhat's in manifest.json
- The Fabric Harness version and target,
- a list of agents with their schemas, models, and triggers,
- declared sandbox backend(s),
- session-store backend, if configured,
- digest of the artifact,
- optional provenance/attestation metadata.
The CLI exposes manifests in two ways: fh builds lists every emitted manifest, and the deployed Node/Cloudflare server exposes GET /manifest.
See also: Build manifest, fh builds, fh verify-attestation.