Raycast-inspired open-source cross-platform application launcher with React-based plugins https://gauntlet.sh/docs
Find a file
2025-06-15 14:29:19 +02:00
.github/workflows github actions: formatting: nix with alejandra, remove verbose for rustfmt 2025-06-14 20:39:50 +02:00
assets Remove not needed macOS entitlement 2024-10-04 20:28:33 +02:00
bundled_plugins/gauntlet plugins/gauntlet: applications/macos: follow symlinks inside /Applications 2025-06-12 20:33:26 +02:00
bundled_themes Tweak window border color of macos dark theme on non-macos platforms 2025-03-15 20:14:08 +01:00
dev_data Save position of the main window to be used after restart 2025-01-16 22:02:43 +01:00
dev_plugin Update iced to latest master. Remove iced_aw, iced_table dependencies. Remove DatePicker component 2025-06-15 14:29:19 +02:00
docs Update iced to latest master. Remove iced_aw, iced_table dependencies. Remove DatePicker component 2025-06-15 14:29:19 +02:00
example_plugins Update iced to latest master. Remove iced_aw, iced_table dependencies. Remove DatePicker component 2025-06-15 14:29:19 +02:00
js Update iced to latest master. Remove iced_aw, iced_table dependencies. Remove DatePicker component 2025-06-15 14:29:19 +02:00
nix Fix nix hash mismatch. Add nix build to github actions 2025-05-31 19:23:23 +02:00
rust Update iced to latest master. Remove iced_aw, iced_table dependencies. Remove DatePicker component 2025-06-15 14:29:19 +02:00
schema Migrate communication over Grpc to new system to reduce boilerplate 2025-05-05 19:52:07 +02:00
src Update all rust dependencies 2024-12-20 15:36:54 +01:00
.editorconfig added editorconfig, with yaml 2025-06-14 20:39:50 +02:00
.envrc feat: Nix package + devShell & NixOS + Home-Manager modules (#27) 2024-12-20 23:47:14 +01:00
.gitignore Global shortcut now hides the main window when the window is already open 2025-02-11 20:20:35 +01:00
.npmrc Rework command generators to allow updating list of generated entrypoints while plugin is running 2024-11-03 14:15:48 +01:00
Cargo.lock Update iced to latest master. Remove iced_aw, iced_table dependencies. Remove DatePicker component 2025-06-15 14:29:19 +02:00
Cargo.toml Update iced to latest master. Remove iced_aw, iced_table dependencies. Remove DatePicker component 2025-06-15 14:29:19 +02:00
CHANGELOG.md Update lots of dependencies in Cargo.lock 2025-05-28 20:06:16 +02:00
default.nix feat: Nix package + devShell & NixOS + Home-Manager modules (#27) 2024-12-20 23:47:14 +01:00
flake.lock Run nix flake update 2025-05-11 15:36:27 +02:00
flake.nix fix(flake): use strings instead of deprecated url literals. 2025-03-11 20:15:53 +01:00
LICENSE Create LICENSE 2024-02-03 21:37:41 +01:00
package-lock.json Update package-lock.json 2025-05-22 20:34:53 +02:00
package.json Add script to generate component model from root 2025-03-15 20:14:09 +01:00
README.md Update settings ui screenshot in README.md 2025-06-02 20:13:39 +02:00
rustfmt.toml Run cargo fmt. Add github workflow to validate 2025-02-02 17:10:54 +01:00
VERSION Prepare for v19 release 2025-05-11 13:51:01 +00:00

Gauntlet

Discord

Web-first cross-platform application launcher with React-based plugins

Warning

Launcher is being developed by single developer in their free time. Changes may be slow but steady

There will probably be breaking changes which will be documented in changelog.

image

Demo

Slightly outdated demo

https://github.com/user-attachments/assets/19964ed6-9cd9-48d4-9835-6be04de14b66

Features

  • Plugin-first
    • Plugins are written in TypeScript
    • Extensive plugin API
      • Create UI views
      • One-shot commands
      • Dynamically provide list of one-shot commands
      • Render quick "inline" content directly under main search bar based on value in it
      • Get content from and add to Clipboard
    • Plugins are distributed as separate branch in Git repository, meaning plugin distribution doesn't need any central server
    • Plugins IDs are just Git Repository URLs
    • React-based UI for plugins
      • Implemented using custom React Reconciler (no Electron)
    • Deno JavaScript Runtime
      • Deno allows to sandbox JavaScript plugin code for better security
      • Plugins are required to explicitly specify what permissions they need to work
      • Node.js is used to run plugin tooling, but as a plugin developer you will always write code that runs on Deno
  • Designed with cross-platform in mind from the beginning
  • Commands and Views can be run/opened using custom global shortcuts
  • Custom search alias can be assigned to Commands or Views
  • Custom theme support
  • Built-in functionality is provided by bundled plugins
    • Applications: shows applications installed on the system in search results
      • Plugin also tracks windows and which application they belong to, so opening already opened application will by default bring up previously created window
    • Calculator: shows result of mathematical operations directly under main search bar
      • Includes converting currency using exchange rates
      • Powered by Numbat
  • Frecency-based search result ordering
    • Frecency is a combination of frequency and recency
    • More often the item is used the higher in the result list it will be, but items used a lot in the past will be ranked lower than items used the same amount of times recently
    • Results are matched per word by substring
OS Support
Official
  • Linux X11
  • macOS M1
Best-effort
  • Linux Wayland
    • Gnome Wayland is not yet supported, see #40
  • Windows
  • macOS Intel

Getting Started

Install Gauntlet

See Installation

Global Shortcut

Main window can be opened using global shortcut or CLI command:

  • Global Shortcut (can be changed in Settings)
    • Windows: ALT + Space
    • Linux X11: Super + Space
    • Linux Wayland
      • Global shortcut may not be supported, see feature support
      • Please use CLI command instead, and invoke it using window manager specific approach
    • macOS: CMD + Space
  • CLI command
    • gauntlet open

Install plugin

Plugins are installed in Settings UI. Use Git repository url of the plugin to install it, e.g. https://github.com/project-gauntlet/readme-demo-plugin.git

Create your own plugin

See Getting started with plugin development

Theming

See Theming

Building Gauntlet

You will need:

  • NodeJS
  • Rust
  • Protobuf Compiler
  • CMake (not used by the project itself, but is required by a dependency)
  • On Linux: libxkbcommon-dev (note: name may differ depending on used distribution)

Dev

To build dev run:

npm ci
npm run build
npm run build-dev-plugin
cargo build

In dev (without "release" feature) application will use directories ONLY inside project directory to store state or cache, to avoid messing up global installation

Not-yet-packaged

To build not-yet-packaged release binary, run:

npm ci
npm run build
cargo build --release --features release

Packaged

To build os-specific package, run one of the following:

macOS:

npm run build-macos-project --workspace @project-gauntlet/build

Windows:

npm run build-windows-project --workspace @project-gauntlet/build

Linux:

npm run build-linux-project --workspace @project-gauntlet/build

But the new version release needs to be done via GitHub Actions

Contributing

If you'd like to help build Gauntlet you can do it in more ways than just contributing code:

  • Reporting a bug or UI/UX problem
  • Creating a plugin

For simple problems feel free to open an issue or PR and tackle it yourself. For more significant changes please contact creators on Discord (invite link on top of README) and discuss first.

All and any contributions are welcome.