Public alpha. Stripe Live in ~2 weeks. → Get on the launch list

WOS · L1 · L2 · L⊥ · public alpha

Decisions you can hand to a regulator. Compiled.

Worker-OS is a verifiable policy compiler for regulated decisions. You write your KYC, AML, and sanctions logic in a tiny YAML DSL, lint it like code, simulate it like tests, deploy it like infra. Every decision the engine emits is Ed25519-signed, Merkle-included, and OpenTimestamps-anchored to the Bitcoin chain — reproducible by any party who has the input bytes, the policy bytes, and our public key.

Get started →

Source on GitHub ↗


Three commands. Two of them work offline.

$ wos lint policy.yaml
  Policy is valid — 4 rules compiled clean
   policy_id: kyc.tier2.jp.v3
   linter:    athena 0.1.0

$ wos simulate policy.yaml input.json
  PASS  via rule R004
   confidence:    0.96
   trace: 4 rules evaluated · full Glass-Box JSON attached

$ wos deploy policy.yaml
  Deployed — kyc.tier2.jp.v3 v1
   dsl_hash:     b1946ac9···
   committed_at: 2026-05-10T12:00:00Z
Live output, byte-stable. Set NO_COLOR=1 and pipe to jq — same envelope shape as the HTTP API.

lint runs the Athena (L1) compiler in-process. simulate runs the Nyx (L2) decision engine in-process. Neither touches the network. Wire them into pre-commit hooks, CI, and golden-file tests — exactly the way you treat the rest of your code.

deploy is the only command that goes online. It pre-flights through the local compiler before it ever opens a socket — a malformed policy cannot reach the wire.


What you ship to a regulator

ed25519·3a7f1b2e8c5d…b1c6e9a2latest rollup signature

A decision artifact carries four cryptographic primitives: an Ed25519 signature over the canonical pre-image, a Merkle inclusion proof, the daily Merkle root, and an OpenTimestamps Bitcoin anchor. Verifiable end-to-end without us:

$ cosign verify-blob \
    --key https://worker-os.com/pgp-key.asc \
    --signature receipt.sig receipt.json
  Verified OK

$ ots verify rollup-2026-05-10.ots
  Bitcoin block 875432 — attestation valid

If both commands return zero, your decision is reconstructible from the input bytes plus the policy bytes plus our public key. We could disappear tomorrow and the chain of custody still holds.

Read the full integrity plane spec →


What Worker-OS is not

It is not a fraud API. There is no ML model, no opaque score, no “approve more customers” lever. The only thing the engine returns is the rule that fired and the bytes you wrote.

It is not a compliance SaaS. There is no dashboard. No “talk-to-an-expert” wall. No procurement-only contact form. The customer relationship is npm i -g, mint a key, wos deploy. The sales motion is the README.

It is not a black box. We do not stand between you and your regulator. The receipt verifies without us in the loop — that is the whole product. If you want a vendor whose authority comes from “trust us,” choose someone else.

What it is: a compiler, a signer, a receipt. The smallest possible artifact you can hand to your regulator and to your future self.


The doctrine, in four lines

  1. Pull-type. No sales motion. Mint a key, ship a policy, pay per decision.
  2. Glass-Box. Every decision is reconstructible from the input bytes plus the policy bytes. Nothing else is needed.
  3. JSON in, JSON out. No GUI. The CLI’s output and the HTTP API’s output are byte-identical.
  4. Compile-time correctness. A policy that ships is a policy the compiler agreed was internally consistent. Half-compiled state cannot be committed.

Read the full architecture →


Stripe Live in ~2 weeks.

One email, the day the meter goes live. Nothing else, ever. No drip campaign, no newsletter, no tracking pixel. (Doctrine §III.)