Your windows,
in one long row.
Ribbon puts every window side by side on a strip that runs past the edges of your screen. Open another app and nothing gets squeezed. Move focus and the strip slides over. That's it.
One-time purchase · lifetime licence · macOS 13 or later on Apple silicon
Click the dock to open apps. Use the keys (in the real app they're ⌃⌥ + the same key), or swipe the screen.
Why a strip
Grid tilers squeeze. Ribbon scrolls.
Tiling managers like yabai, Amethyst and AeroSpace split your screen again every time an app opens, so every window gets thinner. Ribbon just adds a column next to the one you're in.
2 windows · each 50% wide
2 windows · each keeps its width
New windows go next to you
A new window opens to the right of the one you're using. Nothing else moves or changes size.
The strip follows focus
Move focus with a key or a three-finger swipe and the strip glides over with a spring animation.
Your layout sticks
Column order and widths come back after a restart. Each display and each Space has its own strip.
Displays & trackpad
One strip per display. A swipe that follows your fingers.
Multi-monitor, one strip per display
Every display has its own strip with its own focus and scroll position. Columns snap flush to the edge instead of hanging over onto the screen next door, and ⌃⌥N sends the focused window to the next display.
A trackpad swipe that follows your fingers
Swipe with three fingers and the strip moves with them, one to one, then settles on the nearest column. Scroll sideways over the demo above to feel it.
New in 0.3
What's new
A strip indicator you can click
Hold ⌃⌥ and the indicator stays on screen. Click a tile to jump to that window, or drag a tile to reorder your columns.
Native tabs, one column
Finder, Terminal and other apps with macOS window tabs take one column, not one per tab.
Dialogs float on their own
Dialogs, Quick Look and image previews stay floating above your windows instead of becoming columns.
Ready after sleep
After sleep, a locked screen or displays waking up, Ribbon sets itself up again on its own. No restart needed.
Smoother swipes
Windows coming in from off screen glide in with the strip, and a quick change of direction keeps following your fingers.
Calm with stubborn apps
An app that refuses a window size no longer makes the strip twitch. Ribbon lets it keep its size and lays out around it.
Mac Setup
Checks the macOS settings a scrolling window manager needs and warns if Rectangle, Magnet or another manager is running.
Centre modes
Keep the focused column centred never, only when the strip overflows, or always.
Automation
A ribbon:// URL scheme and a command-line tool, for Raycast, Shortcuts and scripts.
Everything else
Everything you need, nothing to configure.
Strip indicator
A frosted bar with each column's app icon appears while you navigate, shows where you are, then fades out.
Focus border and dimming
An optional border around the focused window, and optional dimming for everything else.
Stacks and tabs
Put several windows in one column, pull them out again, or flip a column to tabs with ⌃⌥⇧T.
Session restore and launch at login
Column order and stacks survive restarts, and Ribbon can start with your Mac and begin tiling.
Smart floating
Fixed-size windows, like Calculator, float on their own. So do Ribbon's own settings.
Per-app window rules
Float the apps that shouldn't tile. Pick the app from a list of what's running.
Focus follows mouse
Optional, along with mouse follows focus. Both are off by default.
Rebindable shortcuts
Every shortcut can be changed, one action can have several bindings, and the recorder works on any keyboard layout.
Settings apply instantly
Change a gap, a width or a key and see it on screen straight away. No Save button, no restart.
Native fullscreen left alone
Put a window into macOS fullscreen and Ribbon stays out of its way.
Self-healing engine
If the engine ever stops, the app restarts it, and the engine log shows what happened.
Built for Apple silicon
Native arm64 on every M-series Mac (M1 and later) running macOS 13 Ventura or later.
Shortcuts
Control + Option, then one key.
Navigate
Size
Stacks
A real Mac app: SwiftUI on top, Rust underneath.
The window engine is written in Rust and runs as a small background process. Animation is a vsync-locked spring that starts the instant you press the key, and shortcuts are handled by the engine directly, so moving around the strip feels immediate.
The app you see is native SwiftUI: a menu bar item and a settings window where every option has a control. No Electron, no web view, no config file to learn. It needs one permission, Accessibility, because that is how macOS lets any window manager move windows.
Pricing
Pay once. Keep it.
No subscription and no account.
1 Mac
one-time
- Lifetime licence
- Free updates forever
- Native on Apple silicon
- Move it to a new Mac any time
3 Macs
one-time
- One key, 3 activations
- Move it between Macs
- Free updates forever
- Email support from the developer
5 Macs
one-time
- One key, 5 activations
- Move it between Macs
- Free updates forever
- Email support from the developer
20 Macs
one-time
- One key, 20 activations
- For teams
- Free updates forever
- Email support from the developer
Requires macOS 13 Ventura or later on Apple silicon. Checkout by Dodo Payments.
All sales are final: no refunds (terms). Check the requirements first.
FAQ
Questions
What is a scrolling window manager?
Instead of fitting all windows onto one screen, it lays them out left to right on a strip that's wider than your screen. You see a few at a time and scroll to the rest. PaperWM on GNOME and niri on Linux made the idea popular. Ribbon brings it to the Mac.
How is it different from Rectangle or Magnet?
Those snap a window to a half or a corner when you ask. Ribbon arranges every window all the time, so you never drag or resize by hand.
And from yabai, AeroSpace or Amethyst?
Those are grid tilers: each new window splits the screen again, so windows get smaller. Ribbon never shrinks your windows. It adds a column and scrolls.
Why does it need Accessibility permission?
macOS only lets an app move and resize other apps' windows through the Accessibility API. Ribbon doesn't read what's on your screen and doesn't send anything anywhere. No SIP changes, no kernel extensions.
Does it work on Intel Macs?
No. Ribbon runs only on Apple silicon Macs (M1 and later) with macOS 13 Ventura or later. Since all sales are final, please check your Mac first: Apple menu → About This Mac should say "Chip: Apple M…".
Multiple monitors and Spaces?
Every display gets its own strip with its own focus and scroll position, and so does every Space.
How many Macs can I use it on?
The standard licence covers 1 Mac for $19.99. There are also 3-Mac ($49.99), 5-Mac ($79.99) and 20-Mac ($299.99) licences. To move a licence to a new Mac, deactivate it in Ribbon on the old one first.
Can I get a refund?
No. All sales are final, so please check the requirements (macOS 13 Ventura or later, Accessibility permission) and try the demo on this page before you buy. If something doesn't work on your Mac, email us and we'll sort it out.
Is it on the Mac App Store?
No. App Store apps run in a sandbox that can't move other apps' windows, so no window manager like Ribbon can be sold there. You buy it here instead. The download is signed and notarized by Apple.
Stop rearranging windows.
Pay once, $19.99, and keep it. Free updates forever.