./how-it-works
Hide a message inside ordinary-looking text.
plaintext turns your message into invisible Unicode characters and places them inside normal-looking generated text. Paste that generated text back into plaintext to recover the hidden message.
the flow
The visible text and the hidden message are separate. The local AI writes the visible text; plaintext inserts the hidden data afterwards.
message → optional encryption → invisible Unicode → generated text
hide
Enter the message you want to hide, choose the style of the visible text, then select Hide message. Copy the generated text exactly as it appears.
reveal
Paste the full generated text without editing it, then select Reveal hidden message. plaintext reads the invisible characters and reconstructs the original message.
password
A password is optional. If you add one, plaintext derives an encryption key with PBKDF2 and encrypts your message with AES-256-GCM before hiding it.
Without a password, the message is hidden but not encrypted. Someone who has the generated text and knows how this encoding works can reveal it.
privacy
Your message and password are processed in your browser. The language model runs in the browser and is only asked to generate unrelated visible text; your hidden message is not included in its prompt.
Model files are downloaded to your browser when needed, so “local” refers to where the sensitive processing happens, not to the site working without an internet connection.
limits
- Keep the generated text unchanged. Editing, retyping, translating, or reformatting it can damage the hidden data.
- Some apps and services may remove or normalize invisible Unicode characters. If that happens, the hidden message may not survive.
- If you use a password, the recipient needs the same password to reveal the message.
- If confidentiality matters, use a password. Hiding a message is not the same as encrypting it.
- WebGPU is used for the local AI when available. If it is unavailable, plaintext uses built-in fallback text and the hide/reveal process still works.