One embed gives your users answer-once, silent-forever consent and turns your site or app into a subscriber on the open preference fabric. Free, open, no lock-in. Here's every platform.
Drop this before </body>. First visit shows one clean prompt; every visit after is silent, and your page receives the grant instantly through the pchp:consent event.
<script src="https://hushh.ai/pchp.js"
data-subscriber="your-brand.com"
data-scopes="privacy.marketing-email,privacy.analytics"
data-endpoint="https://your-site.com/api/pchp"></script>
<script>
addEventListener("pchp:consent", function (e) {
// e.detail.scopes -> { "privacy.marketing-email": true, ... }
if (e.detail && e.detail.scopes["privacy.analytics"]) startAnalytics();
});
</script>{% comment %} Paste into your theme's theme.liquid {% endcomment %}
<script src="https://hushh.ai/pchp.js" data-subscriber="{{ shop.permanent_domain }}"></script><script src="https://hushh.ai/pchp.js" data-subscriber="your-brand.com"></script>
<script src="https://hushh.ai/pchp.js" data-subscriber="your-site.com"></script>
import Script from "next/script"; // or a plain <script> in plain React <Script src="https://hushh.ai/pchp.js" data-subscriber="your-brand.com" strategy="afterInteractive" />
The embed is plain JavaScript, so it runs unchanged in any in-app web view today. Load a page that includes the tag, then read the grant your JS bridge forwards. Native Swift and Kotlin SDKs are the next build - the event and endpoint contract below will not change, so anything you build against it now keeps working.
let web = WKWebView(frame: view.bounds) web.load(URLRequest(url: URL(string: "https://your-site.com/consent")!)) // your page runs pchp.js; forward pchp:consent via // window.webkit.messageHandlers.pchp.postMessage(e.detail) to native.
val web = WebView(this)
web.settings.javaScriptEnabled = true
web.addJavascriptInterface(PchpBridge(), "PchpNative")
web.loadUrl("https://your-site.com/consent")
// your page posts pchp:consent to PchpNative.onConsent(json).If you set data-endpoint, every grant and revoke is POSTed as JSON. Any stack, any language - store it, or forward it to your CRM.
{
"pchp": "rfc-002-draft",
"type": "grant",
"subscriber": "your-brand.com",
"scopes": { "privacy.marketing-email": true, "privacy.analytics": false },
"grantedAt": 1753000000000,
"expiresAt": 1784536000000,
"receipt": "local:ab12cd34"
}Client API: PCHP.get(), PCHP.request(scopes) (progressive asks), PCHP.revoke(), PCHP.prompt(). Scope names are the open registry at /pchp/scopes.json.
Live today: the web embed, the scope + agent registries, the consent event, the endpoint contract, and device-local grants with receipts.
In design: native Swift/Kotlin SDKs, account-level sync through the person's own Agent One, and server-side receipts. The contract above is stable, so build now.
Shipping this on your site or app, or building an agent on the fabric? We want to help you launch - and feature you.
One is made by Hushh Technologies Corporation: private, sovereign AI that runs on what you own.