Privacy Policy
Last updated: October 11, 2026This policy covers the Desmaptic app for iPhone and iPad, Desmaptic Agent for Mac, and the website desmaptic.com.
Who is responsible
Desmaptic is made by Mikhail Zhukov, an individual software developer based in Cyprus (“I”, “me”). For the EU General Data Protection Regulation (GDPR), I am the controller of the personal data described under “What I receive”. You can reach me at support@desmaptic.com.
The short version
- There is no Desmaptic account and no Desmaptic server. The apps contain no analytics, advertising, tracking or crash-reporting code, and no third-party code that collects data.
- Your iPhone or iPad and your Mac talk to each other directly over your local network, through an encrypted connection.
- Your buttons are stored on your devices and, if you use iCloud, in your own private iCloud database. I can’t read it.
- I receive only what you send me by email.
- A few features connect to other services: the Mac agent checks GitHub for updates, and — when you use them — website icons on buttons, an AI assistant you connect and some ready-made widgets reach the services they need. They are described below.
What I receive
- Emails you send me. See “If you email me”.
- Statistics from Apple. Apple tells me how many people download and buy the app. If you chose in your device settings to share analytics with app developers, Apple also gives me crash reports and usage statistics for Desmaptic. These don’t include your name, Apple ID or contact details.
- Download counts from GitHub. GitHub tells me how many times the agent was downloaded, without any information about who downloaded it.
Nothing else reaches me.
Desmaptic for iPhone and iPad
Your buttons. Your profiles, pages and buttons — including the scripts, links, text and pictures in them — are stored on your device. If you are signed in to iCloud, they are also stored in the private database of Desmaptic’s iCloud container in your iCloud account, so that your iPhone and iPad stay in sync. Each saved item also records when it was last changed and the model and iOS version of the device that changed it. iCloud stores these items in encrypted fields; they are end-to-end encrypted only if you turned on Advanced Data Protection for iCloud — otherwise Apple holds the keys. iCloud is provided by Apple under Apple’s privacy policy (apple.com/legal/privacy). I can’t access your iCloud data. Without iCloud, your buttons stay on the device and are included in its backups. The app also keeps, on the device, a short history of earlier versions of your buttons for recovery and, after you sign out of iCloud, changes that hadn’t been uploaded yet, for 30 days. Don’t put passwords or tokens in scripts: keep them on the Mac.
Your Mac. The app finds Desmaptic Agent on your local network (Bonjour) and connects to it directly. The connection is encrypted, and a new Mac is paired with a six-digit code shown on that Mac. Over this connection:
- the app sends the Mac: the type and model of your device, its iOS version and the app’s version, the device name as iOS reports it (usually just “iPhone” or “iPad”), whether your buttons are kept in iCloud, the actions and scripts of your buttons (when you press a button, and the scripts of live widgets while the app is connected), AppleScript you are editing (so the Mac can check it), which page and buttons are on screen and whether the app is in front (so the Mac draws only what you see), your answers to changes and commands waiting for your approval, and your buttons when the Mac asks for them — for example, for an AI assistant you connected;
- the Mac sends the app: its name, the name of the macOS user account and the agent’s version, the apps installed on it (names and icons), which apps are running and which one is in front, when and how often apps were opened (to suggest the apps you use most), the names of your Shortcuts, what your live buttons show, error messages and error output of your scripts, notifications from your scripts, changes and commands proposed for your approval, and the catalog of ready-made widgets (the app doesn’t download it from the internet).
The app keeps the paired Macs (their names, the macOS account names and security keys) in the Keychain of this device only, and keeps the list of the Mac’s apps and Shortcuts and the widget catalog so that it has them before it connects. Use Forget on a paired Mac to remove it.
The app doesn’t use your location, contacts, photos, camera, microphone or Bluetooth.
Website icons. A button that opens a website shows that site’s icon unless you choose another one. The app downloads the icon directly from the website (/apple-touch-icon.png or /favicon.ico, or the secure address the site redirects to), without cookies, and keeps it on the device — also for such buttons that came from your other devices. The website sees your IP address and that its icon was requested. This never happens for local network addresses. Choose another icon if you don’t want this.
App lock. If you turn on the optional app lock, iOS checks your Face ID, Touch ID or passcode. The app only learns whether the check succeeded.
Notifications. Notifications from your scripts come from your Mac over the local connection and are shown by iOS on your device, as are the app’s own notices (for example, about syncing or the connection). Apple’s push service also wakes the app silently when your buttons change on another device.
Purchases. Subscriptions and the lifetime purchase are sold and processed by Apple. The app checks on your device, through Apple’s StoreKit, whether you have Pro. I don’t receive your payment details or your Apple ID.
Ratings. The app counts successful button presses on the device to choose a good moment to show Apple’s rating prompt. The count doesn’t leave the device.
Web pages. Help pages, this policy and the terms open in an in-app browser and come from this website (see “This website”).
Desmaptic Agent for Mac
Running buttons. The agent runs on your Mac and does what your buttons ask: opens apps and links, presses keys, runs Shortcuts, AppleScript and shell scripts. Scripts run with your macOS user account’s permissions and can do anything that account can, including connecting to the internet. Scripts come from you, from ready-made widgets, or from an AI assistant once you accept its changes; I never receive them or what they produce. Ready-made widgets read only what they show or need — for example, the Calendar widget reads your next meetings, and Read Later takes the title and address of your browser’s current tab to save them in Notes or Reminders; this stays on your Mac and your devices. Scripts can keep files in a private folder on your Mac (~/Library/Application Support/Desmaptic/ScriptStorage, available to them as $DESMAPTIC_STORAGE).
Local network. The agent listens on port 9847 of your local network and announces itself there (Bonjour) under your Mac’s name, with a short fingerprint of its security key. Only devices you paired can use it: a new device has to be approved on the Mac, and the code the Mac then shows has to be entered on that device. The agent keeps its pairing key (tied to your Mac’s hardware ID) and the list of paired devices (their names, models, pairing dates and security keys) in your Mac’s login keychain.
Local API. Scripts and AI assistant tools talk to the agent on your Mac only: through 127.0.0.1:9848 (and [::1]:9848) with a token, and through a private socket in your user folder. The token is stored in ~/.desmaptic-mcp-token (readable only by your user account) and changes at least every time the agent starts. Neither the addresses nor the socket can be reached from other computers. Other programs running under your macOS account can use the socket to read your buttons and propose changes; changes still need your Accept on your iPhone or iPad.
macOS permissions. During setup, the agent explains and offers three permissions; you decide whether to allow them:
- Accessibility — to press keys and run system actions;
- Automation — to control other apps (for example Music, Spotify, Notes, System Events);
- Notifications — to show notifications from your scripts on the Mac.
macOS asks for the others only when a feature needs them:
- System Audio Recording — only when a widget asks for sound levels (the ready-made ones ask only while they are on screen). The agent turns the sound your Mac plays into about twenty numbers (levels of bass to treble) in memory; it never records, saves or sends the sound. Capture stops a few seconds after the last request;
- Calendars, Reminders, the Downloads folder, Bluetooth — when a button that needs them runs (for example the Calendar widget, which shows your next meeting).
Scripts run as part of the agent, so a script can make macOS ask for another permission on the agent’s behalf (for example Input Monitoring for Clean Keyboard, or Screen Recording for a script of your own). You can turn any permission off in System Settings › Privacy & Security.
Other built-in actions. Clean Keyboard intercepts key presses for up to a minute to block them; they are thrown away, not recorded. Focus Window reads which app owns each window and where it is, not window titles or contents. Eyedropper uses the macOS color picker and copies the color you pick.
The agent itself doesn’t use your camera, microphone, location, contacts or photos, and doesn’t record your screen.
Updates. About once a day, and when you choose Check for Updates, the agent downloads its update feed from GitHub (github.com). GitHub sees your IP address and the agent’s version. GitHub may set cookies; the agent doesn’t keep them. An update itself is downloaded from GitHub when you choose to install it (or automatically, if you allowed that in the update window). The agent sends no other information about your Mac.
AI assistants (optional)
You can connect an AI assistant — Claude (by Anthropic), ChatGPT or Codex (by OpenAI), or any other app that supports the Model Context Protocol (MCP). Nothing is shared with an AI assistant until you connect one on your Mac. When you click Connect, the agent adds itself to that app’s settings (for other apps, you paste the settings yourself); on request it also installs a skill that teaches the assistant to make widgets. The connection between the assistant app and the agent runs on your Mac.
Through Desmaptic, a connected assistant can read your profiles, pages and buttons (including their scripts), the apps on your Mac, which of them are open and which one is in front, the names of your Shortcuts, the status, reported errors and recent error output of your scripts (with the agent’s tokens and other bearer credentials removed), what your live buttons show, which page is on screen, and whether your connected device shows the iPhone grid or the large-screen grid, with the app’s version. Changes to your buttons happen only after you accept them on your iPhone or iPad. If you turn on “Allow AI to Run Commands” (off by default), the assistant can also propose a command; it runs only after you approve it on your iPhone or iPad, and its output goes back to the assistant.
Whatever the assistant reads is sent to its provider (Anthropic, OpenAI or the maker of the app you connected), under that provider’s terms and privacy policy. I don’t receive it. Desmaptic works fully without an assistant.
Ready-made widgets that use the internet
Some widgets in the Gallery contact internet services from your Mac:
- Internet — while it is on your iPhone’s or iPad’s screen, measures every few seconds how fast the internet answers: it pings Cloudflare (1.1.1.1), then Google (8.8.8.8) if Cloudflare doesn’t answer, and connects to Cloudflare over the web if neither does. Holding it asks Cloudflare for your Mac’s public IP address, shows it and copies it.
- Speed Test — when you tap it, runs macOS’s own speed test (
networkQuality), which measures against Apple’s servers. - Translate — when you tap or hold it, opens Google Translate in your browser with the text you copied and the language to translate into.
- Codex Limits (on the ChatGPT page) — while it is on screen, asks the Codex tool inside your ChatGPT app for your usage limits; Codex gets them from OpenAI with your ChatGPT sign-in.
These services see your IP address — and Google Translate also the copied text. Links in buttons, such as a meeting link in the Calendar widget, open in your browser or app as usual.
Logs
The apps write technical events to Apple’s system log on your device: connection status, the names and local network addresses of connected devices, which app is in front or was opened, file paths and error codes. They don’t write the text of your buttons or notifications or what your scripts print (at most the interpreter named on a script’s first line). Anyone who can read your device’s logs can read these. They stay on your device and are deleted by the system over time; they leave it only if you share a diagnostic report with Apple yourself.
This website
desmaptic.com is hosted on GitHub Pages. GitHub logs visitors’ IP addresses for security. The site reaches you through Cloudflare, which also counts visits for me with Cloudflare Web Analytics: it sees your IP address, the page you open and, from the IP address, your country, and shows me only totals — visits, pages and countries. It sets no cookies and doesn’t follow you to other sites. The site’s earlier address, desktap.app, goes through Cloudflare too: it forwards you to the same page on desmaptic.com. The site itself sets no cookies. The agent’s download link leads to GitHub, which may set its own cookies.
If you email me
Emails to support@desmaptic.com arrive in my iCloud Mail account (Apple). I use them only to answer you and to fix problems you report. I keep the correspondence for up to 24 months after our last exchange and then delete it; you can ask me to delete it sooner. You don’t have to email me, but I need your email address to reply.
Legal bases
- Answering your emails: my legitimate interest in helping you and improving Desmaptic (GDPR Art. 6(1)(f)); when you write about something you bought or want to buy, also the steps needed for that contract (Art. 6(1)(b)).
- Delivering this website and checking for agent updates: my legitimate interest in providing the website securely and keeping the agent up to date with fixes (Art. 6(1)(f)).
You can object at any time to processing based on legitimate interests (Art. 21): write to support@desmaptic.com. To stop the agent’s automatic update checks, run defaults write com.desmaptic.agent SUEnableAutomaticChecks -bool false in Terminal and restart the agent.
I make no automated decisions about you.
Sharing
I don’t sell, rent or share personal data. The providers that help me run Desmaptic — Apple (iCloud Mail, App Store), GitHub (website, downloads and updates) and Cloudflare (delivering the website, counting its visits and forwarding from its earlier address) — process only what is described here, under their own privacy commitments, which protect it at least as well as this policy does. What you send to an AI assistant, a website or another service through your buttons, you share with that service yourself, under its terms.
International transfers
Some of these providers process data outside the European Economic Area:
- Apple (iCloud, iCloud Mail, App Store): Apple Distribution International Limited (Ireland) is responsible for personal data of users in Europe; Apple’s transfers outside it are covered by Standard Contractual Clauses.
- GitHub (website hosting, agent downloads and updates): certified under the EU-U.S. Data Privacy Framework.
- Cloudflare (delivering the website, counting its visits and forwarding from its earlier address): certified under the EU-U.S. Data Privacy Framework.
- An AI assistant you connect: its provider’s terms apply.
Keeping and deleting your data
- On your iPhone or iPad: until you delete it. Deleting the app removes its data from the device; iOS may keep the app’s Keychain items (the pairing key and the names of paired Macs and their macOS accounts) — use Forget on each Mac before deleting the app.
- In iCloud: until you delete it — in Settings › [your name] › iCloud › Manage Account Storage (or Storage), tap Desmaptic, then Delete Data from iCloud.
- On your Mac: deleting Desmaptic Agent leaves its settings and files, including what widgets keep in
$DESMAPTIC_STORAGE(for example your Bluetooth devices or today’s meetings with their call links). To remove them, also delete~/Library/Application Support/Desmaptic,~/.desmaptic-mcp-token,~/Library/Preferences/com.desmaptic.agent.plist,~/Library/Caches/com.desmaptic.agentand~/Library/Caches/com.desmaptic.agent.tmp, the “com.desmaptic.agent.pairing” items in Keychain Access, and — if you connected an assistant — the “desmaptic” entry in its settings, thedesmaptic-widgetsfolder in~/.claude/skillsor~/.codex/skills, and~/.codex/config.toml.before-desktap(the copy of your Codex settings made before the agent first changed them). If you used the agent before it was renamed from Desktap, also delete what it left under the old name:~/Library/Application Support/Desktap,~/.desktap-mcp-token,~/Library/Preferences/com.desktap.agent.plist,~/Library/Caches/com.desktap.agent,~/Library/Caches/com.desktap.agent.tmpand the “com.desktap.agent.channel” items in Keychain Access. Permissions you gave the agent stay in System Settings › Privacy & Security until you remove them. - Emails: up to 24 months after our last exchange.
Your rights
Under the GDPR you can ask me for access to your personal data, and to correct, delete, restrict or transfer it, and object to its processing. Since I hold only emails, requests usually concern those; your data on your devices and in iCloud is in your own hands. Write to support@desmaptic.com — I will answer within one month.
You can also complain to a data protection authority: mine is the Office of the Commissioner for Personal Data Protection of the Republic of Cyprus (dataprotection.gov.cy, commissioner@dataprotection.gov.cy), or the authority where you live or work.
Children
Desmaptic is not directed at children under 13, and the apps collect no personal data from anyone.
Changes
When this policy changes, I update the date at the top of this page. If a change affects how your data is handled, I will also mention it in the release notes of the app or the agent.