Skip to content
Generalized interface for keyboard-based interaction
JavaScript HTML CSS
Branch: master
Clone or download
alexherbo2 and rosano Improve the French translation
Signed-off-by: Rosano Coutinho <>
Latest commit cbe0f28 Oct 13, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Improve the French translation Oct 16, 2019
.env.sample Create sample env Sep 28, 2019
.gitignore Incorporate Sep 27, 2019
LICENSE Add license Oct 9, 2019 Remove bookmarklet stub Oct 9, 2019
mocha-start.js Disable storage in ui tests Sep 30, 2019
package-postinstall.js Purge postinstall rollup Oct 5, 2019
package-preinstall.js Create package-preinstall Aug 26, 2019
package.json Rename svelte-build Oct 5, 2019
rollup-config.js Extract OLSKRollup Sep 1, 2019


Generalized interface for keyboard-based interaction

Launchlet is a simple way to add a name to snippets of code and run it. Inspired by Quicksilver, it functions primarily via mouseless interaction and lets you access your Recipes with a few keyboard strokes. You can also use it to customize websites in the same way as 'userscripts' or 'userstyles'.

You can run Launchlet as a bookmarklet, browser extension, or as a module in your own project to add a 'jump to' functionality.


The project is a large collection of mostly small modules and functions that are put together using Svelte and Rollup. With the exception of a few 'global' or 'magic' things such as the localization function OLSKLocalized, most resources used by a module should be in the same folder or referenced by path name.

Routing, rendering markdown content, and serving pages is done via a Node.js server (usually configured in the controller.js files).


npm install --no-save


Start the Rollup build/reload process

npm run svelte-build-watch

Start the node server

npm start

It should be accessible at http://localhost:3000.


Testing is generally straight-forward and pleasant but it takes some setup.

Restart the test runner when creating new files so that they will be included (specifically test files, and localization files).


I use the same bash scripts across several projects to watch source files for changes and then run the tests. There is a modified (hopefully more cross-platform) version on gist.

Save the contents of that file as in the same directory as this file and then npm test should be able to find it.

Run unit tests

npm test

Run UI tests

npm test ui

To filter tests by folder:

ROCO_UI_TESTS_MATCH=launcher npm test ui

If you know how to fix UI tests that fail randomly because of timing/WebSocket/timeout issues please let me know.


The code is released under a Hippocratic License, modified to exclude its use for surveillance capitalism and also to require large for-profit entities to purchase a paid license.


Feel free to ask questions tagged with launchlet on Super User or Stack Overflow.

Let's chat on Mastodon.

You can’t perform that action at this time.