Amazing! one of the few reasons keeping me from using Linux as a daily driver is lack of Raycast support. It has become a huge part of how I use my computer.
I never liked Raycast over Alfred or Launchbar. They’re trying way too hard to solve non-existent problems and sucking at it.
That said, Linux app launchers are even worse, so I applaud any attempt to improve that situation.
Amazing work! I love Raycast as well!
Nice work but change name asap, pivot to something original
I'm not one to care for age usually, but I think it's worth mentioning that OP is 15 years old. Well done, great work, please keep building and writing.
honey it's 4pm time for your daily frontpage chatgpt readme
Awesome work! I've been dreaming of this project myself with a very similar stack (basically React instead of Svelte), but I'm very excited to finally have a Raycast alternative for Linux that has both consistent UI and extension compatibility.
The most impressive part is probably your age, because this isn't an easy project even for senior devs!
I haven't tried it yet, but I can't wait to find some time for that.
I've researched applications like this for Linux quite extensively and I think you might find the following tips of interest: - For the slow extension startup issue you mentioned, consider Deno as a runtime as it has a better sandbox and is faster than Node overall. There may be some compatibility issues, but if I remember correctly most stuff is handled by the special Raycast extension libraries which you implement manually anyway. - I'd consider Numbat [0] for replacing the calculator implementation you have now. As far as I can tell, it should have feature parity with SoulverCore and it's also written in Rust, so interfacing with it should be much easier and won't require the FFI work you're doing now. - Project Gauntlet [1] is another project which has gotten quite close to implementing a full-featured Raycast alternative and might be worth taking inspiration from. It would certainly be very cool if you can make the UI rendering native at some point (although I guess Rust isn't perfect for native UI at the moment [2])
Keep up the good work!
[0]: https://github.com/sharkdp/numbat
From wikipedia
> Raycast is an application launcher and productivity software developed for macOS and by Raycast Technologies Ltd. It offers fast access to applications, dictionaries, files, text snippets, clipboard, and more.[2] Raycast is an alternative to the macOS's built-in Spotlight function, with a richer interface and the option to install extensions, providing additional ways to display varied content.[3]
Looks great! Change the name. The Raycast people are going to (initially) ask you to anyway.
Raycast also runs on Windows now, albeit in beta.
Other Linux launchers with extensibility:
There is also rofi, wofi, fuzzl, dmenu, and even gnome search providers. No shortage of launchers on Linux, all with varying capabilities.
Another runner which can be extended and runs on Linux is KRunner, the one that comes with KDE. Should this inspire you.
KRunner is great, has a lot of features including currency and unit conversion. I use it almost exclusively now.
I don't really see any value in such combines.
You want some calculation? Run calc and do the calculation, do you save so much time by replacing the "run calc" step with "open launcher" that it's worth adding more software to your setup?
Have you ever tried a launcher as powerful as Raycast? I can only recommend it. I use it for quick calculations, currency conversions, file lookups, translations, looking up http status codes, joining meetings, finding emojis, quickly checking my calendar, etc. etc. – so, perhaps a singular function might not warrant a launcher, but the sum of functions and keyboard-centric UI make it very valuable for me in my daily workflows.
On a Mac, opening the launcher means pressing cmd-space at any time, getting a popup text entry field, typing "1+2", seeing the answer, and hitting esc to dismiss it. That's the entire workflow for operating a calculator, launching an app, searching Google, locating a file, or whatever. I challenge you to do that operation with a separate app more (or even as) efficiently.
There are good tools for doing each of those things separately. A good launcher that allows you to do any of them with such trivial overhead is a huge time saver.
Plenty of people appear to disagree.
Do you remember the command line command to convert 5:30 IST to PDT? Or convert $70 USD to SGD? Or what 17.3 years in seconds is? Or how many days are between 2024-12-30 and 2025-06-17?
Raycast can all of do that automatically, and the only shortcut you need to know is Cmd-Space.
I just type the same into the browser. Only shortcut is alt-tab or a touchscreen swipe, and it works on any device without installing anything.
I don't get it either.
"write programs that do one thing and do it well. write programs to work together."
it's sad to see this core principle being increasingly ignored in linux, but i guess that ship sailed a while ago.
A runner that runs "programs" coming from extensions is about as close to this principle as possible, no?
I think so. It’s basically an ephemeral, extensible GUI shell.
Raycast will either hire you or send you a cease-and-desist order. Either way, I would change the name now.
As well as the logo used, name references from all other places and even tweaking the looks a bit.
Fair point! I've actually thought about that before; I've tried to be extremely clear in the project's README with a disclaimer that this is a non-commercial hobby project and is not affiliated with the official Raycast team in any way.
The name is just for identification, as the project's goal is to be a compatible, open-source alternative for the Linux community, a platform they don't currently serve.
That being said, I'll definitely keep it in mind. Thanks for bringing it up!
“Just for identification†is the point — the name Raycast identifies their product, and it’s their trademark. You can’t use it without permission, even with a disclaimer in the readme.
> The name is just for identification
That’s precisely what they’d dislike about it. You’d be creating “brand confusion†by using their trademark in your own name. You couldn’t make “My Cola (Recreating Coke)†without getting an expensive and inconvenient letter from their legal team.
I've had to look into for my own side projects, you don't want to include brand names, trademarks, etc in your own projects' names and you should be very wary about how you use them in your marketing if you choose to do so at all.
That shouldn't matter. They might even have a Linux version in the works, given they are doing Windows now. They are within their rights to ask you to get rid of it. You also seem to be using their brand assets like the logo. I get your intention and love what you were able to accomplish but if you intend for this to grow, you are better off doing this now.
That makes sense -- I'll go figure something out, thanks for the explanation!
It should matter that it's a non-commercial hobby project. It's nice to see the light pushback.
> They are within their rights to ask you to get rid of it.
Only the logo and name. The functionality side should be perfectly fine, there are oodles of precedent for reversing a workable program from someone's commercial API: https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_....
True, but a cease & desist will likely include the demand that they cease all operations, and they might be willing to fight that in court, possibly seek damages, etc however likely or unlikely it is that it would hold up. They can pay for a few hours of a lawyer's time to intimidate the OP.
But prolly can still go after if you resemble it closely enough in terms of looks? I get the API point though, thanks.
Eh, probably not. There are any number of things that look like it. The appearance is the natural outcome of its functionality.