Privacy
Lightspot works on your Mac and keeps what it learns there. This page lists every source it reads, everything it stores, the two network requests it makes and when, and the commands it runs, as of version 1.2.0.
Lightspot guide
In short
- No file index: Lightspot never crawls your disk.
- No account, no analytics, no crash reporting, no ads.
- Two network requests: a daily check for a new release on GitHub, which you can turn off, and your public IP address from
api.ipify.org, only when you ask for it. - Clipboard history stays in memory and is gone when Lightspot quits.
- Search history keeps what you opened, not what you copied. Everything Lightspot stores is in its preferences and one folder, which the uninstaller deletes.
What Lightspot reads
| Source | What exactly | When |
|---|---|---|
| Applications | /Applications, ~/Applications, /System/Applications (+ Utilities), /System/Library/CoreServices/Applications: app names, icons, bundle IDs and categories | At launch and when the panel opens, at most once a minute |
| zsh history | The last 2 MB of your history file | When the panel opens and the file changed |
| Editor recent projects | The recent-folder lists of VS Code, Cursor, Zed, JetBrains IDEs, Android Studio and Sublime Text | When the panel opens and a list changed |
| Default browser | Bookmarks, the last 3 or 7 days of history (or none), and open tab titles and addresses | In the background while you search |
| Clipboard | Text you copy | Every 0.6 seconds, by checking whether the clipboard changed |
| Finder | The folder of the front Finder window | When the Terminal in Finder Folder action matches your query |
| Processes and ports | Process names, CPU and memory use; processes listening on TCP ports | When the panel opens, and while you type a kill query |
| Hardware | Load, memory, disk space, battery, uptime, network addresses | Only for sys and IP queries |
| System settings state | Spotlight’s shortcut, process and indexing state; /etc/pam.d/sudo_local for Touch ID | When the panel or menu opens, or the related action matches |
Everything read is kept in memory for searching and is not copied anywhere. Browser databases are opened read-only where they are. Only the default browser is read; bookmarks and history of your other browsers are left alone.
What Lightspot stores
Lightspot writes its settings to its preferences (com.lightspot.app); the full list of keys is on the settings page. Apart from your settings, that is:
- Your custom commands, pinned commands and the five text snippets.
- Up to 30 apps you opened through Lightspot, for the recent-apps row.
- Search history: for each result you open, the text you typed, the result’s title and subtitle, what it does and when, up to 200 entries. Results that only copy something are treated differently: clipboard entries, calculator answers, developer tools and kill actions are not recorded at all, and other copy results (snippets, the hardware readout) only count towards ranking, without their text. Older history saved by earlier versions is cleaned the same way. Clear Search History in the menu deletes it.
- The date of the last update check, and a version you chose to skip.
Outside its preferences, Lightspot keeps a small lock file in ~/Library/Application Support/Lightspot, so that only one copy runs, and while an update installs it unpacks the download in a temporary folder that it deletes afterwards.
The clipboard history itself is never written to disk. Lightspot skips copies that password managers mark as concealed (org.nspasteboard.ConcealedType, com.agilebits.onepassword and similar types).
Network
Lightspot makes two kinds of requests, both over HTTPS:
- Update check: a request to
api.github.com/repos/openhoangnc/mac-lightspot/releases/latest, without any account, whose user agent saysLightspot/<version>and the project’s URL. It runs five seconds after launch and when you open the menu, only if Automatically Check for Updates is on (the default) and the last successful check was more than 24 hours ago; a failed check is retried at the next launch or menu open. Check for Updates… runs it on demand. When you choose Install and Relaunch, Lightspot downloads the release’sLightspot.zip, only from GitHub addresses. - Public IP: a request to
https://api.ipify.org, sent only when your query clearly asks for the IP address (ip,my ip,public ip,ipv4) or you press ↵ on the IP Address row. It uses a session that stores nothing on disk, waits at most 3 seconds, and the answer is kept in memory for 15 minutes.
Nothing else goes out. Web searches, search prefixes, bookmarks and URL commands open in your browser, which then connects as usual. The installer downloads the app from GitHub and sends nothing else.
Commands Lightspot runs
Actions run only when you press ↵ (or ⌘↵, ⌥↵) or choose a menu item. These are the programs involved, for read-only checks and for actions:
| For | Runs |
|---|---|
| Checking Apple Spotlight’s state | launchctl print-disabled, mdutil -s / |
| Changing Apple Spotlight | activateSettings -u, launchctl enable/disable, killall Spotlight, mdutil -a -i (admin) |
| Reading Zed’s recent projects | sqlite3, read-only |
| kill queries | ps -axo pid,pcpu,rss,comm and lsof -iTCP -sTCP:LISTEN |
| Open tabs and the Finder folder | AppleScript sent to your browser and to Finder |
| Quick actions | osascript, pmset, screencapture, open, and for admin actions sudo |
| Installing an update | ditto, xattr, codesign, open (admin only if the app folder is not writable) |
| Custom commands | Whatever you wrote in them, with /bin/sh, osascript or your terminal |
Admin commands run through sudo with Touch ID when you enabled Touch ID for sudo, otherwise through the macOS administrator password dialog. Lightspot never stores your password.
Permissions macOS may ask for
- Automation: to control Finder (Terminal in Finder Folder, Empty Trash, New Finder Window, Show Desktop), System Events (Lock Screen, Restart, Shut Down, Toggle Dark Mode, Force Quit), your browser (reading open tabs) and Terminal or iTerm2 (running commands). macOS asks once per app; you can change the answer in System Settings → Privacy & Security → Automation.
- Administrator: for switching Spotlight indexing, Flush DNS Cache, Purge Inactive Memory, Toggle Touch ID for Sudo, killing processes of other users, and installing an update into a folder your account cannot write to.
The global shortcut does not need Accessibility permission. The source code is on GitHub if you want to check any of this yourself.