Local-first

Your projects, threads and settings live on your machine. KalCode is designed so that nothing leaves it unless you choose to send it.

Describes the design Details may change before release.

What stays on your device

Projects, threads, events, settings and memory are stored locally in a single SQLite database in your operating system's app-data directory. The database uses write-ahead logging and versioned migrations, and a backup is written before any migration runs.

If a database was created by a newer version of KalCode, or a migration has been altered, KalCode stops with a clear error instead of silently rewriting your data.

Secrets

API keys and other credentials are stored in your operating system's credential store: Windows Credential Manager, macOS Keychain, or Secret Service on Linux. They are never written to the database, logs, events, or the interface, and they are cleared from memory when no longer needed.

Logs

Logs are structured and stay local. Before anything is written, a redaction pass removes credential patterns such as API keys, authorization headers, private keys, and passwords in URLs.

Voice

KalVoice dictation, in development, uses a speech-recognition model that runs on your computer. Audio is captured into memory, transcribed on the device, and discarded; it is never stored or uploaded. The model is downloaded only after you agree, and is kept in KalCode's data folder.

What leaves your device

Current development builds send no telemetry and no user data off your device. When you run a provider, that provider's own CLI talks to its service under your account, exactly as it does when you use it directly. KalVoice requests that need reasoning go the same way, to the provider you chose.

Accounts and billing will arrive with the paid plans at launch. They will be documented here before they ship.