When you need a floating screenshot
You're implementing a design and need to see the mockup while you code. You're following a tutorial and need the instructions visible while you work in another app. You're comparing two versions of a UI and need both screenshots visible simultaneously. In all these cases, you need a screenshot that stays on top of every other window — a floating reference.
macOS doesn't have a built-in "always on top" toggle for regular windows. But there are several reliable ways to pin a screenshot so it floats above your workspace. This guide covers every method, from built-in tools to dedicated apps.
Method 1: Stickies (built-in, no install)
Stickies is a built-in macOS app that most people forget exists. Sticky notes float above regular application windows by default, and they support images.
1. Take your screenshot (or copy an image to the clipboard).
2. Open Stickies (search for it in Spotlight with Cmd+Space).
3. Create a new note (Cmd+N).
4. Paste the screenshot (Cmd+V).
The sticky note now shows your screenshot and floats above most other windows. You can resize it by dragging the edges and position it anywhere on screen. To keep the note always visible across desktops, right-click the title bar and choose Translucent to reduce its visual weight while you work underneath it.
Stickies limitations
Stickies notes don't have opacity controls beyond the translucent toggle. You can't click through them (they block mouse input on the area they cover). And if you have many sticky notes, managing them gets messy. For quick, one-off references, Stickies works well. For regular use, a dedicated tool is better.
Method 2: Preview in a separate Space or Split View
While Preview doesn't have an always-on-top mode, macOS window management features can keep it persistently visible.
Split View
1. Open your screenshot in Preview.
2. Hover over the green full-screen button in the title bar.
3. Choose Tile Window to Left of Screen (or right).
4. Select your working app (code editor, browser, etc.) for the other half.
Your screenshot now occupies one side of the screen while you work in the other half. Drag the divider to give more space to whichever side needs it. This is reliable and built into macOS, but it forces a 50/50 (or adjustable) split — you can't have a small floating thumbnail.
Stage Manager (macOS Ventura and later)
Stage Manager groups windows together. Open your screenshot in Preview, then drag it into your current Stage Manager group. It stays alongside your working windows without disappearing when you switch focus. Not true floating behavior, but it keeps the reference accessible.
Method 3: QuickTime Player picture-in-picture trick
QuickTime's picture-in-picture (PiP) mode creates a genuine always-on-top floating window. With a small workaround, you can use it for static images.
1. Create a short video from your screenshot. In Terminal:
# Convert a screenshot to a 5-second video
ffmpeg -loop 1 -i ~/Desktop/screenshot.png -c:v libx264 \
-t 5 -pix_fmt yuv420p ~/Desktop/screenshot.mp4
(Install ffmpeg with brew install ffmpeg if you don't have it.)
2. Open the video in QuickTime Player.
3. Start playback, then right-click the video and choose Enter Picture in Picture.
The PiP window floats above all other windows, snaps to screen corners, and can be resized. It's a genuine always-on-top window that macOS manages natively. The downside: you need to convert each screenshot to a video first, which adds friction.
Method 4: Helium (free, lightweight)
Helium is a free, open-source floating browser window for macOS. It stays on top of all other windows and can display images, web pages, or local files.
1. Download Helium from the Mac App Store (free).
2. Open Helium and drag your screenshot file into the window, or use File > Open Location and enter the file path.
3. Helium stays on top automatically. Resize and position it anywhere.
Helium supports adjustable transparency — set the window to semi-transparent so you can see your work underneath while still referencing the screenshot. You can also click through the transparent areas if you enable the "translucency" mode, meaning the floating screenshot doesn't block your mouse from interacting with windows below it.
Method 5: CleanShot X pin feature
CleanShot X (a paid screenshot tool) has a dedicated "Pin to Screen" feature designed exactly for this use case.
1. Take a screenshot with CleanShot X.
2. In the floating preview overlay, click the Pin button (thumbtack icon).
3. The screenshot pins to your screen as a floating overlay.
Pinned screenshots in CleanShot X can be resized, repositioned, and their opacity adjusted with a slider. You can pin multiple screenshots simultaneously and they all stay on top. Click-through is supported in recent versions, so the pinned image doesn't interfere with your mouse interactions.
Method 6: Using a simple AppleScript
You can create a minimal always-on-top image viewer with AppleScript. Save this as an application in Script Editor:
-- Save as Application in Script Editor
set imageFile to choose file with prompt "Select a screenshot to pin:"
set imagePath to POSIX path of imageFile
tell application "Safari"
activate
make new document with properties {URL:"file://" & imagePath}
end tell
delay 1
tell application "System Events"
tell process "Safari"
-- Resize to a small floating window
set size of window 1 to {400, 300}
set position of window 1 to {50, 50}
end tell
end tell
This opens the screenshot in a Safari window that you can position as a reference. It won't stay on top by default, but combining it with a window management utility (see below) solves that.
Method 7: Window management utilities with always-on-top
Several general-purpose Mac utilities add an always-on-top toggle to any window, including Preview showing your screenshot.
| App | Price | How to Pin |
|---|---|---|
| Rectangle Pro | $9.99 | Keyboard shortcut or right-click the green button > "Keep on Top" |
| BetterTouchTool | $10 | Custom trigger > "Set Window Always on Top" action |
| Afloat | Free | Menu bar toggle to pin any window. Works with SIMBL. |
| Raycast | Free | Search "Toggle Window Always on Top" command (built-in extension) |
The advantage of these tools: they work with any app, not just screenshot viewers. Open a screenshot in Preview, toggle always-on-top, and it stays floating. Most support keyboard shortcuts for quick toggling.
Comparison: every floating screenshot method
| Method | Free | Opacity Control | Click-Through | Setup Effort |
|---|---|---|---|---|
| Stickies | Yes (built-in) | Translucent toggle | No | None |
| Split View | Yes (built-in) | No | N/A | None |
| QuickTime PiP | Yes (built-in) | No | No | High (ffmpeg) |
| Helium | Yes | Slider | Yes | Low |
| CleanShot X | No ($29) | Slider | Yes | Low |
| Rectangle Pro / BTT | No | No | No | Low |
Best workflows for common use cases
Implementing a design from a mockup
Pin the mockup with Helium or CleanShot X's pin feature. Set opacity to 60–70% so you can see your code editor underneath. Position it next to the area of the screen you're building. Resize it to show just the component you're currently working on, then reposition as you move through the design.
Following a tutorial while working
Use Split View to give the tutorial (in Preview or a browser) one side and your working app the other. Adjust the divider so the tutorial gets about 30% of the screen. For shorter instructions, Stickies works well — paste the relevant screenshot and position the sticky note in a corner.
Comparing UI before and after changes
Take a "before" screenshot and pin it with CleanShot X or Helium. Make your changes, then visually compare the live version against the pinned reference. For pixel-level comparison, reduce the pinned screenshot's opacity and position it directly over the live UI — differences become immediately visible where the layers don't align.
Referencing error messages or logs while debugging
Screenshot the error, paste it into a Stickies note, and keep it visible while you work through the fix. This is faster than switching back and forth between the error and your editor, especially when the error message is long or contains file paths you need to reference.
LazyScreenshots captures any part of your screen and pastes it directly into Claude, Cursor, Slack, or Jira with one shortcut. No file juggling, no window switching. Perfect for developers who need to reference and share screenshots fast. $29 one-time.
Try LazyScreenshots — $29 one-time