Open-source project
sumimakito/Mac-Duo avatar
sumimakito/Mac-Duo

Mac Duo brings the iPhone Duo lid-close effect to the MacBook screen

Wish you could bring the iPhone Duo effect to your MacBook?

930 stars69 forksSwiftApache-2.0

At a glance

What is it?
Mac Duo is a Swift menu bar app that renders a perspective, blur and dim transition on the built-in display as the MacBook lid closes. It needs macOS 14, Screen Recording permission and a compatible lid angle sensor, which rules out most Macs.
Who is it for?
Mac Duo is for MacBook owners who already like the iPhone Duo gesture and want the same visual on a machine whose lid angle sensor macOS recognises as built-in, running macOS 14 or later. It is not for desktop Macs, external displays, or anyone who cannot grant Screen Recording permission, because the README states the effect applies only to the built-in display and stops when macOS sleeps as the lid closes.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 6 days ago.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 16, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Mac Duo actually does, and who it is for

Mac Duo answers a narrow question: can the tilt, blur and fade that the iPhone Duo shows when you close it be reproduced on a MacBook? The README frames the project exactly that way, as bringing the iPhone Duo effect to the MacBook. The effect is triggered by the lid, not by a keyboard shortcut, so the audience is people who close a MacBook many times a day and want that closing motion to look deliberate rather than abrupt.

It is a menu bar app, not a full-screen utility. Controls live in the menu bar, and the README shows a menu screenshot with the app's settings. The interface ships in English and Simplified Chinese. The repository topics list flip, iphone, iphoneduo, mac, macos, menubar, menubar-app and menubarapp, which matches the description: this is a cosmetic, single-purpose macOS tool rather than a window manager or a display utility.

Because the effect is tied to the lid, it is not a general screen transition framework. If you want a fade when you switch spaces, or a blur behind a specific window, Mac Duo is the wrong shape. The README's own framing keeps the scope tight: close the lid, watch the content tilt, blur and fade as it moves.

ScreenCaptureKit, Metal, and the lid angle sensor

Three mechanisms do the work. ScreenCaptureKit captures the live screen content in real time, so the effect is applied to what is actually on screen rather than to a static snapshot. Metal renders that captured content with perspective, blur and dimming as the lid closes. The lid angle sensor supplies the input that drives the animation, which is why hardware support is a hard requirement instead of a preference.

The README states the perspective is adjustable, and the reason given is practical: you tune it to suit your viewing position so the effect looks more natural. That is a small but telling design decision. A tilt that looks correct from directly in front of the machine reads differently from an angle, and the default settings assume you are looking at the MacBook from the front.

One behaviour is easy to misread as a bug. The README says clicks pass through the effect to the apps underneath. The overlay is visual only; it does not capture input, so you can still interact with whatever is behind it. Combined with the note that the effect stops when macOS sleeps as the lid closes, the picture is of an animation that runs for the visible part of the closing motion and then yields to the system.

Installing Mac Duo and running a first build

The README points to two prebuilt downloads, a DMG and a ZIP, both attached to the dev release tag. They contain the latest development build for Apple Silicon and Intel Macs. The stated requirements are macOS 14 or later and a MacBook with a compatible lid angle sensor, and the app asks for Screen Recording permission when prompted, which is what enables the effect.

If you would rather build from source, the README requires Xcode with Swift 6.0 or later and a single script from the project directory:

sh
./build.sh

The script produces build/Mac Duo.app with an ad-hoc signature. You can open it from Finder, or build and launch in one step:

sh
./build.sh --run

Expect to re-grant Screen Recording permission after a rebuild with ad-hoc signing; the README calls this out directly. The repository layout is a normal Swift package, with Package.swift, Sources/, Tests/, Resources/ and assets/ at the top level, plus mise.toml for tool versioning. If the app reports that no sensor is available, the hardware does not meet the requirement and no amount of configuration will change that.

Where Mac Duo refuses to work

The known limitations list is unusually direct, and it defines the product's boundary more than its feature list does. Only MacBooks with a compatible lid angle sensor can use the effect, and the app reports when no sensor is available. The sensor must be one macOS marks as built-in; an external display with a similar sensor is ignored. The effect applies only to the built-in display. It stops when macOS sleeps as the lid closes.

