Skip to content

Reference

Privacy & your data

Local workspace storage, provider requests, managed voice, remote sessions and optional Cloud computers have separate data boundaries.

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 workspace cloud sync. With Remote Access, connected clients receive workspace names, paths, file contents, terminal output and agent transcripts needed by the features you open. Traffic crosses our TLS relay. A connection between an updated Deska app and an updated computer is sealed end to end: the relay carries it but cannot read it, and API keys only ever travel that way. Connections from apps that have not updated yet are not sealed, so the relay operator could read them. A project you clone or upload to Deska Cloud is stored on infrastructure we operate and can access.

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, only if an earlier version stored provider API keys there. They stay encrypted with the operating system keychain where one is available. Without one (some Linux setups) they are stored obfuscated but not encrypted, and Deska logs a warning so you know.
  • db-connections.json, the connections saved in the Database panel. A saved password is there only as ciphertext from the operating system’s encrypted store; without one, it is held in memory for that run and never written to disk.
  • The note vault (deska-notes/ by default, or the folder you moved it to), workspace session bundles, canvas snapshots, agent session files and browser panel partitions.
  • panels/, the community panels installed on this computer, unpacked, and the list of folders you loaded to build one.

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

These features send data off the host, including enabled background services:

  • 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, 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. On Cloud accounts, Dex also has an account-free hosted model as its last fallback when configured agent routes fail. Provider context and tool output can include code.
  • Panel summaries and thread titles: while Background work is on in Settings, under Dex, the recent content of a terminal or thread that settles goes to the agent that answers Dex, the same way a Dex question does. Turning it off stops that; a summary you request still sends that one panel.
  • Dex’s panel index: its model downloads once, by itself, the first time Deska opens: from Deska’s own server, or from Hugging Face when ours cannot hand it out. That is the only request it makes, and it carries nothing of yours. After that it reads your panels and tasks on this computer and keeps what it read in a local index next to Deska’s other data. None of it is sent anywhere by the index; the passages that match a question go to the agent that answers Dex, the same way a panel Dex reads does. While the index is on, the last lines of the panel you are looking at also go to that agent with every Dex turn, under the same rules. Keys, tokens and passwords in the formats Deska recognizes, and your home folder’s name, are removed before anything is indexed, with the rules Dex uses when it reads a panel. A web page’s text reaches Dex only when Dex reads that page. Remove in Settings, under Dex, deletes the model and the index.
  • Remote access: while a phone or browser is attached, the terminal output, file contents, agent transcripts and diffs you are looking at travel over the TLS 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.
  • Community panels: browsing them asks deska.dev for the list, and installing one downloads its package from deska.dev. Your account keeps the list of panels you installed and the permissions you allowed or turned off, so your other computers can install the same ones. You can see that list, and remove a panel from it, under Installed panels on your account page. A panel reaches only the sites it lists, which you see before installing it, and what it saves stays on this computer. Deska also asks deska.dev for withdrawn panels when it starts and every six hours. See Community panels.
  • Sign in with Deska: a panel that asks to sign you in gets, only after you allow it, a token from deska.dev with an id that is yours for that panel only, and your name and email only if you tick them. The panel sends it to its author’s server. deska.dev keeps which panels your account signed in to, listed under Panels you signed in to on your account page, and when you stop one there or in Deska, or delete your account, it tells that panel’s server with a signed message carrying only that id.
  • Panel actions: when you connect a community panel to a task, what that task’s agent and the panel hand each other moves between them on this computer, and nothing of it reaches deska.dev. A panel that works with tasks cannot reach the internet, in any version: Deska stops every request it makes beyond its own files. The one thing that can still leave is a site name the panel writes into a page hint: your DNS resolver can see that name, and Chromium may open a connection to that site that carries nothing else. What a task reads from a panel goes on to the task’s agent provider like the rest of its conversation. See Panels connected to a task.
  • Marketplace profiles: saving a profile sends the public handle, display name, bio and optional website you choose to deska.dev. The profile shows your published bundles, panels and themes, without exposing your email, installed items or drafts. It shows a photo you upload in Edit profile: deska.dev crops it to a square, removes its camera details (location included) and keeps it in its own private storage until you replace or remove it. New profiles start with a default picture; existing photo choices are kept; Remove photo shows your account’s default picture instead. deska.dev serves every photo from its own address, so visitors never ask Google, GitHub or Apple for it. If you add your accounts on X, Instagram, TikTok or GitHub, only their usernames are saved and shown, each linked to your page on that network; deska.dev never visits them. New profiles are public, with tokens private; existing private profiles keep their visibility. You can hide your profile in Edit profile. See Discover, People and profiles.
  • Token activity: while you are signed in, Deska reads the Claude Code, Codex, OpenCode and Antigravity logs on your computer (SQLite files are read from private copies). From the next desktop update it also reads the Pi, Hermes, Vibe and Kimi logs and counts Deska’s own background work. It sends your account, for each day, agent and model, how many tokens were used: new input, output, and the cached input written and read, with the model’s name, whether fast mode was on and how long the prompts were, in four size bands, plus a log-retention reference date. Some sources have partial history or approximate session attribution. Only those numbers, that date and recorded usage times for the rolling leaderboard leave the computer, never prompts, code, paths or projects. Your profile shows new input plus output as a year of activity, which models you used each day and over the year, and what all of the tokens are worth at API list prices. These stay private until you choose Show tokens in People or enable activity in Edit profile. Hide tokens removes your figures, models and leaderboard entry without hiding your public profile. To stop sending them, turn off Share token activity with your account in the app’s Settings. This also stops new local usage captures; response identities stay on your computer.
  • Crash reports and analytics: unless you switch them off (see below).
  • Problem reports you send: only when you press Send report in Report a problem, with everything shown to you first (see below).
  • Update checks and any external browser panel you open.

