§ Feature

Hotkey-driven actions and automation

One key combo, several steps run in order: type this, press that, wait a beat, run a command. Bind it once, limit it to the apps where it makes sense, and it fires every time.

Shortcut · ⌥K
⌥K
iiTermVVSCodeZZedCClaude
Actions
Text
/clear
Key
return
claude — zsh
 Welcome to Claude Code
/help · cwd: ~/dev/keymic-web
>refactor the checkout flow
● Read(src/lib/stripe.ts)
  ⎿ 142 lines
● Grep("createCheckout")
  ⎿ 4 matches · 3 files
● Edit(api/stripe/checkout/route.ts)
  ⎿ +38 −12
Moved pricing lookup into a shared helper and tightened redirect validation. Tests pass.
Tokens: 24.1k in · 3.2k out · $0.19
 New session started
Context cleared · tips: /help
>/clear

Four action types, run in sequence

A binding is a list of steps, executed in order on a background queue so a slow shell command never blocks your keystrokes:

Scoped to the apps you choose

Every binding can carry a list of app bundle IDs it applies to — leave it empty and the shortcut is global, add apps and it only fires in those. The same ⌥K, for instance, can mean one thing in a terminal and nothing at all in a browser.

No collisions, anywhere in KeyMic

Hotkey bindings share one conflict registry with every other hotkey-owning feature — the voice trigger, the clipboard panel, the vault panel, key mappings, and Personas. Recording a new shortcut checks it against all of them, not just other hotkey actions, so you find out about a clash while you are still naming the binding, not the first time it silently fails to fire.

What macOS keeps for itself

A fixed set of system shortcuts — copy, paste, undo, quit, Spotlight, screenshot keys, and a few dozen more — cannot be reassigned to a binding; the recorder tells you a combo is reserved instead of letting you save over it. Standalone function keys (F1–F20) are fair game and need no modifier at all, which is useful for a dedicated action key your keyboard would otherwise waste on brightness or media controls.

Where the limits are

A binding is a fixed sequence, not a script: no conditionals, no loops, no reading a shell command’s output back into a later step. Chain enough waits and key presses and you can cover most editor/terminal workflows, but anything that needs branching logic belongs in the shell command itself, not in the sequence around it.

Permissions

Hotkey actions run through the same Accessibility-gated event tap as key remapping — see keyboard remappingfor that model. A shell-command step runs with your full user permissions, so treat a bound command the way you would anything you’d type into Terminal yourself; Security & Architecture covers the rest of the permission surface.

Download for MacmacOS 14.0+ · 4.5 MB · AGPL-3.0 · v1.0.3

Also in KeyMic: voice input and dictation, or see everything on one page.