The open-source harness for knowledge work

Create your own autonomous agents and agentic product features.

Delta is a lean TypeScript-on-Bun harness that is cheap to run, self-hostable, model-agnostic, and easy to configure.

curl -fsSL https://deltaharness.dev/install.sh | sh

Prebuilt binary for macOS and Linux - no runtime required.

< 10mscold start
< 2k tokenssystem spine
¢ / agentscale-to-zero on Fly
6–9× cheaperthan a hosted runtime

Learn why we built it

The lean harness we wanted to build on.

We wanted a harness lean and cheap enough to run one agent per user, yet fully featured and genuinely smart - built for the specialized knowledge work no coding harness is made for.

  • Open-source and self-hosted, so we own the whole stack
  • Model-agnostic, so we're never locked to one provider
  • Token-efficient by design, cheap to run always-on
  • Fully customizable, with no framework to fight
Coding harnessesBuilt around the repo
  • Assume the work is code in a repository
  • Heavy runtime, large sprawling prompts
  • Token-hungry - costly to run many, always on
DeltaBuilt around the outcome
  • Works across tools, files, and a company brain
  • One binary, a sub-2k-token system spine
  • Cheap enough to run one agent per user

Skip the wiring

Everything an agent needs, built in.

No framework to learn - a lean runtime with the tools, memory, learning, and controls already wired in.

Work across tools and files

Research and act through MCP, work in a full file workspace, delegate to subagents, drive a coding-agent CLI, and run on a schedule.

MCP toolsSubagentsCode CLICron schedulesWorkspace

Learns as it works

Carries scoped memory across runs, reflects on real feedback, and updates a versioned self-file - sharper the more the team uses it.

Scoped memoryCross-run recallReflectionSelf-learning

Yours to shape

Five plain files define an agent - model-agnostic and fully customizable. Version it, review it, and change it without a framework.

Bundle filesVocabularyModel-agnosticFully customizable

Safe and durable

Checkpointed so long tasks survive a restart, with scoped permissions, a fixed policy, and optional ephemeral data that can't leak.

CheckpointsScoped accessFixed policyEphemeral

Use it two ways

One runtime. Two shapes.

A person opens a thread, or your product does. The engine, tools, and review loop underneath are the same - what changes is where the human gives feedback.

01 · Autonomous agent

A teammate that does the work end to end.

A person opens one thread per task. The agent researches, works across tools and files, and proposes the result - learning from how each proposal is reviewed.

ResearchToolsPropose
02 · Agentic feature

Turn a one-shot LLM call into an agent that improves.

Your product opens the thread, seeded with task context. The agent drafts, proposes, and reflects on the diff - learning proposed-versus-accepted, per use case.

DraftProposeReflect
One engine underneath. One loop, one memory model, one bundle per agent - two products, one thing to operate.

Bring any model

Never locked to a single provider.

Use compatible Chat Completions, native Anthropic Messages or OpenAI Responses while preserving policy, identity and tools.

01

OpenRouter

Route across models with streaming, provider choice and cost-aware usage.

DEFAULT
02

Anthropic

Use native Messages with prompt caching and configurable thinking budgets.

NATIVE
03

OpenAI

Use native Responses, or compatible Chat Completions through the OpenAI-compatible route.

RESPONSES
04

Codex subscription

Broker-minted Responses access for subscription-backed deployments; tokens are restricted to configured allowlisted hosts.

PREVIEW

Need it to code?

Hand off to a coding agent.

At launch, Delta will hand advanced coding tasks to either CLI with the agent workspace as its working directory, then return the result to the run.

  1. Delta
  2. code(task)
  3. CLI
  4. Resume
  • Codex

    delta.envDELTA_CODE_CLI=codex exec --sandbox workspace-write --skip-git-repo-check
  • Claude Code

    delta.envDELTA_CODE_CLI=claude --print

Install either CLI separately. Neither ships in the standard Delta image.

  • Working directoryAgent workspace
  • AuthenticationCLI-owned credentials
  • Environment variablesNarrow allowlist
  • ExecutionNo harness timeout

See it in production

We run our own company on Delta.

Carrara ships internal tools and production software for clients with Delta agents - which is how the harness gets sharper and more robust in production.

Our platform

Company Brain

Our macOS app for running the company - project management and company context. Includes its own MCP, an AI chat, autonomous Delta agents, and automatic granular meeting processing.

Autonomous agent

Autonomous brain agents

Work directly on the brain, scoped to each client's connectors and permissions - real context, real tools, done autonomously within bounds.

Scoped dataPer-client perms
Agentic feature

Meeting processor

A specialized agent that explores the brain and captures structured outcomes - tasks, learnings, risks - from every meeting. Learns from your edits; data is ephemeral.

Self-learningEphemeral

Our product

Aperture

The end-to-end AI recruiter platform we build for ourselves and our clients.

Agentic features

One deployed agent per feature

