Quick Answer: Nanolight is a free, native launcher that works as a Mac Spotlight alternative. It finds apps as you type, does math, shows Google suggestions and results in its own panel, and runs Raycast extensions and script commands. It's built in Zig, weighs about 2 MB, and also runs on Windows and Linux.
Most people never think about the ⌘Space key until Spotlight gets in their way. Maybe it's slow to find the app you open every day, or it keeps showing web results you didn't ask for. Nanolight is a launcher drawn by the nanoui toolkit, and it takes a different route: one small binary, one keystroke, and a panel that stays out of your way until you call it.
What happens when you type into the panel
Nanolight matches the way people actually type. You can type a whole app name, the start of a word, initials, letters in order, or a misspelling. Typing ss opens System Settings, and chorme still finds Chrome. Apps you open often move up the list over time, so the panel gets more accurate the longer you use it.
Here's the part most launchers gloss over. Fuzzy matching is only useful if the ranking is stable. If every keystroke reshuffles the list, you stop trusting the first row and start reading the whole panel. Nanolight's search.zig does matching and ranking without allocating, which keeps the list steady as you type. That's a design choice you feel in the muscle memory, not in a feature list.
On the Mac, the panel also reaches into System Settings. Type "login items", "wifi", or "dark mode", and the matching pane appears under your apps. Return opens System Settings directly at that pane, which saves you the three clicks most people spend hunting through the sidebar.
Choosing your key is the first real decision
On the Mac, the default shortcut everyone wants is ⌘Space, and that's the one Spotlight holds. Nanolight's first-run welcome offers ⌘Space, ⌥Space, ⌃Space, or ⌥⌘Space, and tells you who else already holds each one. The usual advice is to take ⌘Space and disable Spotlight's shortcut. That works, but it's not the only sensible option, and it's the one people regret when they forget where they moved things.
Here's a reasonable way to decide:
- Check which keys are already claimed, using the welcome screen or System Settings.
- If you want ⌘Space, reassign Spotlight first in System Settings → Keyboard → Keyboard Shortcuts → Spotlight, then pick ⌘Space in Nanolight.
- If you'd rather keep Spotlight intact, choose ⌥Space or ⌃Space and use it for a week.
- If you need a key that's neither, record your own in Settings. Nanolight accepts any other combination, such as ⌥X.
The trade-off is simple. Taking ⌘Space gives you the muscle memory you already have. Keeping Spotlight means you can still reach it for things Nanolight doesn't handle. Pick the one you'll still be happy with after two weeks, not the one that looks cleanest on day one.
Math, Google suggestions, and the privacy guard
Nanolight does arithmetic inline. Type 2^10 * 3 and the panel answers 3,072; 0xC00 gives the same value in hex. Return copies the result, so you can paste it straight into a spreadsheet.
Google suggestions are where most launchers go wrong. The popular advice is to turn on every web suggestion you can, because it feels like more coverage. In practice, a long list of suggestions buries the apps you actually want. Nanolight caps Google suggestions at four, and it puts them below your apps, with the words you typed in bold so you can scan them quickly. Tab or → accepts the top completion, and Return never does, so an accidental keystroke can't send you somewhere you didn't mean to go.
The more important design decision is what gets sent at all. Nanolight doesn't send anything that reads like an address, meaning anything with a dot, a slash, or an @. That keeps URLs, file paths, and email addresses out of Google's logs. Most users never think about that boundary, and it's the part that should matter most when you evaluate any launcher that talks to the web.
When you press Return on a search, Google's results page opens inside the panel. Esc returns you to the list, ⌘↩ opens the page in your browser, and ⌘[ steps back a page. If you'd rather Return always opens your browser, turn on Open Searches in Browser in Settings.
Raycast extensions and script commands: what runs where
Nanolight can run extensions from the Raycast Store's repository, which is MIT-licensed. You get their lists, detail views, forms, and actions on ⌘K. Choose Install Raycast Extension… to search the store and install one without leaving the panel.
Here's the catch. Raycast extensions are React and TypeScript, so they need Node.js 20 or later on your machine. Nanolight doesn't bundle Node, and it runs extensions through its own version of @raycast/api, documented in the project's raycast/README.md. AI features, OAuth, and menu bar extensions aren't supported. If your workflow depends on those, you'll need to keep your current tool for them.
Script commands are simpler. Any script with @raycast.* comments, placed in the Script Commands folder, becomes a row in the panel. Nanolight runs these itself, with no Node required. You get a form for the script's arguments, and the output appears in one of three modes: fullOutput streams everything as it prints, compact shows the last line, and silent shows nothing. For a quick shell script you run a dozen times a day, compact is usually the right choice.
Sync across computers, and what leaves your machine
Sync is off until you turn it on. Choose Sign In with Codegraff in Settings, or from the menu bar icon on the Mac, and your browser opens codegraff.com to approve the sign-in. After that, every computer signed in to the same account shares three things: the key that opens Nanolight, whether Google suggestions are enabled, and how often you open each app.
The merge rule is worth understanding before you sign in on two machines. The key and the suggestions setting follow whichever Mac changed them last. Each app keeps its higher open count, so neither machine loses its history. Nothing else is sent: no queries, no history, and no files. The sign-in key lives in your Keychain, and Sign Out of Codegraff revokes it.
Since sync runs through a Codegraff account, Codegraff's terms and privacy policy govern it. If you want no account at all, leave sync off and use Nanolight on one machine.
Where it fits: Nanolight, Spotlight, and Raycast
The right launcher depends on what you need. This table compares the points the source material supports directly:
| Feature | Nanolight | Spotlight (built into macOS) | Raycast |
|---|---|---|---|
| Platforms | Mac (Apple silicon, macOS 14+), Windows 10+, Linux (x86_64 or aarch64) | macOS only | Mac; check the official site for Windows availability |
| Default key | Chosen on first run from ⌘Space, ⌥Space, ⌃Space, ⌥⌘Space | ⌘Space | Set by you |
| Runs Raycast extensions | Yes, needs Node.js 20+; no AI, OAuth, or menu bar | No | Native |
| Google suggestions | Up to four, with an address filter | Not a launcher feature you can cap | Varies by extension and setup |
If you live on macOS and mostly open apps and run a few scripts, Nanolight covers most of that with a tiny footprint. If you need Raycast's AI features or its full extension ecosystem, keep Raycast and use Nanolight only where it's faster.
Installing on Mac, Windows, and Linux
On the Mac, download nanolight-macos-arm64.dmg from the latest release, then drag Nanolight to Applications. It needs macOS 14 or later on Apple silicon. It lives in the menu bar with no Dock icon, and it draws nothing while idle.
On Windows, unzip nanolight-windows-x86_64.zip anywhere you can write and run nanolight.exe. It needs Windows 10 or later. On Linux, unpack the tarball and run nanolight. It needs GTK 3 or 4 and an X11 session for its global key. On Wayland, bind nanolight --toggle to a key in your desktop's keyboard settings. That's the one place where setup takes more than a double-click, so plan for it.
Releases update themselves from this repository, and the update restarts into the new version while the panel is closed. Building from source requires Zig 0.17.0 and Xcode or the Command Line Tools, and zig build test runs the search, math, and panel tests through nanoui's Tester.
Frequently Asked Questions
What is Nanolight?
Nanolight is a keyboard launcher for the Mac, Windows, and Linux. It finds apps, does math, shows Google suggestions, runs Raycast extensions and script commands, and opens with one keystroke. It's native Zig with no Electron, and it's about 2 MB.
How do I change the Spotlight shortcut to use Nanolight?
Open System Settings, go to Keyboard, then Keyboard Shortcuts, then Spotlight, and turn off or change the Spotlight shortcut. Then choose ⌘Space in Nanolight's welcome or Settings. If you'd rather keep Spotlight, pick ⌥Space or ⌃Space instead.
Why does Nanolight need Node.js for some extensions?
Raycast extensions are written in React and TypeScript, so they need Node.js 20 or later to run. Nanolight doesn't include Node. Script commands don't need it, because Nanolight runs those directly.
Does Nanolight send what I type to Google?
Google suggestions are on by default, but Nanolight doesn't send anything that looks like an address, including anything with a dot, a slash, or an @. You can turn suggestions off in Settings, and sync keeps your queries on your machine.
Try Nanolight for a week with a key you didn't use before, and note how often you reach for the panel instead of the Dock. If you're wrestling with a crowded Spotlight or a Raycast setup you can't fully trust, pass this to a teammate who types the same searches you do.