Read together, those four lines exclude a lot of setups. A Mac mini or Mac Studio has no lid. A MacBook driving an external monitor gets the effect on the laptop panel, not on the monitor you are actually looking at. A clamshell setup defeats the whole premise, because the built-in display is off. Even on supported hardware the animation is short by design, since sleep takes over as the lid finishes closing.

The permission requirement is the other practical failure mode. Screen Recording is what allows ScreenCaptureKit to read the display, and the README notes macOS may require it again after rebuilding with ad-hoc signing. If the effect does not appear, the first thing to check is that permission, not the perspective setting.

Mac Duo compared with the iPhone Duo and with a plain lid close

The obvious alternative is the thing Mac Duo imitates: the iPhone Duo's own closing animation, which is built into the hardware and needs no installation, no permission and no sensor check beyond the phone itself. The difference in approach is where the rendering happens. On the iPhone the effect is part of the platform. Mac Duo reconstructs it on macOS by capturing the screen with ScreenCaptureKit and compositing it with Metal, which is why it needs Screen Recording access and a GPU pass that the platform would otherwise handle internally.

The second alternative is doing nothing, and it is a real option. Closing a MacBook lid already dims and sleeps the display. Mac Duo adds perspective, blur and dimming on top of that brief window, and the README concedes the effect is best viewed from in front of the machine. Anyone who closes the lid and walks away will see very little of it.

The trade-off is therefore not performance but fit. A native platform effect costs nothing and works everywhere. Mac Duo costs a permission grant, a sensor check and a development build, and returns a specific visual that only appears on one display for the moment before sleep.

Maintenance, licensing and the dev-build caveat

The repository is not archived, and the last push was on 2026-09-14, two days before this writing. The only release listed is dev, tagged Mac Duo 0.1.0-dev.15.1, published the same day. That version string is the honest summary of the project's maturity: a 0.1.0 development build published under a dev tag, with the README linking its DMG and ZIP downloads to that same tag. There is no stable release channel to fall back on, so an upgrade means moving between development builds.

Upgrade cost is mostly about permissions and signing. The prebuilt app is signed and notarized with an Apple Developer Program membership that the README credits to Moeru AI, so the downloaded DMG and ZIP should behave like a normal signed app. A local build is ad-hoc signed, and the README warns that macOS may ask for Screen Recording permission again after rebuilding. Budget for that prompt on every source rebuild.

Licensing is Apache-2.0, copyright 2026 Makito, with a separate NOTICE file for attribution. The README explicitly invites reusing the code in your own projects and asks for sponsorship if you find it helpful. Apache-2.0 permits commercial use and modification, but it carries notice and attribution obligations, so keep the LICENSE and NOTICE files with any redistribution. That is a description of the licence text, not legal advice; read the terms yourself if you plan to ship a derivative.

Editorial conclusion

Mac Duo is for MacBook owners who already like the iPhone Duo gesture and want the same visual on a machine whose lid angle sensor macOS recognises as built-in, running macOS 14 or later. It is not for desktop Macs, external displays, or anyone who cannot grant Screen Recording permission, because the README states the effect applies only to the built-in display and stops when macOS sleeps as the lid closes. Before adopting it, check the known limitations list and confirm the app reports a sensor: it is a 0.1.0-dev build from the dev tag, so treat the code and the DMG as a moving target.

Frequently asked questions

Is there a Duo app for Mac?

Yes. Mac Duo is a menu bar app that reproduces the iPhone Duo effect on a MacBook, using ScreenCaptureKit and Metal to tilt, blur and fade the built-in display as the lid closes.

Can I use Mac Duo on my laptop?

Only if it is a MacBook with a compatible lid angle sensor that macOS marks as built-in, running macOS 14 or later. The README states the app reports when no sensor is available, and external displays with a similar sensor are ignored.

How do I install Mac Duo?

Download the DMG or ZIP from the dev release tag, or build from source with ./build.sh, which requires Xcode with Swift 6.0 or later and produces build/Mac Duo.app with an ad-hoc signature. Grant Screen Recording permission when prompted.

Does Mac Duo work on an external monitor?

No. The README lists this under known limitations: the effect applies only to the built-in display, so an external monitor shows nothing even when a sensor is present.

Why does the Mac Duo effect stop when I close the lid?

The README states the effect stops when macOS sleeps as the lid closes. The animation covers the visible part of the closing motion and then the system takes over.

Official sources

  1. Issues
  2. License: Apache-2.0
  3. README
  4. Releases
  5. sumimakito/Mac-Duo on GitHub
Community notes

Community notes