LaufwerkLaufwerk
API reference

Configuration

defineConfig, LaufwerkConfig, project identity and the boundary between project and execution settings.

Import defineConfig and LaufwerkConfig from @laufwerk/sdk.

defineConfig(config)

PropertyTypeRequiredMeaning
projectIdstringYesStable consumer project identity
sandboxesReadonly<Record<string, HarnessV1SandboxProvider>>NoNamed legacy sandbox providers; agent construction explicitly chooses one

projectId must be 1–128 characters, start with a letter or digit, and contain only ASCII letters, digits, ., _ or -. Invalid identity throws a synchronous TypeError. The function returns the config with its sandbox key types preserved; it does not allocate resources or start a server.

laufwerk.config.ts
import { defineConfig } from "@laufwerk/sdk";

export default defineConfig({ projectId: "acme-tools" });

Place this file at laufwerk/laufwerk.config.ts in the consumer. Keep the same project ID when updating. Use execution constructors for local/Docker environment settings and agent settings for models, tools and instructions.

Settings that belong elsewhere

There are no model, workspaces, sessions, benchmark, port, retry or concurrency properties in LaufwerkConfig.

SettingWhere it belongs
Model and reasoningcreateCodex / createClaudeCode
Tools, instructions, permissionsexecution.agent
Container resources / imagecreateDockerExecution
Source directory / copy modeWorkspace.open
Per-workflow input and resultWorkflow.make
Per-step identitySession/Human key, Activity name
HTTP routeslaufwerk/http.ts, using defineHttpRoutes
Operator Studio originHost ~/.laufwerk/config.json; see CLI

The host configuration is distinct from this consumer TypeScript configuration. Do not paste server settings into defineConfig and expect them to take effect.

On this page