The agentic product builder

Build an agentic product in a prompt.

Describe the work, the systems and the rules. Get a governed agent that does the job, asks before it acts, and ships as one file you own. Deploy it to your customers under your brand.

Open-source runtime. Any model. One WASM file, yours forever.

Describe the agent you want to sell

A Xero bookkeeping agent for small property managers. Read bills and receipts from the shared mailbox, code them to the right property and landlord, raise rent invoices, chase arrears, draft replies to tenants and landlords. Never post or send without approval.

property-bookkeeping@0.1.0 generated in 4m 12s · evals 40/40
  • Skills 7 triage · capture · recharge · invoice run · chase · reply · month-end
  • Tools 8 Rhai · decimal · sandboxed
  • Hooks 9 arithmetic · provenance · read-back
  • Workflows 4 invoice run · month-end · arrears
  • Connectors 2 Xero · Microsoft 365
  • Policies 6 approve every post & send
  • Evals 40 incl. prompt injection in PDFs
  • Artifact 1 harness.wasm · signed
Open in Playground Deploy to a customer

This agent was built from the prompt above.

Nothing here is hand-written. Real runtime, replaying a recorded session. Nothing is sent, nothing is posted.

Bookkeeping assistant · demo portfolio property-bookkeeping@0.3.1 · replay
acme-plumbing-inv-2231.pdf

Read the invoice: Acme Plumbing Ltd, 12 Sep 2026, £312.00 inc VAT, “boiler service, Flat 2”. Matched the supplier and the property. Not a duplicate of the £312.00 bill from March: different invoice number and date.

Approval required xero-write/approval
Action
Post bill to Xero
Supplier
Acme Plumbing Ltd (existing contact)
Amount
£312.00 = £260.00 + £52.00 VAT
Account
429 Repairs & Maintenance
Property
14 Elm Road, Flat 2 · landlord J. Patel
Recharge
No · landlord cost under lease clause 4.2
Approve & post Edit Reject The agent drafts. You post.

How I worked this out · 1 document read · 3 tools · 1 Xero lookup · 2.1s

Effect timeline run 4e19 · 9 effects
  1. 01 skill inbox-triage → supplier bill
  2. 02 model read document (1 page, vision) 1.6s
  3. 03 tool vat_split (rhai) 1ms
  4. 04 http xero GET /Contacts?where=Name 240ms
  5. 05 tool allocate_property (rhai) 2ms
  6. 06 tool duplicate_score → 0.08 3ms
  7. 07 policy xero-write/approval → require_approval
  8. 08 emit approval card
  9. 09 persist audit/run-4e19

Every run is a deterministic log of inputs and effects. Replay it in Studio, on your server, or in this page. Same result every time.

A prompt in, a product out.

Skills, tools, connectors, policies, evals and memory, generated together and running in Playground within minutes. Refine any part by hand or by prompt.

Correct by construction.

Every generated agent carries hooks that check arithmetic, provenance and read-back around every model call and every write, workflows that make big jobs resumable, and approval gates as code.

Yours. Runs anywhere.

One WASM file holds the agent and its rules. Host it with us under your brand, or run it in your customers’ own tenants. Any model: Anthropic, OpenAI, Azure, Ollama.

Why these agents do not make things up

Generated with the checks built in.

A prompt is not a guarantee. So every agent the generator produces comes with deterministic hooks around every model call and every write, and with workflows that turn big jobs into resumable plans with human gates. You can read them, edit them, and watch them fire.

Hooks

hooks/after_model/bill_extraction.rhai

Code that runs at fixed points: after the model answers, before anything is written, after Xero confirms. It can pass, fix, send the model back with a reason, block, or ask you.

fn after_model(ctx, out) {
  let b = out.bill;
  if b.net + b.vat != b.total {
    return retry("net + VAT does not equal total; re-read the document");
  }
  if b.vat_rate == 20 && (b.net * 0.20 - b.vat).abs() > 0.01 {
    return retry("VAT is not 20% of net");
  }
  if !ctx.document.text.contains(b.invoice_number) {
    return retry("invoice number not present on the document");
  }
  pass()
}
  • after_model
  • before_effect · idempotency
  • after_effect · read-back verify
  • on_run_end · claims vs actions

Workflows

workflows/month-end-close.yaml

Larger jobs as declared plans: steps, fan-out, approval gates, a checkpoint after every step so a run survives a restart, and compensation when a late step fails after an early write.

  1. collect · inbox-triage since last close , done 23 bills
  2. capture · for each bill· gate: approval , done 21 posted · 2 parked
  3. reconcile · unallocated payments , done 1 to review
  4. statements · for each landlord· gate: approval , waiting waiting · 3 of 3
  5. checklist · month-end-check → panel , queued queued

Checkpoint after every step. Compensation: a bill that fails in Xero after approval notifies the approver; nothing is voided silently.

  • Cannot post a bill whose net, VAT and total do not add up. after_model → retry
  • Cannot post the same invoice twice, even across retries and restarts. before_effect → block
  • Cannot email a tenant an amount that differs from the invoice, or say “posted” when nothing was. before_effect · on_run_end

Sell it on

Deploy to your customers under your brand.

Each customer gets their own organisation, connectors, approvals and audit trail. You set the price. One dashboard across all of them. We bill you per organisation.

Ask about white-label deploy

Your brand Books · customer organisations 5 live · 1 onboarding
Organisation Approvals waiting Posted this week Autonomy
Property firm A · Xero 6 41 Approve all
Property firm B · Xero 2 67 Auto-post < £250
Lettings agency C · Xero 0 12 Approve all
Property firm D · connecting Xero…

For your data-protection reviewer

Everything the agent can do is in one inspectable file.

No credentials inside. The only hosts it may call are listed in the manifest. Signed at export, verified on load. Tenant data stays in your tenant and your chosen model region.

harness.wasm size TBC · signed
  • Runtime sans-IO loop, context, compaction
  • Providers Anthropic · OpenAI · Azure · Ollama
  • Rhai sandbox tools & policies, decimal maths
  • Pack: property-bookkeeping 7 skills · connectors · policies · evals
"connectors": [
  { "name": "xero",      "hosts": ["api.xero.com", "identity.xero.com"] },
  { "name": "m365-mail", "hosts": ["graph.microsoft.com"] } ],
"secrets_embedded": 0,
"policies": ["xero-write/approval", "email/approval", "bill/duplicate-block", "payments/none"]

Know a niche? Build its agent this afternoon.

Studio with the generator, Playground and evals. Deploy to your customers under your brand and set your own price. We charge you for the factory and per running organisation.

  • Builder Pricing coming soon per month
  • Builder Pro Pricing coming soon per month + per customer organisation

Be told when pricing is published

For developers and platforms

Runtime, host drivers, embed element and pack spec are open source. Build a pack with Markdown, YAML and Rhai. Embed the same agent in your product.

$ npm i @atomharness/host @atomharness/embed
$ dotnet add package AtomHarness.Host
$ atom init my-pack && atom run

Package names are the plan, not yet published. The waitlist is where the first invitations to the repository go.

Waitlist

Know a niche? Build its agent this afternoon.

Studio is in private preview. Tell us who you are and what you would build, and we will invite you as capacity opens up.

No list. No newsletter. One email when there is something to try, and a way to be forgotten.

Optional. One line is plenty.