Privacy Policy
This document describes what data Dolaima sends externally, to whom, and what it stores locally.
In one sentence: Dolaima runs no server of its own. It collects no data, sends no analytics, and shows no ads. Your code and your conversations go only to the model provider you configure.
Contents
1. What is sent to your AI provider
Dolaima is a coding agent: its whole job is handing context to a large language model. The
following is sent over HTTP(S) to the LLM provider you name in your configuration
(both baseUrl and apiKey are yours — it can be OpenAI, Anthropic,
DeepSeek, OpenRouter, a local Ollama, or any compatible service):
| What | Notes |
|---|---|
| Your prompts | The text you type in the terminal / Web / GUI / phone app, and the conversation that follows |
| Conversation history | The context accumulated in this session, including compacted summaries |
| File contents it read | The body of files read by tools such as read_file / grep / glob |
| Command output | stdout / stderr returned by tools such as bash |
| Tool results | Return values of every tool, MCP tools included |
| Images / audio | Only when you use view_image / screenshot / transcribe — the corresponding image or audio file |
| System prompt | Generated by the program; includes project structure, Git status, memory, and similar (can be trimmed with --economy / --tiny) |
⚠ The agent decides which files to read. If your working directory contains
sensitive files (keys, certificates, .env), the model may read them and send
them to the provider. Put sensitive files in an ignore rule (the ignore files supported by
FileIgnoreManager), or do not run in a directory that holds sensitive data.
Who receives it is entirely up to your configuration. This project does not relay, proxy or re-upload anything, and it cannot see this content — the API key and the provider account are yours.
2. Other network requests
Apart from your LLM provider, these features reach the network, and only when you (or the model) actually call that tool:
| Feature | Goes to | Sends |
|---|---|---|
web_search | DuckDuckGo, Bing | Your search keywords |
fetch | A URL you or the model specify | An HTTP request (no extra data) |
download | Same as above | Same as above |
transcribe | The Whisper-compatible endpoint you configured | The audio to transcribe |
| MCP servers | Servers you configured in .waycoder/mcp_servers.json | Determined by that MCP protocol |
| Automatic update check | Gitee Releases, GitHub Releases | A single GET, carrying no user data or identifier |
| Model catalogue / connection test | The provider endpoint you configured | List and reachability probes |
3. What is stored locally (including plain-text keys)
On desktop (Windows / Linux / macOS) data lives in ~/.waycoder/ under your user
directory, and in .waycoder/ inside each project:
| Path | Contents |
|---|---|
~/.waycoder/api_keys.json | API keys for each provider, stored in plain text, unencrypted |
~/.waycoder/config.json | Global configuration (may contain keys, depending on how you configure it) |
~/.waycoder/connections.json / providers.json | Connection and provider definitions (base URL, provider name) |
~/.waycoder/sessions/ | Session records (one directory per slot) |
~/.waycoder/kb/ | Knowledge base |
<project>/.waycoder/memory/ | Structured memory (*.md plus a MEMORY.md index) |
<project>/.waycoder/ | Project-level configuration, MCP server list, and similar |
⚠ The keys are plain text: any process or person who can read your user directory can
read them. Rely on operating-system file permissions and disk encryption to protect that
file; do not keep production keys on a shared account or a multi-user machine. A
.env file, if present, may also hold keys — and it is only a first-launch
bootstrap source.
This project never uploads that data to a server of its own (there is no such server).
4. No telemetry
The codebase contains no telemetry, no analytics reporting, no crash reporting and no advertising SDK. The only "report" is the automatic update check you trigger yourself — it reads a version number and sends nothing about your machine.
(The sentry entry you may see in the tool catalogue is an optional MCP
server entry: you supply the token and enable it yourself. It has nothing to do with any
reporting behaviour of this program.)
5. Local privileges and the boundaries around them
The agent runs as your user, so it can execute shell commands, modify files and reach the network. To bound that, the program provides:
- Permission confirmation (Ask / Auto / SmartAuto / YOLO) — which tool calls need your approval each time
- Sandbox boundaries — which directories are writable and how far network access goes
- Work modes — Plan mode is read-only (whitelisted tools), Chat mode uses no tools at all
- Tool allow / deny lists —
WAYCODER_ALLOWED_TOOLS/WAYCODER_DISABLED_TOOLS - Bash safety guard —
BashGuardblocks dangerous commands
⚠ With the default configuration, bash / file writes / file edits ask you
every time; /perm yolo skips confirmation (dangerous: it hands the
machine to the model). Choose according to your own risk appetite.
6. Reducing what leaves your machine, and deleting it
- Use
--economy/--tinyto trim the system prompt and context - Set ignore rules before running in sensitive directories, or switch to Plan mode (read-only)
- Point the provider at a local model (Ollama, for instance): data never leaves the machine
- Clean up
~/.waycoder/sessions/and the project's.waycoder/memory/periodically - Deleting your data (phone): uninstalling the app erases everything in its private
directory (keys, sessions, settings). If you enabled "All files access", the workspace is in
external storage and you need to delete the
waycoder/directory yourself
7. Phone notes (iOS / Android)
Everything above holds for both desktop and phone; a few things differ on the phone:
Where the data lives
All of it stays on the device; none of it is uploaded to us (we have no server to upload to):
| What | Where |
|---|---|
| API keys | api_keys.json in the app's private directory (plain text, not encrypted) |
| Settings, connections, model choice | Config files in the app's private directory |
| Sessions and memory | sessions/, memory/ in the app's private directory |
| Your code and projects | The workspace directory (see below) |
Where the workspace lives: by default inside the app's private directory (not
~/.waycoder/). On Android, if you grant "All files access", the workspace and
config move to a waycoder/ directory in external storage — so other file managers
can see the code you write. On iOS it always stays inside the app's private directory.
Phone permissions we request
| Permission | When we ask | What it is for |
|---|---|---|
| Camera | When you tap "Take photo" | Photograph something for the AI to look at |
| Photos | When you tap "Pick image" | Choose an existing image for the AI to look at |
| Microphone | When you tap "Voice input" | Turn your speech into text |
| All files access (Android only) | When you enable it in system settings | Put the workspace in external storage so other apps can open your code |
We ask only when the feature is used, and declining still leaves everything else working — only that one feature becomes unavailable.
In-app purchase
The phone edition's "Full Edition" is a one-time purchase, and payment is handled by Apple — all we receive is the receipt telling us whether this Apple ID has bought it. We do not get your name, card number or billing address.
Not included on the phone
Automatic updates (the App Store does not allow an app to update itself), command-line installation and winget.
The phone app carries its own copy of this policy with the same wording (Settings → About → Help and privacy), readable offline.
8. Children and age
This software is intended for developers with a basic programming background. It is not directed to children under 13, and we do not knowingly collect information from them. The mobile (App Store) age rating is 13+.
If you are under 18, please use it with a guardian's consent — and make sure you have permission before entering a model provider's API key, since the charges from that key are billed to the account holder.
9. Contact
- Questions and bug reports: github.com/alecksty/waycoder/issues
- Email (privacy questions, takedown / deletion requests, Chinese is fine too): alecksty@163.com
This policy is also the source of the bundled phone version (Settings → About → Help and privacy), and is published at docs/PRIVACY.md.
See also: Terms of Use · Support · Guide · FAQ
Last updated: 2026-09-30
Dolaima