Privacy
Last updated November 1, 2026
Deskhands is made by Kekwanu Labs, LLC. This page covers the website at deskhands.dev and the Deskhands app for macOS and Linux. The short version: we keep your email if you give it to us, and the app does not send us your code.
The app
- Your code and your conversations stay with you and your agents. Deskhands runs on your computer. It does not upload your code, prompts, terminal output or files to us.
- Your agents talk to their own providers. Claude Code, Codex, Gemini CLI and the other agents send your prompts and code to their makers (such as Anthropic, OpenAI or Google) under your own accounts, exactly as they do outside Deskhands. Their privacy policies apply to that.
- Updates. The app checks deskhands.dev for new versions of itself, about every 4 hours while it is open. Each check tells us only which version is asking; we count checks per day and per version, which is how we know roughly how many copies are in use. When setting up agents, it looks up their latest versions on the npm registry or Homebrew and runs their makers' own installers.
- First-run milestones. A new copy of the app tells deskhands.dev, once each, when it is opened for the first time, finishes (or skips) day one, hires its first agent, and is still used a week later. Each message holds only which of those it is and the app's version: no identifier, so the messages cannot be tied to each other, to a computer or to you. We count them to see where new people get stuck. Turn it off in Me → Privacy; the first one is sent when the app first opens, before you can.
- Bug reports (only if you choose). When Deskhands notices a bug in itself, it can tell us about it, so we can fix it for everyone. By default it asks first and shows you exactly what would be sent; you can set it to always send or never send in Me → Privacy, and it is off while the milestones box there is unticked. One message per bug and version, holding only: a code for the bug, whether it was a crash or an error on the page, the error message reduced to a fixed list of common error words (such as “Cannot read properties of undefined” or “no such file or directory”), where every other word, number, file path, web address, quoted text, anything key-like and anything not written in plain English letters (a name in any other script, an accented word, an emoji) is replaced by a blank mark, up to eight lines naming Deskhands' own source files and line numbers (no folders), the app version, your system type (macOS or Linux, and the processor family), and the day it is sent. It never contains your code, commands, prompts, terminal output, folder or computer names, or any identifier, so two messages from one computer cannot be tied together, and a bug you write up yourself is never sent. We keep one counted row per bug and version for up to 400 days, with no address, no time of day and no user agent. Only the maintainers of Deskhands, with a secret token, can read them.
- No analytics, no tracking, no account needed. Apart from counting update checks, those milestones and the bug reports you allow, the app has no other analytics or crash reporting, and the free app never asks you to sign in to us.
- Waitlist from the app. If you join the Teams waitlist from inside the app, it sends the same details as the form on this site (below).
- Your account (only for paid plans). The free app needs no account. If you sign in at deskhands.dev, we keep your email address, the computers you link (the name each computer gives itself, when it was linked and last checked in, and the country its link code was asked for from, shown to you when you confirm it) and, if you paid, your membership (Stripe's customer and subscription numbers, and the email you paid with, which is how signing in finds it). Sign-in links, your signed-in browser and each linked computer's key are kept only as one-way hashes, so a copy of our database could not sign anyone in. To limit sign-in emails to a few a day from one place, each request for a link is kept with a keyed one-way hash of the network it came from, never the address itself. A linked app asks deskhands.dev which account it belongs to and whether it has a membership, a few times a day while it is open. You can remove a computer, or sign out of every browser and computer at once, on your account page; to delete your account, email privacy@deskhands.dev.
- Founding members. If you become a founding member, you pay through Stripe, who keep your payment and contact details; we never see your card. We keep the name you type for your plaque, with Stripe's numbers for your checkout, customer and membership and the dates you paid and we decided, so that the end of your membership (or a refund, which ends it) takes the plaque down by itself. Once we have read it and put it up, that name is shown in every copy of Deskhands (the Founding members sign in the lobby) and at deskhands.dev/plaques.json. When a plaque comes down or we do not put it up, we delete the name and keep only those numbers and dates, as a record of the payment. To change or remove your name, email privacy@deskhands.dev.
- News about updates (optional). The first time you open the app, it offers to send you news about Deskhands updates. If you give your email there, the app sends only that email address and its version number, and we email you a link to confirm it: nothing more is sent until you press Confirm on the page it opens. To stop anyone using this to email strangers, we keep a keyed one-way hash of the sending IP address with the request, to limit confirmation emails to a few a day per sender. We use it only for news about Deskhands, a few times a year at most, and never sell or share it. Every news email has an unsubscribe link. Leaving the box empty sends nothing.
- Email delivery. Confirmation and news emails are sent through Resend, which receives the address and the email to deliver it.
The website
- Waitlist. If you join a waitlist we store your email address, the plan you are interested in, your team size, and when you signed up. We use it only to tell you about Deskhands. We never sell or share it.
- Cloudflare. The site, downloads and waitlist run on Cloudflare. Like any web server, Cloudflare processes your IP address and browser details to deliver pages and stop abuse, and keeps short-lived request logs.
- Cloudflare Turnstile. The waitlist forms use Turnstile, a privacy-friendly check that you are not a bot, instead of a CAPTCHA. It runs a short check in your browser; see Cloudflare's Turnstile privacy addendum.
- Anonymous counts. We count page views, clicks on our buttons, tour video plays, FAQ questions opened, and downloads, so we know what is useful and which posts bring people here. Each count records only: what happened, the page, the site that linked you here (just its name, like news.ycombinator.com) or a
?ref=tag in the link, your country as Cloudflare reports it, and your kind of device and browser (like "desktop, macOS, Safari"). Your browser tab remembers where you came from until you close it (session storage, not a cookie). We do not store IP addresses or any identifier, so counts cannot be tied to you. They are kept for 13 months, then deleted. - No cookies of our own, no ads, no third-party trackers. The counting is our own, on our own server. Fonts are served from deskhands.dev itself.
Your choices
To see, correct or delete what we hold about you, or to leave a waitlist or stop the news about updates, email privacy@deskhands.dev. We will delete your details within 30 days, and sooner if we can.
If this page changes in a way that matters, we will update the date above and, if you are on a waitlist, tell you by email.