Every product feature is its own Delta agent, deployed one per tenant. Around fifteen of them - each self-learning, and costing under a dollar a month.

  • Intake calls
  • Sourcing
  • Screening
  • Scheduling
  • Offers
15 featuresOne agent / tenant< $1 each

Test your agent

Interact with your agent, inspect every step.

Open any thread to inspect every model turn, tool call, delegated task, file and recorded cost. These illustrative timelines use the same trace primitives and controls as delta dev.

Workflows
Renewal · churn · pricing · executive
Evidence
Model input · tools · journals · files
Explore
4 threads · 6 runs
Visibility
Tokens · cache · latency · cost
Delta Cockpit
agent account-intel tokens 92,157cost $0.0456runs 2 ILLUSTRATIVE DATA
tokens 92,157cost $0.0456runs 2
Acme renewal decision pack
Build an approval-ready Acme renewal decision pack from the CRM, 90 days of support, the account-team channel and inbox/2026-07-13/acme-call.txt. Challenge the narrative independently, save the brief and evidence note, then submit one proposal for review. Do not change the CRM.
Recall · 2 learnings(procedure/agent) Lead renewal briefs with material risk, then evidence.(preference/user) Preserve approved context when revising an existing review item.
Turn 1
input 6,840 tokens in · 82% cached
mcpcrm__get_account✓ 214ms
Journal · read-time redaction appliedargs { "account_id": "acme" } result { "arr_usd": 248000, "renewal": "2026-09-30", "probability": 0.62 }
mcpsupport__search_tickets✓ 486ms
Journal · read-time redaction appliedargs { "account": "acme", "window": "90d" } result 14 tickets · 4 open · permissions and data sync dominate
mcpslack__search✓ 362ms
Journal · read-time redaction appliedargs { "query": "acme renewal implementation" } result 18 days behind · sponsor engaged · no confirmed recovery owner
mcpreview__get_review_item✓ 188ms
Journal · read-time redaction appliedargs { "review_item_id": "RI-4821" } result { "revision": 2, "status": "changes_requested" }
built-inread_file✓ 24ms
Workspace readinbox/2026-07-13/acme-call.txt · 412 lines
anthropic/claude-sonnet-5 · out 161 · $0.0032 · 1,284ms · primary
Turn 2
input 8,112 tokens in · 86% cached
built-inwrite_file✓ 21ms
Workspace writewrote 3,842 chars to evidence/acme-source-pack.md
anthropic/claude-sonnet-5 · out 183 · $0.0035 · 1,176ms · primary
Turn 3
input 8,708 tokens in · 88% cached
built-inspawn_subagent✓ 6.8s
Fresh child context · shared workspace · narrowly forwarded model credentialtask Read evidence/acme-source-pack.md. Challenge the evidence independently. Identify contradictions, missing owners and unsupported claims. Save the note to evidence/acme-risk-check.md. Make no external changes. result saved evidence/acme-risk-check.md · 3 material risks · 2 contradictions · 1 missing owner
anthropic/claude-sonnet-5 · out 144 · $0.0037 · 1,288ms · primary
Turn 4
input 9,220 tokens in · 90% cached
built-inread_file✓ 18ms
Workspace readevidence/acme-risk-check.md · 2.7 KB
anthropic/claude-sonnet-5 · out 117 · $0.0033 · 1,046ms · primary
Turn 5
input 10,014 tokens in · 91% cached
built-inwrite_file✓ 22ms
Workspace writewrote 1,486 chars to briefs/acme-renewal.md
anthropic/claude-sonnet-5 · out 185 · $0.0042 · 1,338ms · primary
Turn 6
input 10,786 tokens in · 92% cached
mcpreview__propose_change✓ 274ms
Journal · proposal sent to connected review productargs { "supersedes_id": "RI-4821", "artifact_path": "briefs/acme-renewal.md", "run_ref": "resp_a3f09d2c8e174b65a2f941d6bc730e5f", "summary": "Revision 3 leads with material risk and includes an independent challenge." } result { "review_item_id": "RI-4821", "revision": 3, "status": "pending" }
anthropic/claude-sonnet-5 · out 92 · $0.0034 · 1,074ms · primary
Turn 7
input 11,700 tokens in · 93% cached
Built Acme's renewal decision pack. briefs/acme-renewal.md leads with the 18-day delay and unconfirmed recovery owner. evidence/acme-risk-check.md preserves the independent challenge. Revision 3 is pending on RI-4821. The CRM remains unchanged.
anthropic/claude-sonnet-5 · out 218 · $0.0078 · 1,422ms · primary
● done · run complete74,880 tokens · in 73,380 · out 1,500 · 90% cached · $0.0371
Review outcome for RI-4821 revision 3: accepted with one edit. Proposed: “no recovery owner.” Accepted: “recovery owner proposed; start date unconfirmed.” Reviewer note: distinguish proposed from committed ownership.
▶ started · review disposition
Turn 1
input 4,812 tokens in · 84% cached
mcpreview__get_review_item✓ 176ms
Journal · read-time redaction appliedresult { "review_item_id": "RI-4821", "revision": 3, "status": "approved_with_edit" }
built-inread_file✓ 16ms
Workspace readbriefs/acme-renewal.md · revision 3 proposed bytes
anthropic/claude-sonnet-5 · out 164 · $0.0026 · 924ms · primary
Turn 2
input 5,738 tokens in · 87% cached
built-inwrite_file✓ 19ms
Workspace writewrote 1,522 chars to briefs/acme-renewal.md
anthropic/claude-sonnet-5 · out 192 · $0.0028 · 988ms · primary
Turn 3
input 6,182 tokens in · 89% cached
Synced the accepted brief. It now distinguishes the proposed recovery owner from a committed owner and leaves the start date unconfirmed. Review item RI-4821 is approved. The CRM remains unchanged.
anthropic/claude-sonnet-5 · out 189 · $0.0031 · 906ms · primary
● done · run complete17,277 tokens · in 16,732 · out 545 · 87% cached · $0.0085
reflection · preference stored
Continue this thread...
composer preview · thread context preserved

