Where does my data live?
In one data directory on your machine: --dir, else MENDCODE_V2_DIR, else ~/.mendcode-v2. It holds the SQLite database (sessions, events, drafts, memories, settings), attachment blobs and the keys/ folder. MendCode has no account and no server of its own.
/privacy encrypts all of it at rest, off by default. It protects a copy of the data without its keys, not an attacker who can also read keys/, and it does not cover exports, older backups, files in your repository or the logs of outside engines. See docs/environment-privacy.md and docs/storage.md.
What leaves my machine?
- Model requests. Your prompts, and the files and command output the agent reads, go to the model provider you choose.
- Outside engines. Claude Code, Codex, ACP agents and pi run as their own programs, with their own network calls and session logs.
- Releases. The installer and
mendcode upgraderead GitHub releases. - Tools you allow. Web fetch and search, MCP servers and shell commands reach whatever they are pointed at.
There is no analytics SDK in the source. Traces stay in a local file unless you turn on experimental.openTelemetry and set an endpoint, which must be a loopback address. See docs/tracing.md.
What happens to my keys?
/env keeps credentials in an AES-256-GCM vault with its own key. With the native engine, a known value becomes a marker such as ‹env:NAME› before the model sees a tool result, and a pasted key becomes ‹secret:1›. Encoded or transformed values, screenshots and keys MendCode does not know are not covered. Outside engines do not get this masking. See docs/secrets.md.
Whose terms apply?
MendCode adds no terms of its own beyond the license. Your use of a model is under the terms of the provider or subscription you sign in with, and an outside engine is under the terms of whoever ships it. Read those before you connect an account: MendCode does not change what they allow.
How do I run it safely?
- It acts as you. Commands run with your user's permissions, in your checkout.
- Pick a permission mode.
ask,edits,plan,smartorfull; the daemon applies it before any tool runs. See docs/permissions.md. - Turn on the sandbox for unknown code. Seatbelt on macOS, bubblewrap on Linux, off by default. See docs/sandbox.md.
- Review before you commit.
/changeslists every file the agent touched. - Read scripts before piping them. install.sh and install.ps1 are short.
License and warranty
MIT. You may use, copy, change and distribute it. It is provided "as is", without warranty of any kind, and the authors are not liable for what it does on your machine. The full text is in LICENSE; bundled third-party code keeps its own license, listed in THIRD_PARTY.md in the repository.
What the numbers on this site leave out
- Tiers are not a token diet. A fresh session's first request weighs 3,836, 3,778 and 3,922 tokens in minimalist, balanced and full (o200k_base, 2026-10-31): minimalist offers more tools up front where the others find them on demand.
- One eval. One machine, one model, twelve short tasks in small repositories, against Codex CLI only.
- Lower cache hit. MendCode's fell to 62 % as requests shrank. Uncached input: 0.38 M against 0.46 M.
- One suspect task. bug-boundary failed every run in both harnesses.
- Compaction not compared. MendCode compacts after the turn that crosses the threshold, so a one-prompt test could not measure its resume against Codex or Claude Code.
- Hosted engines. Claude Code, Codex, ACP and pi are tested against fake transports, not real accounts.
- Verified on macOS. Linux and Windows binaries are built and smoke-tested. Computer use is macOS only.
- Start-up is not a session. The --help times show how fast each CLI starts, not how heavy a working session is.
The method behind each figure is next to it on the home page. If you find one that is wrong, open an issue.