Reference

Privacy & your data

Deska is local-first by design. Your code, terminals and layouts stay on your machine, and data only leaves it when you choose a feature that needs it.

Local-first by design

Your day-to-day work stays on your device. Workspace files, repository contents, terminal state, panel layouts, snapshots, settings and locally stored AI session files are processed and kept locally. Using the desktop app does not, on its own, send your workspace anywhere.

NoteThere is no automatic cloud sync of your workspaces. The one exception is deliberate: when you turn on Remote Access, the names and paths of your workspaces are advertised live to your connected devices over the relay so your phone can list them. Nothing is persisted server-side, and the files themselves never leave. If a real sync feature is ever added, you will be told what it involves and asked before it applies.

Where your local data lives

Deska keeps its own state in one per-user application data folder:

  • macOS: ~/Library/Application Support/Deska/
  • Windows: %APPDATA%\Deska\
  • Linux: ~/.config/Deska/

Inside it you will find, among other things:

  • config.json, your settings, and keybindings.json, your shortcuts. Both are plain files you can hand-edit; Deska watches them and picks up changes.
  • license.json and device.json, the cached entitlement for your account and this install’s identity.
  • byok.json, your provider API keys, encrypted with the operating system keychain where one is available. Without one (some Linux setups) the keys are stored obfuscated but not encrypted, and Deska logs a warning so you know.
  • The note vault (deska-notes/ by default, or wherever you pointed it), workspace session bundles, canvas snapshots, agent session files and browser panel partitions.

None of this is your project code, which stays wherever you cloned it. For what is safe to back up or delete, see Data & storage.

When data leaves your device

Data is sent off your machine only when you use a feature that requires it:

  • Signing in: your email and an authentication identifier.
  • Billing: handled by Stripe; Deska never stores full card numbers.
  • The assistant and coding agents: Dex and agent threads run on your own coding agent or your own provider keys, so prompts and workspace context flow from your machine to the provider you configured, not through Deska’s servers. The one managed flow left is voice: audio goes to Deska’s servers for transcription and text goes there for spoken replies, on Deska’s keys, metered in minutes.
  • Remote access: while a phone or browser is attached, the terminal output, agent transcripts and diffs you are looking at travel over the encrypted relay so they can be drawn on the other screen. Nothing streams when nothing is attached, and a Dex turn started on the phone runs on your desktop with its normal workspace context. Turning Remote Access off stops all of it.
  • Push notifications: when you enable them, the notification payload carries identifiers for the computer and thread that raised the event, plus a short title, so your phone can show it and deep-link back. Delivery goes through the Expo push service.
  • Crash reports and analytics: unless you switch them off (see below).
  • Update checks and any external browser panel you open.

Bringing your own API keys is part of every paid plan, and the assistant’s engine is a coding agent running on your machine, so direct-to-provider is the norm for everyone: AI requests go straight from your machine to the provider you configured and never pass through Deska. Voice on a subscription is the exception; it stays managed on Deska’s keys.

Crash reports & analytics

Two toggles live in Settings → Privacy. Both are on by default, and you can turn either one off at any time. Crash reports send anonymized error details to help fix bugs, scrubbed of home-directory paths and common secrets first. Anonymous usage data reports things like your app version, OS and product events (installs, updates), never file paths, project names or personal data.

The service behind crash reports is Sentry. Anonymous usage data goes to Deska’s own analytics endpoint and to Mixpanel. With both toggles off, none of them receives anything from your install.

Devices you can revoke

Every install that signs in becomes a registered device on your account, listed on your account dashboard with when it was last seen. Each has a Revoke button, and revoking cuts that device’s API access within one refresh interval, a matter of minutes rather than instantly: it can no longer reach your computers, attach to a terminal or start an assistant turn, and it must sign in again from scratch. People you shared a computer with are revoked the same way, from the members list in desktop Settings. Both are the right first move if a phone goes missing.

The full policy

This page is a plain-language summary. For the complete, authoritative details, including legal bases, retention and your rights, read the Privacy Policy.

💡 Ideas+🐛 BugsSuggest a feature or report a bug