Security & Data Flow
Your source code never leaves the machine in readable form.
Encrypted diffs if you're using an IDE, and project meta-data if you're using Claude Code.
VSCode, JetBrains, Emacs, Vim. Reads your working tree.
Local onlyClaude Code, Cursor, etc. Calls our MCP tools as it pair-programs with you.
Local onlyComputes diffs from the editor. Identifies decisions and extracts intents from MCP calls. Encrypts code blocks with a repo-derived key the server never sees.
Encrypts hereSees encrypted blobs as opaque bytes. Routes intent and decision data to your team over our secure API.
Zero-knowledge for diffsEncrypted code blobs in Google Cloud Storage. Intent/decision metadata in MongoDB Atlas. Both hosted in the United States.
Encrypted at restClient-side encryption boundary (zero-knowledge) · TLS in transit
Every category of data, audited.
| Data | Encrypted client-side? | Stored where |
|---|---|---|
| Source code, diffs Zero-knowledge | ✓ AES-256-GCM | Google Cloud Storage encrypted blob |
| Intent code blocks Zero-knowledge snippet, code content |
✓ AES-256-GCM | MongoDB Atlas encrypted field |
| Intent & decision management information titles, descriptions, scope, constraints, rationale |
— TLS in transit | MongoDB Atlas |
| Account info email, profile, billing metadata |
— TLS in transit | MongoDB Atlas |
| Payment details | — TLS in transit | Stripe we never see card numbers |
| LLM calls (Translation add-on) | — TLS in transit | Not retained after response never seen if you BYOK |
| Local cache ~/.kawa-code/.storage.caw |
✓ locally generated key | Your machine only |
Intent and decision management information — titles, descriptions, scope, constraints, rationale — is shared with your team via our secure API.
What our API enables for your team:
For teams that need every byte to stay on their own infrastructure, the entire ecosystem can be installed on-premise, fully air-gapped.
What we protect against, and what we don't.
Specifics of the client-side encryption boundary.
Cipher
AES-256-GCM
Authenticated encryption with a 128-bit auth tag.
Key derivation
PBKDF2-HMAC-SHA256
600,000 iterations, 32-byte output.
IV / Nonce
12 random bytes per message
Generated fresh from the OS CSPRNG on each encryption.
In transit
TLS 1.2+
All API and storage connections.
Local cache
Locally generated key
Encrypts ~/.kawa-code/.storage.caw at rest. Stays on your machine.
The entire ecosystem can be installed inside your own network — for complete security.
Google Cloud Platform, dual-region in the United States. Cloudflare for DNS and edge.
MongoDB Atlas, hosted in a private VPC with no public internet exposure. Encryption at rest, automated backups, and IP allowlisting on the operator path. Intent code blocks are encrypted client-side before they ever reach the database — even with full DB access, our team cannot read them.
Google Cloud Storage. Encrypted blobs only — we cannot decrypt them.
Our internal processes are designed around SOC 2 controls. We have not yet completed a third-party audit; the report is on the roadmap. We will update this page when certification is in hand.
For teams that need every byte to stay on-prem, the entire ecosystem installs on your own infrastructure — air-gapped if you need it — and the hosted API is removed entirely.
No. The encryption keys for diffs and code blocks are derived on your machine from inputs we never receive. Even with full database and storage access, our team cannot reconstruct your code.
Yes — and it's the same exposure as any AI coding assistant. When AI conflict resolution runs, your changes plus the overlapping peer changes (reconstructed locally on your machine from the encrypted peer diffs) are sent to the model provider — Anthropic by default — so it can judge and merge them. This does not weaken our zero-knowledge guarantee: the Kawa Code server still never holds your key and never sees code. Teams that require code to never leave the machine can run the resolver against a local model via Ollama.
No. The desktop app reads your local working tree only. Our GitHub App holds Metadata: read-only, which cannot read repository contents, and the server never clones anything.
All hosted infrastructure is in the United States.
EU and Japan data residency is on the roadmap; reach out if you need it sooner.
Yes. Deleting your account purges your account record, intent and decision management information, and the encrypted blobs associated with your repositories. See the Privacy Policy for retention details.
Found something? We want to know.
Email
mark@kawacode.ai