The keystroke relay — chain shortcuts to any destination.
A macOS menu bar app that lets you define multi-key chord shortcuts that relay your intent to apps, shell commands, URLs, and more. Inspired by Vim's <leader> key and tmux prefix bindings.
Forked from mikker/LeaderKey — renamed per the author's request when distributing.
Press your trigger key, then follow with a sequence of keys. Each key navigates a tree of shortcuts until you reach an action — which Relay fires off to its destination.
- triggerom → Open Messages
- triggermm → Mute audio
- triggerwm → Maximize window
No fuzzy search, no typing names — just muscle memory.
Download the latest Relay.zip from Releases, unzip, and move Relay.app to /Applications.
First launch: macOS will block the app because it isn't notarized (requires a paid Apple developer account). To bypass Gatekeeper:
xattr -dr com.apple.quarantine /Applications/Relay.appThen open normally.
Build from source:
git clone https://github.com/unstrike/Relay.git
cd Relay
open "Relay.xcodeproj"- Click the menu bar icon → Settings
- Set your trigger key (
Shortcut) — any key or combo, e.g. F12, ⌘⌥Space, or a hyper key via Karabiner - Add shortcuts in the Config tab
- F12
- ⌘ + Space
- ⌘⌥⌃⇧ + L (hyper key)
- Caps Lock → F12 via Karabiner (tap to trigger, hold for hyper)
Top-level groups can be assigned a global shortcut that fires them directly — skipping the trigger key entirely. Click the shortcut field on any top-level group row in the Config editor and record a key combo.
Useful for your most-reached groups when a single chord beats a two-step sequence.
Relay supports URL scheme automation for integration with Alfred, Raycast, shell scripts, and more.
# Show the Relay window
open "relay://activate"
# Navigate and execute a shortcut sequence
open "relay://navigate?keys=o,m"
# Navigate without executing (preview)
open "relay://navigate?keys=o,m&execute=false"
# Reload config from disk
open "relay://config-reload"
# Reveal config.json in Finder
open "relay://config-reveal"
# Open settings
open "relay://settings"
# Reset navigation to root
open "relay://reset"Command action failing with "Command not found"?
Your shell's PATH must be exported in the non-interactive config file:
- zsh:
~/.zshenv - bash:
~/.bash_profile
Disabled the menu bar icon and can't get back?
Activate Relay, then press ⌘,.
MIT