
Launch HN: Raycast (YC W20) – CLI-inspired desktop app for non-coding tasks - thomaspaulmann
Hey,<p>Thomas and Petr here from Raycast (<a href="https:&#x2F;&#x2F;www.raycast.com" rel="nofollow">https:&#x2F;&#x2F;www.raycast.com</a>). We are building a command-line inspired native app to save developers time on non-coding tasks, such as managing active sprints in Jira, sorting out notifications in GitHub, or checking metrics in Amplitude.<p>Both of us are software engineers and we noticed that we were spending less time coding and more time managing the software development process. We had to keep track of bug reports, manage sprints, comment on pull requests, release new versions and many more things that eat up a big portion of our time. All of those tasks are spread across web tools that aren&#x27;t optimized for power users. When we used these tools every day, loading times became annoying, animations turned into pain and clicking 10 buttons for the simplest things didn&#x27;t feel right.<p>We built an internal productivity tool that addresses this issues in our previous jobs at Facebook as a side project. It was a desktop app for macOS that sits in the menu bar and connects to the internal issue tracker. The app displays your open issues and has a global shortcut to create a new one. The tool allowed us to replace the slow web app for the majority of our work and saved us time. When other engineers enjoyed the simplicity and speed of the tool, we realized that such an app can be applied to other web tools as well.<p>Everybody has to deal with one of these. Take Jira, for example: to update the status of an issue, you have to open the browser, create a new tab, navigate to the website and find the right issue. Only then can you change the priority. This feels broken! This kind of interaction shouldn&#x27;t take that long. In fact, you should be able to do this without opening a browser, without seeing a loading indicator and without switching context!<p>Raycast is inspired by command line interfaces. These interfaces are a great way to escape from the clutter of typical web tools. They are simple, responsive and extensible. However, they also have drawbacks: rich media elements aren&#x27;t well supported, ASCII characters are too limiting for advanced UI design and it&#x27;s very hard to discover commands. Raycast is our attempt to combine the benefits of a command line with those of a modern user interface. Its UI is similar to Spotlight or Alfred. You can launch the app with a global shortcut, search for commands, and perform quick actions. Similar to CLIs, you execute application-specific commands in Raycast, such as creating an issue in Jira or opening a pull request in GitHub. An integrated store makes it easy to install new extensions.<p>The app is entirely designed to keep developers in the flow. Most important: it&#x27;s fast! Our client-first architecture makes every interaction instant. The app is written natively to deliver the best performance with the least amount of resources. It won&#x27;t drain your laptop battery and it&#x27;s accessible via keyboard shortcuts.<p>Consistency is key to being more productive. Once you&#x27;ve learned how to create an issue in Jira via Raycast, you know how to schedule a meeting in Zoom, create a pull request in GitHub, or set a reminder for tomorrow. All commands follow a similar structure and share UI components to make them look and feel the same. The components are built for speed: Text fields have autocompletions, elements in dropdowns are searchable and automatically remember previous choices. The app doesn&#x27;t require a login and your data is stored encrypted on your local hard drive. All the API requests go directly to the third party services and we don&#x27;t track any sensitive data.<p>At the moment, Raycast is only available for macOS and we&#x27;re focusing on the fastest experience for Jira. Upcoming extensions will include an inbox for your GitHub notifications or utilities such as reminders. We can&#x27;t build all extensions ourselves and believe in an open platform. We will release an API to build custom extensions and use the private beta to make sure that we can provide a great developer experience. We have tons of ideas and would love to hear what would you like to see in a tool like this.
======
pedoh
Did you consider writing this as a CLI tool and using amazing auto-completion
to give you discoverability and an advanced UI? I love the idea of having a
tool that brings these systems together but would rather keep my focus on the
command line since that's where I'm spending the majority of my time.

    
    
      raycast ticket create "Run database migration in production"
      raycast ticket<tab>
        create claim set_owner close
      raycast ticket set_owner p<tab>
    

I've written a tool that uses a plugin system to easily add more "commands" to
be run. I haven't tackled the tab completion piece yet, but I can imagine that
it would significantly benefit the user experience.

~~~
pitnikola
Good idea! That is definitely something we want to explore in the future
(giving a CLI for Raycast integrations on top of main app functionality),
especially if people will be asking for this.

~~~
anjanb
that will be cool. please do!

------
miki123211
If this was accessible for Voice Over (the MacOS screen reader), blind
developers would literally bless you for this. Half of those non-coding, web-
based tools have huge accessibility problems, and an efficient and ergonomic
interface would be a godsend. I can't test the accessibility aspect myself,
now, as I don't own a Mac and I don't work in a team environment, but I can
get you in touch with some people if you're interested. The fact that you're
doing native and that you're focused on the keyboard means there's much hope,
though.

~~~
thomaspaulmann
Great idea and as you mentioned, this should be possible with our native
implementation. I'm not too familiar with the accessibility features provided
by Apple. Feel free to send me an email (thomas@raycast.app). We're curious to
explore this and help other developers as much as we can.

------
sicromoft
I like the idea. My feedback: the name seems like it's going to confuse
people. I almost skipped by this post when I saw the name at a glance because
I'm not particularly interested in 3D graphics.

~~~
pitnikola
Thanks for the feedback. Yeah, it crossed our mind that some people familiar
with 3D graphics term might get confused. I really hope that there are not too
many people in our target audience familiar with it, though I might be wrong
:)

