Open-source core · macOS 14+ · no SIP disable

You miss i3.
Your Mac has it now.

Panewright is an i3-style tiling window manager for macOS, built for developers who left Linux and left their window manager behind. Instant workspaces, modal keybindings, real multi-monitor, and a drag-to-tile interaction no other Mac tiler has — one config file, one menu bar app. Quit it, and your Mac is stock again.

Pre-1.0, in the open · Apple Silicon & Intel · your i3 config imports
The honest question

“Isn’t this just AeroSpace?”

Fair. AeroSpace is a great, free i3-like tiler — and Panewright's engine is its own build of it (patches in the open), shipped inside the app and running under Panewright's single permission grant, alongside JankyBorders and SketchyBar. Panewright is the layer that turns all of that into one app your parents could install — and adds the things a raw config can’t.

What Panewright adds

  • Ghost drag-to-tile — rearrange windows by dragging. No CLI tiler on macOS has this.
  • One config, three tools — tiling, borders, and bar from a single TOML, applied live. No shell scripts, no skhd.
  • A visual editor — sliders and pickers with real-time preview, for when you don’t want to hand-edit.
  • Self-healing — it supervises the engine and restarts what dies, including recovering a stalled tiler that would otherwise need a manual re-grant.
  • A real off switch — quit and your Mac is byte-for-byte stock.

Do it yourself instead

  • Install and configure AeroSpace, JankyBorders, and SketchyBar separately.
  • Write and maintain three config formats by hand.
  • Wire up your own bar scripts for workspaces, modes, and window pills.
  • Restart daemons yourself when the Accessibility API stalls.
  • That’s a legitimate choice — Panewright is MIT, so you can read exactly how it does all of it.
The headline act

Ghost drag-to-tile

Grab any window by its title bar and pull. The real window stays frozen — a red ghost marks the cell it came from, a blue ghost previews exactly where it will land. Release, and the tree reshapes in one motion.

Every drop means something

Drop on a window's center to swap. Drop on an edge to split its cell. Drop on a bar number to send it to that workspace. Drop on nothing to cancel.

It's the interaction Mac tiling has been missing.

12345 [RESIZE] native · vibrancy
12345 [RESIZE] technical · one toggle away
See it in motion

Every interaction, live

No mockups — these are screen recordings of the real app.

Muscle memory, intact

It types like i3

Ten instant workspaces, vim-keys focus, modal modes, scratchpad, per-app rules. Pick your modifier: Ctrl+Cmd (default), a Caps Lock hyper key, or a leader prefix.

⌃⌘ 1–0workspaces ⌃⌘ ⇥back & forth ⌃⌘ H J K Lfocus ⌃⌘⇧ H J K Lmove ⌃⌘ Rresize mode ⌃⌘ Gjoin mode ⌃⌘ −scratchpad ⌃⌘ Tto-do ⌃⌘ Ppark window ⌃⌘ Ffullscreen
01

Workspaces that don't animate

Virtual workspaces, not macOS Spaces — switching is a frame, not a cruise.

02

One config, live

A single TOML file. Save it — or drag sliders in the editor — and the desktop follows.

03

Profiles

Snapshot named setups. Switch from the menu.

The full inventory

Everything in the box

Tiling

  • Binary splits with configurable inner/outer gaps
  • Join mode — nest any two neighbors into a stack or row
  • Accordion — i3's stacking/tabbed, one key away
  • Flatten — the layout panic button
  • Fullscreen & floating toggles per window
  • Focus borders in any color, native rounded corners

Workspaces

  • Ten of them, keyboard-row ordered 1–9 0
  • Zero-animation switching, back & forth on $mod+Tab
  • Empty workspaces hide until they're occupied, i3-style
  • Multi-monitor — a bar per display with M1/M2/M3 badges, independent switching, $mod+N summons a workspace to your monitor, auto-distribution on plug/unplug
  • Scratchpad — stash and summon from anywhere
  • Clickable bar numbers — or drag a window onto one

