Cloak is in beta. It detects identifiers, payment card data, and credentials in text. It does not yet detect health data, and it does not read audio or images. See Limits.
What it does
1
Detect
The control plane finds personal data in your payload and returns where it is,
as a type and a range. It never returns the value.
2
Replace
The SDK swaps each value for a token, a hash, a mask, or a label, in your own
payload. Nothing is sent anywhere to be rewritten.
3
Forward
The model sees
Email the receipt to [[email:f098b0367449]], not the address.4
Restore
The model answers using the token. You restore the response, and the address
comes back, for the identity that owns it and no one else.
Why it exists
A model provider does not need someone’s card number to draft a receipt email. Keeping personal data out of the request means it never sits in a provider’s logs, never appears in a training pipeline you do not control, and cannot be repeated back to the wrong user. Cloak helps you minimise the personal data your models receive, which supports data-minimisation duties under regimes such as GDPR and the EU AI Act. It does not by itself make a system compliant, and it is not legal advice.What is detected
Personal data, payment card data, and credentials, as 24 types in four categories. See Entity types.Properties worth knowing
Nothing recognises data in your process
Detection runs on the control plane. The SDK holds no recognisers, so there is
nothing on a client to read or step around.
Values are never echoed
The control plane returns types and ranges. A response, a log, or a proxy never
holds a second copy of what Cloak exists to protect.
Identity-bound restore
A token belongs to the context it was made under. Another context’s token is
refused, not restored.
Fails closed
A request Cloak could not check is refused, not forwarded.
Where to go next
Protect and restore
The
protect call, wrap, decorate, and restoring a response.Strategies
Tokenize, hash, mask, or redact, per type or per category.

