Skip to content
ConsentOS

A permission layer for personal data

Your data.
Your rules.
Everywhere.

ConsentOS lets websites ask for data permission programmatically while your privacy rules decide what is allowed.

No banners, no LLM guesswork. Deterministic decisions, signed receipts, enforced at runtime. Get the browser extension

ConsentOS Protected on Pixly
  • Smart recommendations

    personalization · 30 days

    Your rule: Personalised recommendations ALLOW

    Allowed
  • Help train Pixly AI

    foundation_model_training · 365 days

    Your rule: AI model training BLOCK

    Blocked
  • Pixly Memories

    personalization · 730 days

    Your rule: Retention limit 90 days

    Blocked
Decided by the real policy engine against the default rules as this page rendered.

How it works

Decide once. Every integrated service has to ask — and has to listen.

  1. 1

    Set your rules once

    Allow personalisation, block AI training, cap retention at 90 days. Plain choices, saved as a versioned, hashed policy.

  2. 2

    Websites request permission

    Integrated services call ConsentOS with exactly what they want: which data, for what purpose, for how long, shared with whom.

  3. 3

    ConsentOS enforces your decision

    A deterministic engine answers in milliseconds, signs a receipt, and the service's own backend refuses to run without a valid grant.

Proof, not promises

Unauthorised software operations actually fail.

A preference that nothing checks is a suggestion. ConsentOS grants are checked by the service's own backend before the work runs. No grant, wrong purpose, wrong service or a revoked grant: the call returns 403.

  • Every decision is receipted: SHA-256 over canonical JSON, signed with Ed25519.
  • Receipts commit to the exact policy version and request that produced them.
  • Revoking a grant stops the next call — the receipt still proves what was once allowed.
pixly — runtime enforcement
POST /api/train-model

HTTP/1.1 403 Forbidden
{
  "error": "CONSENT_VIOLATION",
  "message": "The user has not granted permission for foundation-model training."
}

What a receipt binds

Allowed

Pixly · Personalised recommendations

Policy
v1 · sha256:0d00…c768
Request
sha256:7ca2…8596
Conditions
uploaded images · 30 days · not shared
Signature
Ed25519 over canonical JSON, checked by anyone at /verify

For developers

As small as adding payments or sign-in.

One request before you use data. One check before you run the job. The SDK is a few hundred lines with no dependencies, and every endpoint is plain JSON over HTTPS.

Read the integration guide
server.ts
import { ConsentOS } from "@consentos/sdk"

const consent = new ConsentOS({
  serviceId: "pixly",
  apiUrl: "https://consentos.dev",
  apiKey: process.env.CONSENTOS_API_KEY,
})

const result = await consent.request({
  userId,
  dataType: "uploaded_images",
  purpose: "foundation_model_training",
  retentionDays: 365,
})

if (result.decision === "ALLOW") {
  // continue — result.receiptId is your signed grant
}

What ConsentOS is — and isn't

A proposed interoperable protocol, not magic.

ConsentOS does not control websites that have not integrated it. Services adopt the SDK and API the way they adopt authentication or payment infrastructure. Pixly is the reference integration you can try today.

Try it end to end

Open Pixly, enable recommendations, then ask it to train on your photos. Watch your rules answer, the extension update, and the training endpoint refuse to run.

Privacy shouldn't be a popup you click. It should be infrastructure software has to obey.