TechFabricTechFabricHarness
CLI

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 --help

For local framework development, run the built monorepo CLI directly.

node packages/cli/dist/bin/fabric-harness.js --help
pnpm fh --help

Synopsis

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

GroupCommandsPage
Run agentsrunrun
Discoveragents, describeagents
Buildbuild, builds, verify-attestation, verify-provenancebuild, builds
Dev serverdevdev
Testingtesttest
Diagnosticsdoctordoctor
Integration compatibilitycapabilities --jsoncompatibility contract
Scaffoldinginit, new job, new agentTechFabric Harness in 5 minutes
Interactive useFiber (fiber, console)Fiber terminal console
Documentationdocs list, docs read, docs searchdocs
Sessionssessions, inspect, logs, replay, metrics, compactsessions
Taskstasks, task, cancel-tasktasks
Approvalsapprovals, approve, rejectapprovals
Artifacts & checkpointsartifacts, artifact get, checkpointsartifacts
Temporaltemporal-workertemporal-worker
Recipesaddadd

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

FlagPurpose
-h, --helpPrint 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.