Platform

Write the config. We provision the mill.

Write heddwove.config.ts, or let your coding agent write it. Heddwove provisions and meters. One bearer token, one credit balance, one audit stream.

heddwove.config.ts
import { loom, identity, runtime, skills, team } from "@heddwove/sdk";

const researcher = loom({ can: [skills.search, skills.browser] });
const writer = loom({ can: [skills.route] });

export const desk = team({
  runtime: runtime.durable({ sleepAfter: "15m" }),
  lead: loom({
    identity: identity.business(),
    can: [skills.route, skills.search, skills.mail.send],
    limits: { spendCapUsd: 250, models: { search: "class-b", reason: "frontier" } },
  }),
  agents: { researcher, writer },
  edges: [["lead", "researcher"], ["researcher", "writer"]],
});

Runtime

Long-running agent teams that survive a crash.

Heddwove hosts durable processes with crash-safe state, typed rosters, and human-in-the-loop gates. Bring Cursor, Claude Code, or your own runner. Heddwove is the mill those runners call.

  • Sleep after idle, wake on mail, webhook, or cron.
  • Board state written before each tool fire.
  • Approval holds pause the turn until a human signs.

Spend this week

$180 of $500 cap on loom desk_7f3k

  • 10:01 browser.search $0.01 allowed
  • 10:14 cards.create $0.00 allowed
  • 10:22 cards.charge $48.00 allowed
  • 10:23 cards.charge $612.00 held for approval

Routing

Governed inference as a metered line.

Policy can say this tool may only use models in class B. Context pruning keeps mechanical turns cheap. Research batches wait for idle hours. Every route writes an invoice line.

routing.policy.yaml
classes:
  B: [heddwove-small-1, llama-scout]
  frontier: [claude-sonnet, gpt-5]
tools:
  research.batch: class B
  mail.draft: class B
  code.edit: frontier
idle:
  batch_after: 15m
  prune_context: true
POST /v1/route response
{
  "route_id": "rt_91c2",
  "loom_id": "loom_7f3k",
  "tool": "research.batch",
  "model": "heddwove-small-1",
  "class": "B",
  "input_tokens": 1840,
  "output_tokens": 412,
  "credits": 0.0022,
  "reason": "mechanical_turn"
}

Governance

Caps, queues, and a log before money moves.

Hard spend caps sit on virtual cards. Approval queues catch irreversible tools. Revocation cuts a card, a session, or a skill mid-flight. Every primitive call lands in the audit stream. KYC and KYB still need humans.

Card caps

Authorization fails when the charge would cross the remaining cap. Alerts follow the decline.

Approval queues

cards.charge above $100 waits. The agent holds the turn. A human approves or denies in the console or Slack.

Revoke in flight

Kill a card, a bearer token, or a single skill. The next primitive call reads the new policy.

Primitives

Company-shaped tools behind one balance.

Catalog groups cover compute, storage, identity, payments, communications, and filings helpers. Exact SKUs live in the live catalog. Incorporation and banking partners are integrations, limited by jurisdiction.

Compute and storage

  • Durable runtime hours
  • Sandbox minutes
  • Postgres per loom
  • Object storage and live sync

Identity and filings

  • Business identity records
  • KYC and KYB handoff
  • LLC and EIN helpers
  • Registered agent packets

Money and comms

  • Virtual cards with caps
  • Pass-through charges plus 1.2%
  • Mailboxes and domains
  • SMS numbers
compute identity cards mail models

Templates

Starter configs you can paste today.

Each template is a prompt plus a config. Copy both into Cursor or Claude Code. Heddwove provisions the threads the file names.

Support desk

File: templates/support.ts. Threads: mail, postgres, class B routing, $80 card, approve cards.charge.

Prompt: “Stand up a support loom that reads helpdesk mail, drafts grounded replies, and waits on a human for refunds over $40.”

Recruiting inbox

File: templates/recruiting.ts. Threads: mail, calendar, ATS webhook, class B drafts, frontier for score writeups.

Prompt: “Build a recruiting loom that screens inbound mail, books a 20 minute slot, and logs candidates to the ATS.”

Books closing

File: templates/books.ts. Threads: processor webhooks, ledger memory, monthly cron, $0 card (read only money movement).

Prompt: “Close the books on the first weekday. Reconcile Stripe and the ledger. Mail the pack to finance@.”

Full-stack scaffold

File: templates/app.ts. Threads: Postgres, auth, object storage, edge functions, hosted URL on the mill.

Prompt: “Provision an app loom with a database, session auth, a bucket, and an edge function that the agent can deploy.”

Use cases

Who sits at the loom.

Agent agencies

Many customer agents, one governed mill. Seats on Cloth, policy packs per client, a shared audit export.

Internal automations

Ops agents with a budget. Caps on cards, Slack approvals, a weekly spend mail to finance.

New companies

Spin up boring infrastructure so the agent can work: identity, inbox, database, a capped card.

Existing stacks

Connect CRM, code, and shop. Policy on every session. Heddwove meters the routes those tools call.