Typing a shortcut into another app and recording one without other apps’ hotkeys firing both need it. System Settings → Privacy & Security → Accessibility → Wandful. Without it the wand still draws; it just can’t cast.
Mouse gestures for keyboard shortcuts. Press ⌘⇧M, draw a ✓, release — Slack marks all read. Draw a circle — Terminal opens. Any shape you can repeat, bound to any shortcut or app.
macOS · free and MIT · one small binary, no account, no cloud, no telemetry
Three beats
Press ⌘⇧M (or Ctrl⇧M, or click the menu-bar icon). The screen dims a little and the wand follows your pointer, trailing sparks. Nothing is intercepted until this moment.
Hold a mouse button and draw. Size, angle and position don’t matter — a rune is whatever shape you can repeat. A strictness dial decides how close it has to be.
Let go. The wand sheathes itself, focus returns to the app you were in, and the shortcut is typed there — or the app you chose opens.
Changed your mind? Click without drawing, press Esc, or hit the ✕ in the corner. Right-click, scroll and drag in other apps are never touched while the wand is away.
Runes
There is no built-in alphabet to learn. You draw a rune once in the spellbook — or right on the screen the first time it fails to match — and from then on it is a spell.
Under the hood it is the $1 Unistroke recognizer — about 170 lines of Rust that resample, rotate, scale and compare the path. Small enough to read in one sitting, fast enough that you never wait for it. The demo at the top of this page runs the same algorithm.
Make it a spell
Draw something no spell knows and the wand doesn’t sulk — it asks. Name it, press the keys, and the rune you just drew is a spell. No settings window in between.
Missed a spell you do have? The wand says which one it nearly was and by how much (“closest was Check of Saving at 61%”) so you know whether to draw it again or turn strictness down a notch.
The spellbook
Every spell you have, the rune it answers to, and a canvas to draw new ones. Shortcuts are recorded by pressing them, not by typing their names. Apps are picked from a list.
Spells live in a plain spellbook.json in your config folder. Back it up, share it, edit it by hand. There is no account to lose it with.
Get it
Version 0.0.1, macOS (Apple silicon and Intel). Every build comes from GitHub Actions and carries a provenance attestation you can check.
# Homebrew
brew install --cask ostapondo/tap/wandful
Builds are not notarized yet, so the first launch is right-click → Open. Or build it yourself in about a minute once Rust, Node 20+ and the Tauri prerequisites are there:
# clone, install, run git clone https://github.com/ostapondo/wandful && cd wandful npm install npm run tauri dev # or a real app bundle npm run tauri build
Typing a shortcut into another app and recording one without other apps’ hotkeys firing both need it. System Settings → Privacy & Security → Accessibility → Wandful. Without it the wand still draws; it just can’t cast.
The code builds and runs there in theory — overlay, hook, casting are all written for it — but nobody has tried it on a real Windows machine yet, so it is not shipped. A report from one brings it back.
What the permission is used for, in checkable claims · what changed · what’s next · how to help — the most useful thing to send is a report from hardware nobody here has.
© ostapondo · MIT GitHub Discussions Issues Shortcuts are spells. The set is your spellbook. Drawing one is a swish.