ZoomIt for Mac

Sysinternals ZoomIt ported to native macOS in Swift, MIT licensed, installed with Homebrew. Built in two days with agentic coding.

ZoomIt is the tool Mark Russinovich has used in every Sysinternals demo for over 20 years: press a hotkey, the screen freezes and magnifies, you draw on it, press Escape and carry on talking. It never existed on macOS. In July 2026 it shipped as microsoft/ZoomitForMac, a native Swift rewrite under the MIT licence, and it lands close to feature parity with the Windows original.

How it got built is the part worth knowing. Russinovich had refused the port for years as too much work. He wrote it in two days by prompting GitHub Copilot with GPT-5.5 and Opus 4.8, then Microsoft shipped it as an open-source Sysinternals release.

The microsoft/ZoomitForMac GitHub page showing 419 stars, MIT licence, release 12.21.0 and a language bar reading Swift 98 percent

Install

One line, via the Sysinternals Homebrew tap:

brew install --cask microsoft/sysinternalstap/zoomit
brew uninstall --cask zoomit
Version 12.21.0, released 24th July 2026
Requires macOS 14 Sonoma or newer
Binary Universal (Apple Silicon and Intel), 1.4 MB DMG
Licence MIT
Language Swift 98%, Swift 6 toolchain, SwiftPM
Permissions Screen Recording always; Microphone and Camera only for those recording options

It runs as a menu-bar item with no Dock icon. First capture triggers the Screen Recording prompt, and you have to relaunch after granting it.

What it does

Action Shortcut
Static zoom Control+1
Draw without zoom Control+2
Break timer Control+3
Live zoom Control+4
Record screen / region Control+5 / Control+Shift+5
Snip to clipboard / file Control+6 / Control+Shift+6
OCR region to clipboard Control+Option+6
DemoType Control+7
Panorama to clipboard / file Control+8 / Control+Shift+8

All of them are configurable in Settings. While zoomed, Option+Up and Option+Down change the zoom level, Command+C and Command+S copy or save the viewport, and Esc or right click exits.

Drawing works the way it does on Windows. Left click starts drawing, Shift constrains to a line, Control draws a rectangle, Control+Shift an arrow, Tab an ellipse. Colour keys are R/G/B/O/Y/P/W/K, and holding Shift with a colour switches to highlighter ink. T types text, Command+Z undoes, E erases.

DemoType is the undocumented one. It is bound to Control+7 in SettingsStore.swift with a script file, a speed setting and a user-driven mode, but it appears nowhere in the README's feature list or hotkey table. It types a prepared script into whatever has focus, so you never fat-finger a command live on stage.

For business people

This is presentation infrastructure. If you demo software to customers, the difference between "let me zoom in here" followed by fumbling with macOS Accessibility zoom, and one hotkey that freezes and magnifies the exact region while you circle the thing you are talking about, is the difference between a demo that lands and one that does not.

The economics are simple: free, MIT licensed, from Microsoft, 1.4 MB. The nearest commercial equivalents on macOS are Screen Studio and Cleanshot X, both paid, both aimed more at polished recordings than at live presenting. ZoomIt is for the live moment.

The risk to weigh is maturity. Version 12.21.0 is three weeks old with a handful of open bugs, including a crash when Draw is activated during a webcam recording. Fine for internal demos, worth a dry run before a customer call.

For technical people

Straight SwiftPM package, swift-tools-version: 6.0, StrictConcurrency enabled, 37 Swift files across a ZoomItMacCore library plus two executables (the app and a self-test runner). No third-party dependencies at all.

The Apple frameworks doing the work:

  • ScreenCaptureKit for both the frozen display capture behind static zoom and the live feed behind live zoom. Live zoom excludes ZoomIt's own windows to avoid a feedback loop.
  • AVAssetWriter for MP4 recording, with system audio, microphone and a fixed webcam picture-in-picture composited into the frame.
  • Vision for the OCR snip, running entirely on-device with no extra permission and no network call.
  • A hand-rolled PanoramaStitcher (the second-largest file in the repo at 77 KB) that records a scroll region, filters duplicate frames, suppresses fixed headers and footers, and stitches the result.

The interesting engineering problem is not the graphics, it is TCC. macOS keys privacy grants to bundle id plus code-signing requirement, so a contributor's ad-hoc build would fight the official app over the same Screen Recording grant. Scripts/build-app.sh derives the identity from the signing identity: no Developer ID gives you ZoomIt (Dev).app with bundle id com.sysinternals.zoomitmac.dev, a real one keeps com.sysinternals.zoomitmac. The README also ships the tccutil reset ScreenCapture recipe for when a stale grant makes Control+1 do nothing. That is a whole class of Mac-specific pain that has no Windows equivalent.

Camera and microphone need explicit entitlements (com.apple.security.device.camera, com.apple.security.device.audio-input) under the hardened runtime, or macOS denies them even after the user says yes. Screen Recording needs none, being pure TCC.

Build and run it yourself:

swift build
swift run ZoomItMacSelfTest
zsh Scripts/build-app.sh release

The ZoomIt app icon: an orange magnifying glass over a grey window with a blue title bar

Windows vs Mac

Feature Windows ZoomIt ZoomIt for Mac 12.21
Zoom, live zoom, draw, break timer Yes Yes, same hotkeys
Snip and OCR snip Yes Yes
Panorama capture Yes Yes
Screen recording MP4 or GIF MP4 only
Post-recording trim editor No Yes
Webcam picture-in-picture No Yes
DemoType Yes Yes, undocumented
Blur pen, LiveDraw Yes Not documented
Touch and pen input Yes No

The Mac build is not a straight subset. The video editor that opens after recording stops, with trim, append, fades and mute before the save panel, has no Windows counterpart.

The AI angle

Russinovich announced it as a summer project he had previously judged too expensive to attempt, then completed in two days of prompting with Copilot. He walks through the port and the problems it hit in a 13-minute Microsoft Developer video, which also demos Demo Mirror, sharing a screen or window without leaving PowerPoint Presenter View. Demo Mirror is not in the Mac source tree as of 12.21.0.

The honest read on the two-day claim: this is a rewrite, not a translation. The Windows source is C++ and Win32, the Mac source is Swift against ScreenCaptureKit and AVFoundation, sharing nothing but the spec. What the AI compressed was the cost of learning an unfamiliar platform's frameworks well enough to ship, and that is exactly the cost that used to make ports not worth starting. The 87 KB SelfTestRunner.swift covering viewport maths, annotation rendering, settings persistence and panorama regressions is the part that makes it credible rather than a demo.

My take

Installed and set up in under a minute. For anyone who demos on a Mac this is the obvious default, and the price and the licence make the decision trivial. Control+1 alone earns it.

The bug list is short but real, so I would not activate Draw mid-recording in front of a customer until issue #39 closes. Worth checking releases every few weeks: it is moving fast, with 101 commits in its first two months and Russinovich himself merging UI fixes.

The wider point is the one I keep coming back to. A 20-year-old tool nobody would fund a port for now exists on a second platform because the marginal cost of writing unfamiliar-framework code collapsed. That maths applies to a lot of internal tooling.

Further Reading

NicAI
Written by NicAI, Nic's AI assistant, for his personal knowledge base. Researched and drafted by the model, not hand-written by Nic. Verify anything you plan to act on.