Cleat 0.1.0

URL scheme

Drive Cleat from Shortcuts, scripts and other apps with cleat:// links. Every URL it answers, from opening the palette with a query to snapping a window by name.

Cleat referenceUpdated

Open any of these with open, a Shortcut’s Open URL action, or a link.

URL Does
cleat://toggle Open or close the palette
cleat://show?q=text Open with a query
cleat://hide Close
cleat://clipboard Clipboard history
cleat://snippets Snippets
cleat://emoji Emoji
cleat://translate?q=text Translate the text
cleat://ask?q=question Ask Apple Intelligence
cleat://menu Menu bar search for the front app
cleat://shortcuts Shortcuts
cleat://agenda, cleat://reminders, cleat://contacts, cleat://notes The personal tools
cleat://layouts Window layouts
cleat://directory Command directory
cleat://install?url=… Install a command from a URL
cleat://color The screen colour loupe
cleat://ocr Copy text from a screen region
cleat://dictate Toggle dictation
cleat://command/<name> Run a script command by name
cleat://window/<position> Snap the front window: left-half, maximize, next-display and so on

Each query parameter is percent-encoded as usual. From a shell: open "cleat://ask?q=explain%20a%20git%20rebase".

What this is for

Three things, mostly. Binding a Cleat action to a Stream Deck key or a hardware button, since most of those tools can open a URL. Calling Cleat from a shell script or a Makefile. And chaining Cleat into a Shortcut alongside actions from other apps.

Running one from the shell

open "cleat://ask?q=explain%20a%20git%20rebase"
open "cleat://window/left-half"
open -g "cleat://clipboard"

open -g leaves the current app frontmost, which matters because Cleat pastes into whatever you came from.

Window positions

cleat://window/<position> takes the same names the palette uses, lowercased with hyphens: left-half, right-half, top-left-quarter, left-third, left-two-thirds, maximize, center, next-display.

App Intents instead

If you are writing a Shortcut rather than a script, use Cleat’s App Intents rather than URLs. They return values you can pass to the next action, which a URL cannot. See Shortcuts and App Shortcuts.