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 |
|---|---|
| Scroll an overlay | Scrolls the pinned window, under the pointer, without changing the app you are working in |
| 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 |
Scrolling works by asking the pinned app to move its own scroll position, so the app has to offer one. Most Mac apps do, including Finder, Mail, Safari and Preview. Apps built on Electron or Chromium frequently do not, and a window with nothing scrollable simply will not scroll.
On macOS 14 to 26 clicks are forwarded into the pinned window as well, so buttons and links work in place, and command-click is what brings the real window forward. macOS 27 no longer lets one app deliver a click into another app's window, so on that version a click takes you to the real window instead.
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, or Clear to remove it. The default is controlcommandP. With no shortcut bound, nothing is intercepted and pinning is still available from the menu-bar icon. All settings persist across restarts.
General
- Accessibility permission — status display and grant button
- Show icon in menu bar — hide the menu-bar status icon while WindowPin keeps running; it remains reachable via its keyboard shortcut. Your choice persists across launches, including login auto-start. Shown only on macOS 14–15; on macOS 26 (Tahoe) and later, use System Settings → Menu Bar, which provides this natively.
- 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
If you’ve hidden the status icon and want it back, just re-open WindowPin from your Applications folder — it reappears immediately.
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
Or install it with Homebrew: brew install --cask perpetualbeta/jorvik/windowpin
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).