DEV Community

Apoorv Darshan
Apoorv Darshan

Posted on

I built TetherShot: pixel-perfect iPhone screenshots from the Mac menu bar

I take a lot of iPhone screenshots for docs and design reviews. The usual workflow (plug in, open QuickTime, screen record, crop) is annoying. I wanted a menu-bar button.

So I built TetherShot: a tiny native macOS app that grabs a real iPhone framebuffer at full 1179x2556, drops it in a folder you choose, and copies it to your clipboard.

Two ways to capture:

  • USB: native AVFoundation. It flips the CoreMediaIO AllowScreenCaptureDevices flag so the iPhone appears as a .muxed AVCaptureDevice. Instant, full res, zero setup.
  • Wi-Fi: cable-free over Apple's developer-services RemoteXPC tunnel. A small root tunneld daemon keeps it alive, so captures need no sudo and work even when the phone is locked.

The fun part: my first version mirrored over AirPlay and captured with ScreenCaptureKit. On macOS Tahoe, the mirrored window blacks out whenever a capture context is active. I scrapped it for the framebuffer path.

It's a Swift app shipped over npm. The postinstall builds from source, so there's no quarantine attribute and no Gatekeeper warning.

npm install -g tethershot
tethershot install
Enter fullscreen mode Exit fullscreen mode

MIT, local-first, no accounts or telemetry.

https://github.com/apoorvdarshan/TetherShot

Top comments (0)