What It Does
WindowPin captures a live image of any window and displays it as a floating overlay that stays on top of everything else. The overlay updates continuously at a configurable frame rate.
When you switch to the app that owns a pinned window, the overlay automatically drops behind the real window so you interact with the actual app — not the overlay.
Pinning a Window
Using the keyboard shortcut
- Click the window you want to pin to bring it to the front
- Press controlcommandP
- A live overlay appears on top of all other windows
Press the shortcut again to unpin.
Using the menu
- Click the window you want to pin to bring it to the front
- Click the pin icon in the menu bar
- Click Pin next to the frontmost window
Interacting with Overlays
| Action | Result |
|---|---|
| Click an overlay | Brings the real window to the front; overlay drops behind it |
| Drag an overlay | Repositions the overlay on screen |
| Switch to the pinned window's app | Overlay automatically drops behind the real window |
| Switch to a different app | Overlay floats back on top |
Settings
Right-click the pin icon and choose Settings… to configure:
Capture
| Rate | Best For |
|---|---|
| 0.5 fps | Static content (documents, reference pages) |
| 1 fps (default) | General use |
| 2–5 fps | Slowly changing content (dashboards, chat) |
| 10–30 fps | Video or rapidly updating content (higher CPU usage) |
Pin to All Spaces — when enabled, pinned overlays appear on every Mission Control space. When disabled, they only appear on the space where they were created.
Shortcut
Click Change… to record a new keyboard shortcut. The default is controlcommandP. All settings persist across restarts.
General
- Accessibility permission — status display and grant button
- Menu bar icon pill — optional grey background for stronger contrast on busy or wallpaper-tinted menu bars (off by default)
- Launch at Login — start automatically when you log in
Auto-updates are handled by Sparkle. Use the “Check for Updates…” menu item to check on demand; Sparkle’s prompt offers an “Automatically download and install updates in the future” checkbox the first time an update is available. WindowPin checks for new versions automatically once a day in the background.
Permissions
- Accessibility — for the global keyboard shortcut and bringing windows to the front. macOS will prompt on first launch.
- Screen Recording — for capturing window content. macOS will prompt when you first pin a window.
Permission status can be checked in Settings.
Installation
Download the installer, or:
- Download WindowPin.zip from the link above
- Unzip and drag
WindowPin.appto your Applications folder - Double-click to launch — grant permissions when prompted
Building from Source
WindowPin uses Swift Package Manager. No Xcode project is required.
- Clone the repo:
git clone https://github.com/PerpetualBeta/WindowPin.git - Run
gmake build - Launch with
open .build/WindowPin.app
Requirements
macOS 14 (Sonoma) or later. Universal binary (Apple Silicon and Intel).