Input

  • Ghost drag-to-tile — swap, split, or banish by drop zone, across monitors (drop on another screen's empty area to send the window there)
  • Cheat sheet — $mod+? lists your actual bindings, not a stock chart
  • Modifier styles: hyper, Ctrl-Cmd, Cmd, Ctrl/Alt, or a leader prefix
  • Modal keybindings with a live mode badge in the bar
  • Focus follows mouse, off by default
  • Command chains — several actions per key, i3-style

In the bar

  • System monitor — CPU/memory chip with live graphs; click for a mini-htop perf panel
  • Dev widgets — network throughput, listening ports, disk, battery, Docker, kubectl/AWS context (all opt-in, no sudo, no SIP)
  • To-do list — tasks as pills, each with notes, in plain text
  • Window pills — park a window in the bar, click to peek, drag it there to park
  • Mode badge so modal keys are never invisible
  • Native vibrancy or square monospace, one toggle apart

Your work, not just your windows

  • GitHub, GitLab, Jira pills — review requests, MRs with pipeline status, assigned issues
  • Microsoft Teams — next meeting in the bar, one click to join; browser SSO, no Teams app needed
  • Searchable panel — sort, filter, color-coded statuses, one click to the browser
  • Jira hierarchy — see how your tickets ladder up to their epics
  • Confluence reader — activity feed, favorites, inline images, zoomable diagrams
  • Tokens live in your Keychain, never in a config file

Rules

  • Always-float list by bundle ID (pickers, utilities)
  • Assign — apps that always open on their workspace
  • Sane defaults for macOS's quirky windows, out of the box

Config & tooling

  • One TOML file, applied live on save
  • Visual editor — sliders and pickers with real-time preview
  • Profiles — named setups, switchable from the menu
  • i3 importer with a line-numbered honesty report
  • Event hooks — run any script on workspace or focus change (yes, Python)
  • exec bindings launch anything

Care & feeding

  • Setup checklist installs the stack — no terminal needed
  • Auto-updates — a daily check, signed and delivered by Sparkle
  • Crash reports as GitHub issues — consent-first
  • Errors surface as notifications, never silence
  • Quit restores stock macOS — every window comes back
Make it yours

A bar you actually configure

Seventeen widgets, on from the first launch — and each one is a single toggle or right-click to remove if you'd rather a purer bar. Pick them from a window, drag to reorder. No sudo, no SIP, and never a config file unless you want one.

The Panewright bar with every widget enabled

System

  • CPU & memory with live sparklines — click for a mini-htop panel of load, uptime, and top processes
  • Network throughput, disk usage
  • Battery with the time remaining the menu bar hides

Developer

  • Listening ports — click for what owns each one
  • Docker containers, Homebrew updates, VPN status
  • Cloud context — kubectl and AWS profile, flagged red when it looks like production

Everything else

  • Microphone — click to mute, the widget every meeting needs
  • Volume, now playing, keyboard layout, Focus, weather
  • Work trackers — GitHub, GitLab, Jira, Confluence, and Teams pills, in the same picker

Hover a widget for three seconds and it names itself. One batched driver refreshes them all — one process per cycle, not one per widget.

How it stacks up

Against the other Mac tilers

AeroSpace, yabai, and Amethyst are all good tools — Panewright even runs on AeroSpace. Here's where it's genuinely different.

PanewrightAeroSpaceyabaiAmethyst
No SIP disablepartial
Drag-to-tile (ghost)
Instant workspaces (no animation)native Spacesnative Spaces
One config file✓ TOML✓ TOMLscript + skhdGUI
Visual editorprefs pane
Status bar includedbring your ownbring your own
Focus bordersadd-onadd-on
Import your i3 config
Self-heals a stalled engine
One-click setup (installs the stack)manualmanual
Open source✓ core

Comparison as of 2026, best-effort and honest — corrections welcome on GitHub.

What Panewright won't do — on purpose

yabai's flashiest tricks — per-window transparency, shadow removal, sticky all-space windows, pixel-grid placement — all require partially disabling System Integrity Protection. That's the security model Apple ships to protect you, and turning it off is exactly what Panewright refuses to do.

So we don't have those, and we never will. That's not a gap we're behind on — it's the line that lets you run Panewright without weakening your Mac. If a feature needs SIP off, it's not coming here.

Needs SIP disabled — not here
  • ✗ Window opacity / transparency
  • ✗ Custom window shadows
  • ✗ Sticky (all-spaces) windows
  • ✗ Pixel-grid window placement
Kept intact: your Mac's security, untouched.
Switching from Linux?

Your i3 config works here

Point the importer at your real ~/.config/i3/config. It translates what maps and tells you the truth about what doesn't — with line numbers, not silence.

panewright import ~/.config/i3/config
Imported 23 bindings and 2 modes Saved as profile 'i3-imported' 9 items need attention: line 5: terminal launcher → Terminal.app line 17: i3's stacking layout → accordion line 27: 'reload' isn't needed — config applies automatically line 40: i3bar → the [bar] section

Honest translation

Bindings, modes, gaps, scratchpad, colors — all come across. X11-isms get flagged, never dropped silently.

The result lands as a profile you inspect before activating.

Straight answers

Honest engineering

Does it disable SIP?

Never. Panewright's engine (its own build of AeroSpace, shipped inside the app) and the tools it orchestrates — JankyBorders, SketchyBar — all use public APIs. One brain, one config, one permission grant.

Why does it want Accessibility and Input Monitoring?

Accessibility moves windows; Input Monitoring lets the drag layer see a title-bar drag begin. It's all local — nothing is logged, stored, or sent anywhere, and the source is public so you can confirm it. No network calls except the update check and any integrations you turn on.

Won't it get flaky like other tilers?

macOS's Accessibility API can stall under load — the honest weakness of every Mac tiler. Panewright supervises its engine: a dead or stalled tiler is respawned, your window-to-workspace layout is snapshotted and restored across the restart, and the bar heals itself — instead of anything silently going dead until you notice.

Why isn't it on the App Store?

The sandbox forbids the Accessibility API that window management requires. Every serious tiler ships direct.

What happens when I quit?

Everything comes back — borders off, bar gone, every hidden window returned. macOS exactly as Apple shipped it.

What will it cost?

The core is open source (MIT) and stays that way — build it yourself for free, forever. A paid app is planned for the convenience layer: a signed, notarized, auto-updating build and the work-tracker integrations. Fund the roads, sell the car.

Not 1.0 yet

Built in the open

Panewright is under active development. The code, every release, and the roadmap live on GitHub — star or watch it there, and the 1.0 announcement will land on r/unixporn.