← Back
jaskirat1616

jaskirat1616/mactap-app

MacTap — knock your MacBook to run shortcuts

View on GitHub ↗
Stars
393
Forks
16
Watchers
393
Open issues
3
Contributors
1
Language
Swift
License
MIT License
Default branch
main
Created Sep 8, 2026Updated Sep 10, 2026

Star growth

Today—
This week—
This month—

Star history will appear here once this repo has been tracked for a couple of days.

README

MacTap app icon

MacTap

Knock the MacBook. The app does the rest.
mactap.vercel.app · Download · GitHub

MacTap lives in the menu bar and turns taps on the chassis — or the desk underneath a still laptop — into shortcuts. One, two, or three knocks. Copy, paste, Accept, screenshots, media, or whatever you map.

Requires a MacBook whose motion sensor is exposed as an SPU HID device: M2 and later, or M1 Pro / Max / Ultra. The original M1 Air (MacBookAir10,1) and some other M1 models do not publish the accelerometer HID report MacTap reads, so knocks cannot be detected. macOS 14.6 or later.

MacTap does not fall back to rebinding arrow keys when the sensor is missing.

Install

  1. Get 2.1.2 from the website or the latest GitHub release.
  2. Prefer MacTap-2.1.2.zip. Unzip and drag MacTap.app into /Applications.
  3. Or open MacTap-2.1.2.dmg and drag MacTap into Applications — do not run it from the disk image.
  4. Open MacTap from Applications (or Spotlight).
  5. Turn on Accessibility when asked, so knocks can send shortcuts.

Detection itself does not need Accessibility. Actions do.

macOS signature check

The app is Developer ID signed and notarized. Gatekeeper evaluates MacTap.app, not the .dmg wrapper. A codesign --verify on the disk image itself will say it is unsigned even when the build is good.

After you copy the app into Applications:

spctl --assess --type execute --verbose /Applications/MacTap.app

You want accepted and source=Notarized Developer ID. If a tool blocks the .dmg, install from the zip instead.

MacTap hero Knock shortcuts Presets

Use

  • Anywhere — one, two, or three knocks on the chassis or desk. Same idea as Knock.
  • Left & Right — each edge is a different set of actions.
  • Presets — Daily, Coding, Capture, Media, Focus.
  • Per app — Cursor can get Accept / Reject / Save while everything else stays on Daily.

Open Settings from the menu extra to change layout, actions, and sensitivity.

Build from source

brew install xcodegen
xcodegen generate
xcodebuild -project MacTap.xcodeproj -scheme MacTap -configuration Debug \
  CONFIGURATION_BUILD_DIR=/Applications
open /Applications/MacTap.app

A signed, notarized build:

./Scripts/ship.sh

That writes dist/MacTap-<version>.dmg. Notarization uses Xcode’s Developer ID export. Signing the disk image (not just the app) also needs App Store Connect API credentials: APP_STORE_CONNECT_KEY_ID, APP_STORE_CONNECT_ISSUER_ID, and APP_STORE_CONNECT_API_KEY_P8 (or AuthKey_*.p8).

Privacy

Taps are classified on-device. Nothing is uploaded. Gesture maps live in local defaults.

License

MIT