FabricFabricHarness
Deployment

Daytona

Reproducible dev environments as agent sandboxes.

Use a Daytona workspace as a remote SandboxEnv while the Fabric Harness runtime runs in your Node deployment.

Install

npm install @fabric-harness/connectors @daytona/sdk

Connect a sandbox

import { Daytona } from '@daytona/sdk';
import { daytonaSandbox } from '@fabric-harness/connectors';
import { init } from '@fabric-harness/sdk';

const daytona = new Daytona({ apiKey: process.env.DAYTONA_API_KEY });
const remote = await daytona.create({ image: 'ubuntu:latest' });
const fabric = await init({
  sandbox: daytonaSandbox(remote, { cleanup: true }),
});

const session = await fabric.session();
const result = await session.prompt('Inspect the repository and run its test suite.');

Use daytonaSandboxFactory() when each session should create and own a separate workspace.

The adapter supports @daytona/sdk >=0.195.0 <1. It converts Fabric's millisecond timeout to Daytona's seconds-based process timeout and exposes remote.id as a portable workspace reference.

registerStandardSandboxRefDecoders({
  daytona: { connect: ({ workspaceId }) => daytona.get(workspaceId) },
});

Use assertSandboxCertification() to verify binary files, cwd/env, output callbacks, timeout, abort, reconnect, and deletion with the target account.

Environment variables

  • DAYTONA_API_KEY — Daytona API key (read lazily at runtime)

See also