CLI Overview
One binary that runs, builds, deploys, inspects and replays a workspace, so an agent has the same shape everywhere.
The TechFabric Harness CLI is a single binary that drives the entire framework. Discovering agents, running them locally, building deployment artifacts, starting the dev server, inspecting persisted sessions, and managing approvals, tasks, artifacts, and builds.
Invocation
The CLI is published as fabric-harness with fh as an exact alias.
fabric-harness --help
fh --helpFor local framework development, run the built monorepo CLI directly.
node packages/cli/dist/bin/fabric-harness.js --help
pnpm fh --helpSynopsis
fabric-harness --help
fabric-harness capabilities --json
fabric-harness run <agent> [options]
fabric-harness agents [--json]
fabric-harness describe <agent> [--json]
fabric-harness build [--target node|temporal-worker|docker|foundry-hosted-agent|cloudflare] [options]
fabric-harness dev [--target node|cloudflare|temporal-worker] [--mock] [--console] [options]
fabric-harness fiber [--url <url>] [--plain]
fabric-harness fiber [--url <url>] [--plain] [--job <name> --input <json> | --agent <name> --id <id> --message <text>]
fabric-harness docs <list|read|search>
fabric-harness doctor [--target node|temporal-worker|databricks-app|databricks-serving|buzz] [--model provider/model] [--getting-started] [--tools] [--live] [--json]
fabric-harness init [directory] [--dir <path>] [--model provider/model] [--template <name>] [--store memory|file|sqlite|postgres|redis]
fabric-harness new <job|agent> <name> [--force]
fabric-harness sessions
fabric-harness builds
fabric-harness inspect <session-id>
fabric-harness logs <session-id> [--events]
fabric-harness checkpoints <session-id>
fabric-harness artifacts <session-id> [--json]
fabric-harness artifact get <session-id> <artifact-id-or-name> [--out <path>]
fabric-harness metrics <session-id> [--json]
fabric-harness tasks <session-id> [--json]
fabric-harness task <session-id> <task-id> [--json]
fabric-harness cancel-task <session-id> <task-id> [--actor <id>] [--reason <text>]
fabric-harness compact <session-id> [--keep <n>] [--summary <text>]
fabric-harness replay <session-id>
fabric-harness approvals <session-id> [--pending] [--state]
fabric-harness approve <session-id> <approval-id> [--actor <id>] [--reason <text>]
fabric-harness reject <session-id> <approval-id> [--actor <id>] [--reason <text>]
fabric-harness verify-attestation <build-dir-or-attestation>
fabric-harness verify-provenance <build-dir-or-provenance>
fabric-harness test [path] [options]
fabric-harness temporal-worker [--task-queue <name>] [--address <host:port>] [--env <file>]
fabric-harness add [connector] [--print]Command groups
| Group | Commands | Page |
|---|---|---|
| Run agents | run | run |
| Discover | agents, describe | agents |
| Build | build, builds, verify-attestation, verify-provenance | build, builds |
| Dev server | dev | dev |
| Testing | test | test |
| Diagnostics | doctor | doctor |
| Integration compatibility | capabilities --json | compatibility contract |
| Scaffolding | init, new job, new agent | TechFabric Harness in 5 minutes |
| Interactive use | Fiber (fiber, console) | Fiber terminal console |
| Documentation | docs list, docs read, docs search | docs |
| Sessions | sessions, inspect, logs, replay, metrics, compact | sessions |
| Tasks | tasks, task, cancel-task | tasks |
| Approvals | approvals, approve, reject | approvals |
| Artifacts & checkpoints | artifacts, artifact get, checkpoints | artifacts |
| Temporal | temporal-worker | temporal-worker |
| Recipes | add | add |
fh init keeps generated core dependencies on the release line shipped with the CLI. The current
CLI writes ^6.2.0 ranges for @fabric-harness/sdk and, when the selected template needs the Node
runtime, @fabric-harness/node. Managed fh add recipes use the same core dependency floors and
reject incompatible installed ranges before writing files.
Global options
| Flag | Purpose |
|---|---|
-h, --help | Print help text. |
--env <file> | Load .env-style variables before run/dev/temporal-worker. Repeatable; shell env wins. |
Configuration defaults
.fabricharness/config.ts may set:
run.target,run.model,run.idPrefix,temporal.address,temporal.taskQueue,agent.model.
CLI flags always win over config. See Configuration.