Ship it

Deploy your Delta agent.

Pair one Delta binary with one persistent volume. Your controller handles intake, wake and suspend. Delta checkpoints the work.

Read the deployment guide
Production topologyone agent · externally enforced writer · persistent state
ExternalLifecycle controllerGate intake · check queue · wake · suspend
PrivateTrusted gateway and operator proxyAuthenticate · apply limits · inject control and inspect tokens
Delta machinesuspendable compute
delta:8080

Compiled daemon, durable loop and Cockpit

  • /v1/responses
  • /v1/tasks
  • /healthz
  • /dev
  • /v1/dev/*
/data/delta.dbSQLite state and durable event outbox
/data/workspace/DELTA.md · inbox/ · working files
  • ModelModel providersOpenRouter, Anthropic or OpenAI
  • ToolsMCP servicesProduct systems and connectors
  • OptionalTelemetry collectorCustom NDJSON export
  • BackupLitestream + object storageSQLite only · snapshot the workspace separately
External lifecycleDelta does not provision or suspend infrastructure itself.
  1. 01GateHold new work
  2. 02WakeStart the runtime
  3. 03RunCheckpoint durable work
  4. 04CheckNo queued or running work
  5. 05SuspendCompute sleeps, /data stays

Queue zero does not drain reflection or telemetry. Suspending can interrupt background work.

Track everything

Traces, tokens, and cost, for free.

Correlate each event with its user, agent, session, run and turn. Inspect live, persist locally or export NDJSON.

Read the telemetry setup
Event stream anatomycustom NDJSON · GenAI-inspired fields
Correlation fieldsIncluded when present
  1. 01user.id
  2. 02agent.id
  3. 03session.id
  4. 04run.id
  5. 05task.id
  6. 06entity.id
  7. 07turn
Example eventmodel.call
A single envelope keeps the operational context together.

See the served model and tracked usage without opening the full prompt.

Model
anthropic/claude-sonnet-5
Tokens
4,812 total
Cost
$0.0148
Latency
1,184 ms
  1. 01
    Inspect liveCockpit and task SSE
  2. 02
    Persist locallyRestart-stable SQLite records
  3. 03
    Export as NDJSONBatched, retried while retained and deduplicable

Get started

Get started in three simple steps.

Install the binary, scaffold a versionable agent bundle, and open the Cockpit locally - then ship the same binary to your cloud.

Install, then initialize and run

One command to install. Then delta init scaffolds without overwriting files, and delta dev opens the local Cockpit. Prefer a package? bunx @carrara-labs/delta-harness runs it via Bun.

Terminal
# install (macOS / Linux)
curl -fsSL https://deltaharness.dev/install.sh | sh

# create and launch an agent
delta init ./my-agent
delta dev ./my-agent

Shape five files, one optional.

The bundle is deliberately plain. Version it, review it and change it without learning a framework.

delta.envProviders, budgets and MCP
vocab.jsonProduct language and actions
DELTA.mdRole, memory and learned rules
POLICY.mdHighest-priority prompt guidance
PROMPT_CONTEXT.md optionalBounded stable and per-turn context

Inspect the real loop locally

delta dev runs the ordinary daemon on loopback, adds exact successful-call capture and local editing, and opens Cockpit at /dev.

New · Delta Connect

Put your agent in your chat.

A thin, always-on edge that plugs a Delta agent into a chat channel. The edge holds the conversation; the agent scales to zero between messages.

  • Any channel, behind one small connector - Telegram today
  • Scales to zero, full capability, near-zero cost at rest
  • Learns from you, safely behind a trusted gateway

One guide, for humans and models

Build, inspect, deploy, and recover - from one place.

The canonical operating guide is written for engineers and language models alike.