~~~
colinhowe
If you're targeting developers then I suspect you'll find many of them have at
least heard of the term raycasting from CS degrees at the least.

~~~
pitnikola
Fair enough! Hopefully it will not become a problem. In the end, it's just the
name and we want to be defined by the product and its value rather than by the
name itself.

As to why exactly we picked it: as ray casting is a way to instantly query
information about closest objects, we thought it would be a good metaphor for
instantly querying and accessing different third party services. Rays
represent speed and focus.

------
7777fps
Maybe it's because I'm a Windows user so I'm not your target audience Mac
user, but my IDE already does all of this.

From my IDE , I can already interact with GitHub, JIRA, search stack-overflow,
and pretty much anything else either natively or through the plugin system.

~~~
pitnikola
Fair point and I absolutely agree, VSCode has some great integrations with
other services and in fact solves similar problem of context switching.
However there are quite a lot of people that don't use VSCode, not to mention
you're not always in your IDE when you need to perform these tasks. Having
said that we want to explore some ideas where we integrate deeper with IDEs
like VSCode and provide commands based on the context (e.g. provide
documentation search based on the coding language, suggest filing a task for
TODO comments, etc).

------
IceDane
I want something like this, which is why I more or less have the skeleton and
something that at least approaches this idea, built organically through time
using various utilities. Rofi, some shell scripts, etc.

This is a great idea in theory but much harder to do properly in practice. The
idea is only really worthwhile as long as you can really extend it to a lot of
things(no one cares about adding an Nth tool that can do GitHub and jira and
one more thing).. and that's where this is going to go wrong.

There are reasons the interfaces to many tools that we use are as complicated
as they are - it's needed to use the tool to its full effect. In order to
achieve the same effect in this tool, you are doomed to constantly reimplement
literally the entire interfaces of all the interesting services, just as CLI
interfaces.. and that's just not gonna scale.

I'm not into all this YC stuff, but does the YC20 in the title means that
someone has funded this idea?

~~~
pickdenis
> I want something like this

It's existed for almost 40 years, and it's called emacs. If anyone questions
emacs's ability to display incredibly useful UIs, try using magit[0]. Emacs
sucks though, so I hope this comes out better!

