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

  1. Click the window you want to pin to bring it to the front
  2. Press controlcommandP
  3. A live overlay appears on top of all other windows

Press the shortcut again to unpin.

Using the menu

  1. Click the window you want to pin to bring it to the front
  2. Click the pin icon in the menu bar
  3. Click Pin next to the frontmost window

Interacting with Overlays

ActionResult
Click an overlayBrings the real window to the front; overlay drops behind it
Drag an overlayRepositions the overlay on screen
Switch to the pinned window's appOverlay automatically drops behind the real window
Switch to a different appOverlay floats back on top

Settings

Right-click the pin icon and choose Settings… to configure:

Capture

RateBest For
0.5 fpsStatic content (documents, reference pages)
1 fps (default)General use
2–5 fpsSlowly changing content (dashboards, chat)
10–30 fpsVideo 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

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

Permission status can be checked in Settings.

Installation

Download the installer, or:

  1. Download WindowPin.zip from the link above
  2. Unzip and drag WindowPin.app to your Applications folder
  3. Double-click to launch — grant permissions when prompted

Building from Source

WindowPin uses Swift Package Manager. No Xcode project is required.

  1. Clone the repo: git clone https://github.com/PerpetualBeta/WindowPin.git
  2. Run gmake build
  3. Launch with open .build/WindowPin.app

Requirements

macOS 14 (Sonoma) or later. Universal binary (Apple Silicon and Intel).