User Scripts — run your own JavaScript from the palette.

Hacklets can turn any local folder of .js files into a set of palette commands. Point it at a folder and every script becomes searchable and runnable — without a server, without a build step.

Pick a folder

  1. Open the settings page (right-click the extension icon → Options).
  2. Click Choose Folder and select the folder containing your scripts.
  3. Open the commands palette (Cmd+Shift+P) — your scripts appear alongside the built-in commands.

The folder is remembered locally in your browser. The scripts themselves stay on disk and are read only when a command runs.

You can edit them with your preferred code editor or using the script editor built into the extension.

The metadata header

Each script carries a Greasemonkey/Tampermonkey-style header that names it:

// ==UserScript==
// @name     Greet the page
// @emoji    👋
// @match    *://*/*
// ==/UserScript==

const name = prompt('What should I call you?')
alert(`Hello, ${name}!`)
DirectiveRequiredPurpose
@nameyesThe command title shown in the palette
@emojinoIcon shown next to the title
@matchnoURL glob pattern; script only shows on matching pages

URL-based visibility

Use @match to make a script appear only on pages it makes sense for:

// @match https://github.com/*/blob/*
// @match *://trello.com/*

Multiple @match lines are allowed. When no @match is present the script is available on every page.

On-demand execution

Unlike traditional user-script managers, scripts from the selected folder are never auto-injected on page load. The palette lists valid scripts when it opens, and a script only runs when you select it. Nothing executes without your explicit action.

When it runs, the script executes in the page’s MAIN world, so it has full access to the page’s DOM and JavaScript.

Example commands

Coming soon…

Known limitations

  • Stale listings — the browser caches directory listings; newly added files may not appear until the cache syncs or you re-pick the folder. Once a script is visible to the extension, execution always reads it fresh from disk.
  • Non-Chromium browsers — the File System Access API isn’t widely supported, folder commands may not be available. See Browser Support.