Sunbeam is a general purpose command-line launcher.
Define UIs composed of a succession of views from simple scripts written in any language.
You can think of it as a mix between an application launcher like raycast or rofi and a fuzzy-finder like fzf or telescope.
Features
Sunbeam is distributed as a single binary, available for all major platforms. Sunbeam also comes with a lot of utilities to make it easy to create cross-platform scripts.
Supports any language
Sunbeam provides multiple helpers for writing scripts in POSIX shell, but you can also use any other language.
The only requirement is that your language of choice can read and write JSON.
Example Extensions:
Easy to extend
Instead of reiventing the wheel, sunbeam relies on your familiarity with git and github to make it easy to create, update, publish and install extensions.
Creating a new extension is as easy as writing a script.
Sharing an extension is as easy as pushing it to github.
If you prefer, you can also distribute your extensions as http endpoints, and use sunbeam as a client.
Bring your own UI
Sunbeam comes with a built-in TUI to interact with your scripts, but you can also use any other client.
See the client section for more details.
Inspirations / Alternatives
Sunbeam wouldn't exist without taking inspirations from incredible tools. Make sure to checkout:
- raycast: Sunbeam shamelessly copy most of raycast UX, and nomenclature in it's api. Even the project name is a reference to raycast.
- fzf: Sunbeam tries to take inspiration from fzf, but it's not a drop-in replacement. Sunbeam is designed to be used as a launcher, not as a fuzzy finder.
- slapdash: Slapdash feature-set is quite close to sunbeam. Sadly, slapdash development seems to be stalled, and it's not open source.
- gh: Sunbeam extension system is taking inspiration from gh one.