Console Back to site Docs Proof GitHub Open chat
Wallet
—
Chats opened
0
Downloads
0
First connected
—
PARANOID runtime

Your AI chat, with nothing personal leaving your machine.

The chat runs on your computer. Each prompt is sanitized by a local model, shown to you before it is sent, and routed through its own Tor circuit. Answers come back with your real names and details restored locally.

Open source under the MIT license. “Open chat” works once the runtime is running on this computer (npm start). Nothing you type goes through this website.

Install

One command on Windows.

Open PowerShell (no administrator needed) and paste:

irm https://www.paranoid.family/install.ps1 | iex

Installs Node.js, the runtime, Tor and a local model, each download checked against its published SHA-256 (Ollama by its code signature), adds PARANOID to the Start Menu and opens the chat. Read the script first. Remove it from Settings → Apps.

  1. Run the command. It takes a few minutes; the local model is several GB.
  2. PARANOID opens in your browser at http://127.0.0.1:7700. Next time, start it from the Start Menu; it also starts at sign-in.
  3. In Settings, add your OpenRouter key (or connect the zkAPI wallet) and pick a remote model.
  4. Linux or manual install: see the docs.
01

A real exchange

Recorded run
Turn 1 · test prompt
You typed
Hi, I'm Julien Moreau from Lyon, my email is julien.moreau@orange.fr and I work at Decathlon. My manager Sophie Laurent asked me to write a short polite message to a supplier, Textiles Dupont, saying our order #4471 will be paid next Friday instead of today. Can you draft it?
OpenRouter received
A message needs to be drafted for a supplier, [ORG_2], informing them that order #4471 will be paid next Friday instead of today. The sender works at [ORG_1] and their manager, [PERSON_1], requested this. The sender's name is [NAME_1] and their email is [EMAIL_1].
Reply, restored locally
Dear Textiles Dupont Team, I'm writing to let you know that payment for order #4471 will be processed next Friday, rather than today as originally planned. We apologize for any inconvenience this may cause. If you have any questions or concerns about this change, please don't hesitate to reach out to me directly at julien.moreau@orange.fr. Best regards, Julien Moreau Decathlon
Sanitized locally by qwen3:8b in 1.3 s · sent through Tor (own circuit) · anthropic/claude-haiku-5.5 · 107 + 349 tokens
Turn 2 · same conversation
You typed
Thanks. Make it a bit warmer and add that Sophie Laurent can be reached on +33 6 12 34 56 78 if they have questions.
OpenRouter received
Adjust the temperature slightly and include [PERSON_1]'s contact information at [PHONE_1] for any inquiries.
Reply, restored locally
…If you have any questions, please feel free to contact me at julien.moreau@orange.fr, or reach out to Sophie Laurent at +33 6 12 34 56 78. Warm regards, Julien Moreau Decathlon
Sanitized in 0.4 s · Tor · 385 + 399 tokens · the rewrite turned “warmer” into “temperature”: the local rewrite can lose nuance, which is why you review and can edit the text before it is sent

Recorded on 4 November 2026 with the runtime from the download above, using an invented persona. “Lyon” was sent as is: places are masked only in the strict setting. The provider still reads the sanitized task.

02

What happens to each message

1
Rules
Emails, keys, cards, IBANs, phones, addresses, wallets replaced. Code kept verbatim.
2
Entities
Local model lists people and organizations; they are masked deterministically.
3
Rewrite
Local model turns the request into an impersonal task.
4
Recheck
Rules run again; anything reintroduced is masked.
5
Review
You see and can edit the exact text. Nothing leaves before you approve.
6
Send
Over this conversation's own Tor circuit, with no identifying headers.
7
Restore
Placeholders in the answer are filled back in on your machine.

If any of steps 1–4 fails, the message is not sent. A profile never downgrades itself: when a required layer is missing, the chat says which one and refuses to send.

03

Privacy profiles

ProfileRequires
StandardA model and a key. Sanitization when available, or the original after explicit approval.
PrivateVerified Tor and the local sanitizer. Only sanitized text is sent, over the conversation's own circuit.
ParanoidPrivate, plus a zkAPI lease as the only way to pay, running cover traffic and the agent sandbox.
04

Layer status

Local sanitizerWorking, verified with qwen3:8b
Tor, one circuit per chatWorking, separate exits verified
OpenRouter chatWorking, run shown above
Cover trafficWorking, budgeted, auto-stop
Sandbox (WebAssembly)Working, JavaScript tools
Sandbox (bubblewrap)Built; needs Linux or WSL2, untested on real bwrap
zkAPI paymentsWallet starts; deposit and lease not yet run (Sepolia testnet only)
microVMNot implemented

Limits. Sanitization reduces what the provider learns; it is not anonymization, and the task itself or your writing style can still identify you. Tor hides your IP address from the provider, not your request, and does not defeat an adversary watching most of the network. The zkAPI integration uses the upstream Sepolia staging deployment: development proving keys, no audit, test ETH only. PARANOID is not affiliated with Vitalik Buterin, the Ethereum Foundation or Open Anonymity.