Search Explore

Show HN: Vicinae – open-source, Raycast-compatible command palette, now on macOS

https://github.com/vicinaehq/vicinae/releases/tag/v0.23.0

aurellius · 10 hours ago

10 months ago I posted on HN to announce the initial release of Vicinae, an "everything" command palette compatible with the Raycast extension ecosystem, only available on Linux.

Today, after months of work, I'm finally releasing the first macOS version of Vicinae, with full feature parity with the Linux version!

From a technical standpoint, it is still a Qt/C++ app with a Node.js powered extension runtime (like Raycast). Something as deeply system-integrated requires calling a lot of native APIs, and when I started the port I wasn't quite sure how easy it would be. Turns out it went a lot smoother than I expected.

I was able to use Objective-C++ to interface with most macOS native APIs, and a bit of Swift (through C FFI) where that wasn't enough. Thanks to that, Vicinae has a fully "liquid glass" look by default!

The main thing that required real thought was permissions. macOS gates a lot behind TCC, and the trickiest one is Full Disk Access: without it, file search (through Spotlight) will silently omit a lot of user protected files. FDA remains fully optional though, users that don't want to use Vicinae for file search don't need to grant it (although extensions may need it as well, such as for accessing Apple Notes)

Qt/QML worked pretty much as expected on macOS, with no notable issues. Even my custom shaders get compiled to Metal automatically, without configuring anything. And the bundle, once trimmed, ended up very small: 24MB compressed in a .dmg, with all the Qt libraries included!

On the performance side I'm also extremely satisfied, it feels very snappy. It's also very lightweight when it comes to RAM usage. Around ~100MB if we exclude the node process required to run third party extensions (technically optional, as none of the core features rely on it). Definitely a breath of fresh air when we see what happened to Raycast V2 :-)

Had a lot of fun porting this, and it reinforced my love for Qt even more.

Vicinae is fully open source (GPLv3). Happy to answer questions about the port!

3 comments

  • schromp · 9 hours ago

    ive been using vicinae for a long while on linux now and was missing my (vicinae specific) extensions on raycast. that time is over now \\\(۶•̀ᴗ•́)۶////

    now i have not benchmarked it but i feel like vicinae is also a lot faster than raycast

    • aurellius · 9 hours ago

      a lot more memory efficient too, especially if you compare it to V2 :D It's on par with V1 I think.

    • kevinpiac · 6 hours ago

      Amazing! This is exactly what I was waiting for.

      Vicinae is so much faster and memory-efficient. Huge kudos!

      • voshond · 6 hours ago

        Was waiting for this one, glad it’s live now. Been using it on Linux for a while now, since I was missing spotlight/raycast from work laptop that runs macOS. Now I come full circle to replace raycast with it on the work machine

        • aurellius · 2 hours ago

          amazing to hear!