Privacy and data flow
Exactly what stays on your machine and what is sent out, feature by feature and connection by connection.
9xchat keeps your workspace on your own machine. What leaves it depends entirely on which features you use and which model you point them at, so this page states it directly rather than in general terms.
The rule everything follows
Your data lives locally. A request sends whatever that request needs to whoever answers it.
Chats, notes, memories, attachments, and knowledge collections are stored in 9xchat's local database on that device. Nothing is uploaded in the background, and there is no server-side copy of your workspace.
The moment you ask a model something, the material that request needs goes to whoever is answering — and who that is, is your choice.
Who answers, and what that means
| Route | Who receives your request | Who bills you |
|---|---|---|
| Local model (Ollama) | Nobody — it runs on your machine | Nobody |
| Your own API key | That provider, directly | That provider |
| 9xchat credits | The model provider, reached through 123sudo | 123sudo, from your balance |
A local model is the only route where a request leaves nothing at all. Pick it for anything that must not leave the device.
Feature by feature
| Feature | What is sent | To whom | Plan |
|---|---|---|---|
| Sending a message | Your message and the conversation history | Whichever model you selected | Free |
| Context Shield | Reduces the above — history before the anchor is left out | — | Free |
| Attachments | The contents of the file you attached | Whichever model you selected | Free |
| Screen capture | The captured image | Whichever model you selected | Free |
| Notes AI Edit | The text of the note you are editing | Whichever model you selected | Free |
| Code workspace | The contents of the files it reads | Whichever model you selected | Pro |
| Knowledge — indexing | The text of files you add, to build the search index | Your embeddings provider (123sudo by default; Ollama keeps it local) | Free |
| Knowledge — searching | Matching excerpts, added to the conversation | Whichever model you selected | Free |
| Memories | Stored locally; recalled memories are added to the conversation | Whichever model you selected | Pro |
| Live web search | Your search query | The search provider | Pro |
| Read webpage | The URL, and the page is fetched | That website | Pro |
| YouTube transcript | The video URL | YouTube | Free |
| Image generation | Your prompt | The image model you selected | Pro |
| Dictation | Your recorded audio | Your transcription provider (123sudo or OpenAI) | Pro |
| Read out loud | The text being spoken | Your audio provider (123sudo or OpenAI) | Free |
| MCP servers | Whatever the server is given; it runs locally as a process | Depends entirely on that server | Pro |
Three of these leave your machine even when your chat model is local: knowledge indexing, dictation, and read out loud each use their own provider. Set the embeddings provider to Ollama to keep indexing local; audio has no local option today, so avoid dictation and read-aloud if audio must not leave the device.
What 9xchat itself receives
Separately from any model request, the app talks to 123sudo for account reasons:
| Call | What it sends |
|---|---|
| Account and licence check | A machine identifier, a machine name, and your UID |
| Updates | A version check |
| 9xchat credits | The request being billed, since 123sudo is relaying it |
The account check carries no conversation content, no file, and no prompt. If you use your own API key or a local model, 123sudo never sees the request at all — only that your licence is valid.
What Context Shield does and does not do
Context Shield limits how much of a conversation is sent with your next message. Anchor it at a message and everything before that point is left out of the request.
It is a control over what leaves your machine from that point onward. It has no effect on what a provider does with what it does receive — that is governed by the provider's own policy. If data must not reach a provider at all, use a local model rather than a shield.
Where your workspace is stored
Everything lives in 9xchat's local database on that device: chats, notes, memories, attachments, knowledge collections, and your API keys.
- Memories are per-device. A second machine signed in with the same UID starts with none. Handing a chat to another device pairs the two for that conversation; it does not copy memories across.
- API keys and MCP secrets are encrypted locally and substituted in when they are used.
- Settings → Data & Exports backs the workspace up, and exports a conversation as text, PDF, Markdown, HTML, JSON, or an image.
Choosing a private setup
If your requirement is that nothing leaves the machine:
- Install a local model runner and add it under Library → Models.
- Set the knowledge embeddings provider to Ollama.
- Leave web search, read-webpage, and image generation disabled under Library → Tools.
- Do not use dictation or read out loud.
That configuration answers from a local model, indexes locally, and calls out only to check your licence.
Anything a tool returns enters the conversation, and then travels wherever that conversation goes. When judging a tool, read its Safety line in Library → Tools — it states the risk level and the permissions it needs.