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
- Allowed
Smart recommendations
personalization · 30 days
Your rule: Personalised recommendations ALLOW
- Blocked
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
How it works
Decide once. Every integrated service has to ask — and has to listen.
- 1
Set your rules once
Allow personalisation, block AI training, cap retention at 90 days. Plain choices, saved as a versioned, hashed policy.
- 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
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.
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
AllowedPixly · 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 guideimport { 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.