Shortcut Map

Every keyboard shortcut on your Mac, in one place.

A menu bar app that reads the menus of every running application and shows you the whole map — grouped by app, searchable, and exportable to PDF or PNG. Press ⌥⌘/ and there it is.

All releases

Version 1.2.1 · Free · macOS 14+ · Apple silicon & Intel

Shortcut Map
1,256 shortcuts across 22 apps · 7 conflicts
Click item to filter by shortcut
⚠ Conflicts
Export
All running apps ⌘ 1
Running
Terminal ⌘ 2
Mail ⌘ 3
Numbers ⌘ 4
Photos ⌘ 5
Notes ⌘ 6
Preview ⌘ 7
macOS System ⌘ 8
Terminal 42
⌘ KClear Scrollback
Edit
⌘ NNew Window
Shell
⌘ TNew Tab
Shell
⌃ ←Move Left
Window ▸ Move & Resize
⌥ ⌘ IInspector
Shell
Notes 31
⇧ ⌘ NNew Folder
File
⌥ ⌘ CChecklist
Format
Mail 54
⌘ ⌫Move to Trash
Message
⇧ ⌘ DSend
Message
⌥ ⌘ SSidebar
View ▸ customized
⌘ RReply
Message
⇧ ⌘ RReply All
Message
⇧ ⌘ JMove to Junk
Message
macOS System 28
⌘ ␣Show Spotlight search
Keyboard Shortcuts
⇧ ⌘ 4Save picture of selected area
Keyboard Shortcuts
⌃ ←Move left a space
Keyboard Shortcuts
⌃ ↑Mission Control
Keyboard Shortcuts
Numbers 67
⌥ ⌘ KAdd Link
Format
Shortcut Map 1.2.1 — macOS 27.0 ⌘ 1 all running · ⌘ 2–9 by app · ⌘ 0 actual size · Esc to close

Yellow marks a conflict — the same chord bound twice, or an app shortcut that a system hotkey swallows before the app ever sees it.

What's new in 1.2.1

1.2.0 — Intel Macs, and macOS 27

1.1.1 — a bigger map shows more

1.1.0 — resize the map from the keyboard

1.0.0 — filter by chord, and a size that fits you

0.9.3 — an installer that checks before it reports

0.9.2 — an honest update check

0.9.1 — Settings in front, on the right screen

0.9.0 — light and dark

0.8.0 — colors you can change

0.7.2 — readable over any wallpaper

0.7.1 — open at login

0.7.0 — tooltips that explain

0.6.1

0.6.0 — a ? guide, and colors that say who owns a chord

0.5.2 — pinning and the version line

0.5.1 — a grip you can grab

0.5.0 — resize, pin, and one-click update checks

0.4.0 — one app, full screen

0.3.1 — BetterTouchTool fixes

0.3.0 — one-click updating

Plus everything from 0.2.0: BetterTouchTool support, instant cached loading, hiding the shortcuts every app has, ⌘1–⌘9 navigation, pinning, and a clean uninstall.

Full release history →

What it does

Install

curl -fsSL https://github.com/dharmaje/shortcut-map/releases/download/latest/install.sh | sh

It downloads the disk image, copies the app to /Applications, and opens it. On first launch macOS asks for Accessibility access — Shortcut Map reads the menu bars of running apps, so it shows very little without it.

The installer also asks whether to open Shortcut Map when you log in. Answering no is the default, and the menu bar icon's Open at Login switches it either way afterwards. A scripted install can answer in advance with SHORTCUTMAP_LOGIN_ITEM=1 or =0.

Why Terminal and not a download button?

Shortcut Map is ad-hoc signed, not notarized, because there is no paid Apple Developer account behind it. Anything a browser downloads gets macOS's quarantine flag, and for an unnotarized app that produces a Gatekeeper dialog with no way through — the old Control-click → Open escape hatch is gone. Files fetched by curl are never quarantined, so the Terminal route avoids the problem rather than fighting it.

If you would rather have the disk image, take the DMG, drag the app to Applications, and then run this once:

xattr -dr com.apple.quarantine /Applications/ShortcutMap.app

Updating

Run the install command again. It is a plain overwrite and always fetches the newest build; your pinned and collapsed apps, and your colors, are kept.

The app checks once a day whether a newer release exists and, if so, says so in the menu bar and hands you the command. That check is the only network request Shortcut Map ever makes, and you can switch it off in the same menu — with it off, the app makes none at all.

Updating should not disturb your Accessibility grant: release builds are signed with a stable identity, so macOS recognizes the new version as the same app. If it does ask again, granting it once more is all that is needed.

Uninstalling

Either drag ShortcutMap.app to the Trash, or:

curl -fsSL https://github.com/dharmaje/shortcut-map/releases/download/latest/uninstall.sh | sh

The menu bar icon also has Uninstall Shortcut Map…, which does the same thing from inside the app.

What it leaves behind, if you just use the Trash

That is the whole list. The uninstaller and the in-app Uninstall remove all of it. macOS will not let any app remove its own Accessibility entry, so that one is left for you in System Settings.

What it can't see

Shortcuts with no menu item are invisible to every API involved here, so the map will not include them:

Electron and Catalyst apps also fill in their submenus lazily, so a first scan can under-report; rescanning fixes it, and every app card shows when it was last read.

Found a problem, or want something?

Bug reports and feature requests both live on GitHub, with a short form for each. Both need a free GitHub account — GitHub does not allow anonymous issues, and there is no way around that short of running a form service, which this project does not.

The app source is private, but this is the right place for both. Issues are public, and a shortcut map can reveal which applications you use — redact anything you would rather not publish before pasting output.

About that permission

Accessibility access is a serious thing to hand out, so plainly: Shortcut Map reads menu item titles and their key equivalents from running applications. It does not read keystrokes and does not watch what you type. It makes one kind of network request — a once-a-day check of this project's GitHub releases, which you can switch off in the menu bar, and which sends nothing about your Mac. Nothing else leaves the machine: not the shortcut map, not the list of apps you have installed.

The source is not published, so take none of that on trust alone. The uninstaller lists every file the app creates, and Little Snitch, Lulu or macOS's own firewall will show you exactly what it talks to — the one claim above that matters most, and the easiest to check for yourself.