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

Cropping a Pin

You can keep only part of a pinned window in view, such as a sports score on a web page or the last lines of a long-running task.

  1. option-drag across the pin to select the area you want to keep
  2. Release the mouse button. The pin shrinks to that area and stays on top, still live

Drag a cropped pin to move it anywhere on the screen, or drag any of its edges or corners to show more or less of the window around it. It cannot grow past the edge of the window. option-drag inside it to keep a smaller area, and option-click it to show the whole window again. A cropped pin stays on top while you use other windows of the same app, and drops behind only while you use the pinned window itself.

The crop is a fixed area of the window, so content that scrolls or reflows can move out of it. A crop shows only what the window is showing: switch a tabbed window to another tab and the crop no longer shows the tab you cropped. To keep watching one tab, drag it out into its own window and pin that window instead. It can sit behind your other windows.

Interacting with Overlays

ActionResult
Scroll an overlayScrolls the pinned window, under the pointer, without changing the app you are working in
Click an overlayBrings the real window to the front; overlay drops behind it
option-drag an overlayCrops it to the area you select (see Cropping a Pin above)
Drag a cropped overlayMoves it anywhere on screen
Drag an edge or corner of a cropped overlayShows more or less of the window, up to its edge
Switch to the pinned window's appOverlay automatically drops behind the real window
Switch to a different appOverlay 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

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, 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:

  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

Or install it with Homebrew: brew install --cask perpetualbeta/jorvik/windowpin

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).