Privacy Policy
Last updated: November 11, 2026
Nonet ("the app") is a macOS app provided by Takanari Okazaki ("we"). The app is designed not to collect your information.
1. What we do not collect
- The app contains no analytics, telemetry, crash-report uploads or advertising.
- There is no account. The app never sends your information to our servers.
2. What stays on your Mac
- Settings (profiles, buttons, actions and preferences) are stored in
~/Library/Application Support/Nonet/configuration.json. Each save keeps the previous version asconfiguration.backup.jsonin the same folder. If a settings file cannot be read, the app keeps it in the same folder, renamedconfiguration.corrupt-<date-time>.json, instead of overwriting it. If it can be read but saving would lose something in it (such as a kind of button or a setting this version does not know), the app keeps a copy of the original file asconfiguration.lossy-<date-time>.json; for a file written by another version of the app, it keeps a copy asconfiguration.v<number>.json(the number is the version of the file format), in the same folder. These files hold the same information as your settings (including any scripts), and the app never deletes them, so they stay until you delete the~/Library/Application Support/Nonet/folder. While you change your settings (at most once an hour) and before you delete a profile or a page, import profiles and similar changes, the app also saves a copy of your settings in~/Library/Application Support/Nonet/Backups/and keeps the newest 10 (used by “Restore an Earlier Version…”). - Trial records (the start date, the last check time and how much time has passed since the trial started) are stored in the app's preferences (
~/Library/Preferences/com.iam74k4.Nonet.plist) and in~/Library/Application Support/Nonet/. The release version also stores them as an item in your login keychain (com.iam74k4.Nonet.license.trial), and copies the same record to a second item named with a hash (64 hexadecimal digits) made from this Mac's identifier (IOPlatformUUID) and the app's ID. The identifier itself is never stored or sent. If no trial record is left anywhere, the app uses the creation dates of the folders~/Library/Application Support/Nonet/Backups/and~/Library/Caches/com.iam74k4.Nonet/in place of the trial start date (it only reads these dates). All of this is used only to count the trial period correctly. The keychain items are not synced with iCloud Keychain. - License key is stored in the app's preferences. A license key contains the name and email address used for the purchase.
- Other preferences: the position and size of the settings window, the update-check settings and last check time (Sparkle), the dates the app last reminded you about the trial, and whether you chose not to see the permission reminder at launch (“Don't show again”) are stored in the app's preferences.
- Temporary files: when a script runs in Terminal, the app writes the script and the information passed to it (such as the selected text) to a temporary file (
nonet-….command) in your Mac's temporary folder ($TMPDIR/Nonet/Terminal/). When a shortcut is set to receive the selected text, the app writes that text to a temporary file (input-….txt) in$TMPDIR/Nonet/Shortcuts/. Only you can read these files. The Terminal file is deleted when the script starts; if it is never opened, the app deletes it after 5 minutes or the next time the app opens. The shortcut file is deleted when the shortcut finishes. When the app quits, it creates an empty marker file (Nonet-quitting-<number>) in your Mac's temporary folder, so that a copy of the app opened right afterwards knows to wait.
When it creates your first settings, the app reads the list of apps in your Dock and uses it to order the launcher. Each time it opens, the app runs zsh once as a login shell (including ~/.zshrc) to find your PATH and whether the claude command exists, so that scripts run as they do in Terminal. Both are used only in memory or in your settings.
None of this leaves your Mac. Deleting these files and the two keychain items (com.iam74k4.Nonet.license.trial and the one named with 64 hexadecimal digits, with Keychain Access) when you uninstall the app removes them completely (see the user guide). “Uninstall Nonet…” on the Nonet tab of Settings moves the app, its settings folder and its caches to the Trash, but keeps your license key and trial records (in the preferences and the keychain), so the app works again without registering if you reinstall it.
When you use “Contact Support…” in the app, the email it creates contains only the versions of the app and macOS, your Mac model and your keyboard type. You decide whether to send it. It never includes your license key or your settings.
3. How the Accessibility permission is used
The app uses the macOS Accessibility permission only to:
- Keep clicks, scrolling and gestures from reaching the front app while the nine buttons are open (the pointer keeps moving as usual, and the front app still sees it move). The pointer event tap for this is enabled only while the nine buttons are open and for a short clean-up right after they close (to drop a late click, and the release of a click or the rest of a scroll that it held back while they were open); at all other times, pointer events never pass through the app. If you use a mouse or scroll wheel while the buttons are open and no finger is on the trackpad, the app passes that event to the front app unchanged and closes the buttons.
- Notice that a key was pressed while the nine buttons are open, so that it can close them without running anything. The keyboard event tap is enabled only while the nine buttons are open; at all other times, keyboard events never pass through the app. The key still reaches the front app unchanged. What you type is never recorded, stored or sent.
- Send the keystrokes you configured to the front app and choose menu items. Before sending a menu item's keyboard shortcut, the app reads that item's shortcut in the app's menus to check that they match.
- Read and change the position and size of the front app's window when a Place on Screen action runs. While that button is highlighted among the nine buttons, the app reads the position and size to outline the target area on screen. What it reads is used only at that moment and is never stored or sent.
- Read the menus of running apps in the settings window.
- Just before an action you configured runs, read the information passed to it. For a script, the app always reads the location of the document open in the front window, and reads the selected text only when the script contains the variable
NONET_SELECTED_TEXT. For a shortcut, it reads the selected text only when “Pass selected text as input” is on; for an AI action, it always reads the selected text. In apps whose selection cannot be read directly, the app copies it with ⌘C through the clipboard and then restores the clipboard. What it reads is passed only to that action and is never stored or sent.
When the app uses the clipboard this way, it never reads or puts back a password copied by a password manager (content marked org.nspasteboard.ConcealedType). If macOS (15.4 or later) is set to ask before apps read the clipboard, the app follows your answer, and if reading is denied, it does not read the clipboard.
Finger positions on the trackpad are read through macOS's multi-touch support (reading them needs no permission) and used only in memory to recognize the slide that opens the nine buttons (a finger sliding down from the top edge). They are never stored or sent.
4. Automation (Apple Events)
The app sends Apple Events to other apps in only two cases. macOS asks for your permission to control that app the first time.
- When a script contains the variable
NONET_BROWSER_URLand the front app is a supported browser (Safari, Google Chrome, Arc, Microsoft Edge or Brave), the app asks that browser for the URL of the page it shows, just before the script runs. The URL is passed only to that script and is never stored or sent. - When a File action runs and the front app is Finder, the app asks Finder for the location of the files you have selected, and asks Finder to do what you configured (move to the Trash or duplicate; for rename, it sends the Return key to start Finder's rename). It reads only the location (name and folder) of each file, never what is inside it. The locations are used only for that operation and are never stored or sent. Moving to the Trash never deletes files for good.
Running a script in Terminal does not use Apple Events; the app only opens a temporary file in Terminal.
5. Actions you configure
Actions you configure, such as scripts, shortcuts and URLs, run on your Mac with your privileges. What information they handle and where they send it depends on what they do.
When you import profiles, the app first lists any Script, Keystrokes, Menu Item and AI buttons, any File buttons that move to the Trash, rename or duplicate the files selected in Finder, and any buttons that open a file on your Mac, together with everything they do (every line of the script, the keys, the menu item and its keyboard shortcut, the AI prompt and output, the file operation, or the location of the file), and asks you to confirm. Buttons that press a key that works like Return (or a key with ⌃) and lines with commands that need care (such as curl, | sh and rm -rf) are highlighted, and you can't import until you scroll to the end. Check profiles you receive from someone else, and import them only if you trust them.
AI actions use Apple's Foundation Models framework and are processed by the on-device language model. The app never sends your selected text anywhere. To replace the selected text with the result, the app puts the result on the clipboard for a moment, pastes it with ⌘V and then restores the clipboard. It marks the result org.nspasteboard.TransientType so that clipboard history apps do not keep it.
6. Network
The app uses the network only:
- To check for updates: using the open-source Sparkle framework, it periodically fetches update information and new versions from our distribution server over HTTPS. The server receives the information that comes with any connection, such as your IP address and a User-Agent that includes the app and macOS versions. Sparkle's system profiling is not used. The distribution server (Cloudflare) keeps a record of these requests, including that information, for up to 7 days to troubleshoot problems (see “8. Website”).
- To open the purchase page: choosing "Buy Nonet" opens the purchase page in your default browser. The purchase is governed by the store's privacy policy.
When you choose a page of the website, such as the user guide or this privacy policy, it opens in your default browser (see “8. Website”).
License keys are verified on your Mac without using the network. Refunded licenses and keys that were made public are checked against a list of deactivated licenses (SHA-256 hashes of license IDs) built into the app and updated with new versions, so this check doesn't use the network either. Opening the link in your purchase email (nonet://register) or a .nonetlicense file only passes the key to the app and doesn't use the network.
7. Purchase information
The store handles checkout and payment; we never receive your card details. To issue license keys and provide support, we receive the buyer's name, email address and order details from the store. We use them only to issue and reissue license keys, answer your questions and keep records required by law. We never sell them or use them for advertising.
Purchase records are kept for the period the law requires and then deleted. To see, correct or delete your information, contact us. Information held by the store is handled under the privacy policy of the store (Paddle).
8. Website
The website uses no cookies, analytics, or external fonts. The only page that loads an external script is the purchase page below. The website and the app's updates are served by Cloudflare. Requests for the home page, updates and downloads are logged, with the time, URL, IP address, User-Agent and approximate location, and kept for up to 7 days (Cloudflare Workers Logs), only to troubleshoot problems. Cloudflare may also keep standard access logs.
The purchase page (the page that opens when you choose Buy) loads a script from the store (Paddle) to open the checkout. Information you enter in the checkout, and information handled by Paddle's script and checkout (including cookies), is handled under Paddle's privacy policy.
If you close the language suggestion (such as “日本語のページもあります”), the site remembers only that you closed it, in your browser's localStorage, so it doesn't show again. This stays in your browser and is never sent anywhere.
9. Changes
When this policy changes, we update this page and its "Last updated" date.
10. Contact
Takanari Okazaki (support@astlog.dev)