Privacy & Data Egress
Coderae is local-first. With the default local model, your prompts and code never leave your machine, and telemetry is off unless you opt in. Data only leaves the machine when you opt into a feature that needs an external service — and then only the data that feature requires.
The table below summarizes every outbound path: what it sends, where, and what gates it.
| Feature | What is sent | To whom | Gated by |
|---|---|---|---|
| Chat with a local model (LM Studio / Coderae) | Nothing leaves your machine — inference runs locally. | localhost | Default. No setup required. |
| Chat with a cloud provider (OpenAI / Anthropic) | Prompts, conversation history, tool results, and any file/code content read into the session (bounded to the context window). | OpenAI / Anthropic | Off until you add an API key and select the Cloud provider. |
| Web search / web fetch | Only the search query or the URL you ask it to open. No code or history. | Brave (if keyed), else Google News / DuckDuckGo / Startpage; GitHub for code search. | Only when the agent runs the web_search / webfetch tool. |
| Image / TTS / audio | Image generation runs locally by default. Cloud TTS (OpenAI/ElevenLabs) sends the text to speak; transcription can send audio. | Local by default; cloud TTS/STT only if you configure a key. | Cloud paths require an explicit API key. |
| Semantic code indexing (embeddings) | Code/document chunk text to your configured embedding endpoint. | Your local model server by default (localhost). A remote endpoint requires explicit opt-in. | Remote embedding egress is blocked unless you opt in (see below). |
| Research (arXiv / PDF) | Only the search terms / paper ID, or the URL you ask it to fetch. | arXiv (fixed) or the URL you provide. | Only when the research tools are used. |
| License / entitlement check | Your signed license (account id, device id, plan) — never prompts or code. | Coderae's licensing backend. | Periodic while the web server runs. Disable with CODEINATOR_REFRESH_DISABLED=1. |
| Data sharing (opt-in telemetry) | Diagnostics and usage-analytics events, which never include prompts, code or file contents. Content is shared only one item at a time, after you preview and confirm it. | Coderae's backend. | Off by default. Diagnostics, usage analytics and content sharing are each turned on separately, and can be turned off again at any time. |
Local-first by default
A fresh install runs entirely on your machine. Cloud LLM providers are disabled until you add an API key and explicitly select the Cloud provider; with no key, no prompt or code content is sent to any third party. There is no third-party analytics SDK and no automatic crash-report upload. Coderae’s own data sharing is off by default and split into three categories you turn on separately: diagnostics, usage analytics and content. Diagnostics and analytics events never include prompts, code or file contents, and content is shared only one item at a time, after you preview and confirm it.
Controlling external egress
- Cloud LLM: only active when you add a key and select the Cloud host. The app warns you on that switch.
- Web search: reaches external search engines (Brave, or keyless Google News / DuckDuckGo / Startpage) when the agent searches. The Offline security profile blocks all outbound network.
- Remote embeddings: indexing code to a non-local embedding endpoint is blocked unless you opt in by setting
CODEINATOR_ALLOW_REMOTE_EMBEDDINGS=1, and even then egress is only allowed to a destination you configured (your provider URL orCODEINATOR_REMOTE_EMBEDDING_ENDPOINT) — the model cannot redirect it elsewhere. - License refresh: the periodic check sends only your signed license (no prompts/code). Set
CODEINATOR_REFRESH_DISABLED=1to turn it off for offline/air-gapped use.
Logging & local data
Logs are metadata-only by default — timings,
token counts, model names, and tool names, written locally to
~/.codeinator/codeinator.log. Your prompts, model responses, and file
contents are not written to logs at the default level, and nothing in the logs is
uploaded anywhere. Optional forensic debug dumps
(CODEINATOR_DUMP_REQ, CODEINATOR_DUMP_PROMPT,
CODEINATOR_DUMP_RAWOUT) are off by default;
when you turn one on for troubleshooting it writes a private (0600) file
under ~/.codeinator/debug/ that does contain raw content — leave them unset
for normal use.
Chat sessions are stored as local files in your project. When the session cap is reached the oldest are archived, not erased (moved aside on disk, recoverable). Removing a media favorite is a reversible sync marker rather than a hard delete, whereas deleting a knowledge-base entry permanently removes its stored text and embeddings.
This page summarizes product behavior and is not a substitute for a full legal privacy policy. For the engineering-level egress inventory, see the project documentation.