[0] [https://magit.vc/](https://magit.vc/)

~~~
0x445442
Also the Raskins', Jef and his son Aza, were onto this a long time ago. The
general idea is applications, desktop or web, are the problem and that a
better interface is one that provides a ubiquitous means of issuing commands
with natural language.

About 10 years ago or so Aza created Enso which ran on the desktop and then
Ubiquity which ran in the browser. These were both steps in this direction. I
looked at going further with the idea but quickly ran into the question of how
best to implement with currently available desktop technologies. But a lot of
folks have been nibbling at the edges of this problem for a long time and they
end up using rofi or dmenu or emacs and a bunch of custom scripts.

In my opinion one really needs to design a brand new shell from the ground up.
But when I say shell I mean OS, not terminal.

------
transitivebs
So like [https://getcommande.com/](https://getcommande.com/) but focused on
devs?

I expect to see more trends of the spotlight/alred/vscode command+p UX being
used for different verticals.

Pretty meh on this use case, however, as devs are very difficult to sell to. I
guess that's why you're focused on Jira and selling to enterprise.

~~~
thomaspaulmann
Yes, Command E has a similar UX. Actually, we started with Jira because many
devs that we interviewed mentioned it as a big pain point. It's slow and
confusing but you still have to use it to keep your team up-to-date. As to
enterprises, we focus on individuals first but see value for such a tool in a
team setup.

------
smetj
Shameless self promotion but if Python is your thing and the terminal is your
favorite place then have a look at
[https://smetj.net/termfunk_bridging_the_gap_between_python_a...](https://smetj.net/termfunk_bridging_the_gap_between_python_and_the_terminal.html)

------
et2o
I wish you would just let us download it instead of getting added to some
early access list. I'm probably going to forget about this by the time you let
me download it...

~~~
pitnikola
We want to open it up as soon as possible. The main reason behind the private
beta is that integrations such as Jira are fairly complex due to different
setups and a lot of customisation so currently we're in the process of
"onboard new company -> fix bugs -> try again" and so on. It's getting better
on each iteration and as soon it reaches certain level of stability on the
integrations side, we're going too open it up to everyone.

------
eliseumds
I don't know what's being used to build the user interfaces, but I'd look at
Shopify Polaris for some inspiration. It's been a pleasure to work with it.
Although it's quite restrictive (no colour customizations, for ex), it gives
users standardised and accessible screens. I wonder how debugging would work.

~~~
pitnikola
Nice, consistent design system and guidance is definitely something we want to
have for the future platform. Thanks for pointing out to Shopify Polaris,
looks very interesting!

------
riazrizvi
Side question. If you wrote it as a side-project while at Facebook, doesn’t
that work belong to them? How did you launch a business on this idea, did you
strike an agreement with them or are you taking the do-first-ask-permission-
later approach?

~~~
thomaspaulmann
It was a different tool and tight to the internal issue tracking system that
Facebook is using. We realized there is value in having a tool that simplifies
the interaction with overloaded web apps and it's crucial to cover many of
them. Obviously, we didn't share any code and built Raycast after we left.

~~~
riazrizvi
Probably you mean you didn’t _write_ any code or notes on the idea until after
you left, so there was no copyrightable IP that you were under contract to
share while you were employed? But I get the idea. Thanks that’s helpful.

------
tudorizer
I'm fairly confident one can write an Alfred plug-in for most of these tasks.

~~~
0x445442
Yeah, my idea was something with the interface of a launcher but where the
results are display as a tree list. The result of a very large set of commands
would either be a tree list or the rendering of some other GUI element in
which case the tree list results would be empty. In turn, the elements of the
tree list could be easily selected and another command could be run on them.
This is very similar to something like gnus in emacs only with a modern UI.

------
Jayakumark
Thanks , Looks like Firefox ubiquity function . It was great while it existed.

------
rajnathani
This sounds similar to another tool called Linear [0], as described in this
TechCrunch article [1].

Though it seems that they're only primarily focused on work issue tracking
(GitHub, Figma, etc.).

[0] [https://linear.app/](https://linear.app/)

[1] [https://techcrunch.com/2019/11/21/linear-lines-
up-4-2m-led-b...](https://techcrunch.com/2019/11/21/linear-lines-up-4-2m-led-
by-sequoia-to-build-a-better-platform-for-software-developer-collaboration/)

~~~
pitnikola
Yeah, Linear is a great tool and has an amazing UX, though as you correctly
noticed they are building standalone issue tracking tool while we're building
an app that sits on top of other web apps allowing you to use them without
going to a browser.

------
csomar
1\. What are your plans for monetization. I hate start using and getting used
to something and then monetization or tracking spoils things.

2\. Is the app a native Macos App or some react-native/electron wrapper?

~~~
thomaspaulmann
1\. We will keep a free tier, some kind of pro version and mainly monetizing
features for teams/organizations. We're fully committed on privacy! 2\. The
app is 100% written in Swift for macOS.

------
m00x
The text rewriting on top of the page is incredibly annoying. It's too much
text always changing and it doesn't really give any value.

Product looks interesting though!

~~~
pitnikola
That's good feedback, we might consider simpler ways to show different
possible use cases.

------
mrala
How is this different from workflows in Alfred?

~~~
pitnikola
Our main differentiator from Alfred is provide much deeper and richer
integrations with other services. One of the goals for Raycast is to keep you
away from browser that can distract you from work. Also we have a lot of plans
for team features that Alfred lacks of. And yeah, there's certainly going to
be an overlap :)

------
DantesKite
I hope you guys succeed.

It’s aggravating having to stop and use my mouse all the time.

Feels like I’m constantly stuck in traffic while coding.

~~~
thomaspaulmann
> Feels like I’m constantly stuck in traffic while coding.

Nice metaphor!

------
clarry
Seems interesting, although I fail to see any command line inspiration in the
cast or screenshots. It looks like a perfectly normal GUI with keyboard
shortcuts and a text filter for narrowing down on some activity?

------
tcgarvin
Looks interesting, excited to see where it goes.

It feels to me like something a motivated open source project could do well,
too. What's the thing that will get people to pay for this? Slick
team/enterprise features?

~~~
pitnikola
As you correctly guessed, we're planning to provide features that would be
useful to teams and larger organizations. Shared commands, integrations with
custom internal tools, shared instant knowledge base and so on.

------
ageofwant
Yea its about that time again: someone is rewriting Emacs. Happens every few
years or so. Not hating, just saying. Maybe one of these decades it may
actually be better than the real thing.

------
rsp1984
Love the concept & the idea! But why did go for MacOS / Swift instead of
something cross-platform, such as Electron or Qt? Many devs outside of SV
aren't using Macs.

~~~
zmix
Applications like these highly benefit from deep integration into the
environment. Also, keeping them native and easy on resources makes them using
a snap.

You want these to come and go quickly, at the whim of a fingertip. You want
them to connect to your local search services, reuse local components, etc.

The biggest problem for most of these "Launchers", is that they try to be
cross-platform, making them slow and a pain to use, as soon as you want more
than just basic seek&run. I am still trying to find a suitable on Windows,
that would make me as happy and satisfied as Quicksilver does on macOS.

~~~
agustif
Wox+Search Everything is my spotlight/alfred replacement for windows. Not on
the same league, but the ux/ui at least does the job.

Also use SmallWindows for a Mission Control like interface.

~~~
zmix
Wox seems to have a clever way to do user plugins by just using a JSONRPC
interface.

------
the-peter
Is this integrated with the shell? Can I write shell scripts and python
scripts to eg. grab today's entries from my gmail calendar, etc

~~~
smetj
Shameless self promotion but have a look at
[https://smetj.net/termfunk_bridging_the_gap_between_python_a...](https://smetj.net/termfunk_bridging_the_gap_between_python_and_the_terminal.html)

------
apotheosis-neko
Heads-up! Is the site down, seems to be loading forever for me. Want to check
it out more, since it seems like I am the target market.

~~~
pitnikola
Hi! Thanks for the heads up, could you please check if the website loads for
you now?

------
thepenguinco
Looks great! How do I try it out?

~~~
pitnikola
Thanks! Sign up for the private beta and we'll send you the build as soon as
possible. The main reason for "private beta" mode is to make sure that complex
integrations such as Jira work for people. We're onboarding people everyday,
catch some errors, patch them and so on.

------
hashamali
Awesome landing page. Curious if you guys made it yourself or outsourced to an
agency?

~~~
pitnikola
Thanks for the kind words! We've built it ourselves, and to be honest neither
of us is a web developer or designer so we're happy that it came together in
the end.

------
terhechte
Do you support Jira Enterprise (I.e self hosted) and GitHub enterprise?

~~~
thomaspaulmann
Not yet but more and more people asking about it.

------
ianwalter
Looks pretty cool too bad (or maybe, good) I don't use Jira.

~~~
pitnikola
Which integrations you would be interested in?

We're going to be adding more integrations in the future, such as GitHub,
GitLab, Slack, GSuite and so on, stay tuned.

~~~
ianwalter
GitHub would be cool. I also use Slack and Clubhouse.

~~~
thomaspaulmann
We have a lightweight extension for GitHub and more will come. What would you
like to do with an extension for GitHub? Plan projects? Search code? Manage
packages?

~~~
ianwalter
1\. Open repos. I have a lot of them. 2\. Search code. 3\. Open PRs that I
need to review. 4\. Create issues / Open issues that are assigned to me. 5\.
Search repos / starred repos

~~~
thomaspaulmann
We cover already some cases of your named ones, such as the create issues and
list your assigned ones but aren’t quite there yet for others. Seems like
these are the common ones and we’ll take a deeper look into them.

------
vira28
Isn't any open source solution available for this already?

------
johannesgoslar
How mod-able is it?

~~~
pitnikola
We have plans to provide API for building custom integrations as soon as we're
ready to settle down with the framework. At the moment there's still a lot of
experimentation so we're building all integrations ourselves.