The assistant’s engine is a coding agent running on your machine, on every plan, 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. Send crash reports sends anonymized error details to help fix bugs, scrubbed of home-directory paths and common secrets first. Send anonymous usage data reports your app version, OS and which features you use, such as installs, updates, opening a panel or starting a task, never file paths, project names or the contents of your work. Signed out, Mixpanel events carry only a random install id. While you are signed in they are tied to your account id, and your email address and plan are kept on your Mixpanel profile, so your desktop and your phone count as one person. Deska’s own analytics endpoint receives no account information.

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 unless you send a problem report yourself. The toggles do not cover community panels: browsing, installing and checking them talk to deska.dev as described above.

A problem report (Help, Report a Problem) also goes to Sentry, and only when you press Send report, even with crash reports off. It carries what you wrote, the Diagnostics facts, your plan, panel counts, the end of the app’s log and a screenshot of the window, after home folders, links, emails, keys and tokens are cleaned out. You can switch off the log and the screenshot and read the full text before sending; your email goes only if you choose it. Where an organization disables telemetry, reports can only be saved to a file. Report a problem.

Discord status

While Deska is open and the Discord app runs on the same computer, your Discord status shows Playing Deska: the Deska logo, how long Deska has been open, how many agents are working on that computer, and a Get Deska button for the people who see it. Deska hands this to the Discord app on your computer. It never goes through Deska’s servers, and Discord shows it to whoever can see your profile.

It is on by default. Turn it off with Show Deska on Discord in Settings → Privacy → Discord and the status clears at once. The name of the project in front shows only if you turn on Show the project name, which is off by default. Nothing else is shown: no files, paths, tasks or what your agents are doing. Discord’s own Activity Privacy setting can hide it too.

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.

Deleting your account

To delete your Deska account, open Delete your Deska account. It writes the request to us by email, lists what is deleted (the account, its computers list, Deska Cloud computers and their disks, push tokens) and what stays (everything on your own devices, and billing records the law makes us keep). We finish within 30 days.

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.