FabricFabricHarness
Getting Started

Flue to Fabric Harness

Map Flue concepts and commands to Fabric Harness.

Fabric Harness keeps the simple agent/session/skill/task model familiar from Flue, then adds enterprise controls: durable Temporal workflows, policy, approvals, audit, cost controls, multi-tenancy, and deployment hardening.

Concept mapping

FlueFabric Harness
.flue/.fabricharness/
.flue/agents/*.ts.fabricharness/agents/*.ts
flue devfh dev / fabric-harness dev
flue run <agent>fh run <agent>
flue buildfh build
flue add daytonafh add daytona
init({ model })init({ model })
agent.session()agent.session()
session.prompt()session.prompt()
session.skill()session.skill()
session.task()session.task()
session.fs / harness filesystem helpersession.fs and agent.fs
virtual/no-container sandboxsandbox: 'virtual'
Cloudflare Workers AICloudflareWorkersAIModelProvider with Gateway + model metadata
Cloudflare Shell Workspacesandbox: { backend: 'cloudflare', mode: 'shell-workspace' }
Admin/OpenAPI routes/admin/* aliases and /openapi.json
Remote MCP toolsconnectMcpServer()

Minimal Fabric Harness agent

import { agent, schema } from '@fabric-harness/sdk';

export default agent({
  name: 'hello',
  input: schema.object({ name: schema.string().default('World') }),
  output: schema.string(),
  triggers: { webhook: true },
  async run({ init, input }) {
    const fabric = await init();
    const session = await fabric.session();
    return session.prompt(`Say hello to ${input.name}.`);
  },
});

CLI migration

# Flue
flue dev --target node
flue run hello --target node --id test-1 --payload '{"name":"Alice"}'
flue build --target cloudflare
flue add daytona | claude

# Fabric Harness
fh dev --target node
fh run hello --target node --id test-1 --payload '{"name":"Alice"}'
fh build --target cloudflare
fh add daytona | claude

Fabric Harness also adds fh doctor, fh describe, fh export-audit, SBOM/provenance build flags, fh temporal-worker, authenticated admin/OpenAPI routes, Workers AI Gateway request metadata, and Cloudflare Shell Workspace mode.

Migration order

  1. Move .flue/agents to .fabricharness/agents and convert exports to agent({ ... }).
  2. Keep init(), session.prompt(), session.skill(), and session.task() calls as-is where possible.
  3. Replace flue commands with fh equivalents.
  4. Start on sandbox: 'virtual' or sandbox: 'local'.
  5. Add policies, approvals, audit, and Temporal after the basic agent works.