mrkeyoor.com_
Wed 23 Sept 23:35 UTC
Dev Toolsevaluationupdated 23 Sept 2026

rift review

Rift is a tiling window manager for macOS that arranges application windows into keyboard-driven layouts while keeping animations and trackpad workspace gestures. It aims at people who like i3, bspwm, dwm, or niri-style organization but want it integrated with a Mac menu bar and multiple displays.

Verdict

Our Rift run installed 195 packages in 9 seconds, but its build and test commands both exited 101 after the compiler reported that it could not execute cc1obj. Mac users should try the v0.6.0 universal binary rather than treating our Debian source result as a working path. Rift is worth that trial if animations, several layout models, and separate-Spaces support outweigh the risks of a pre-1.0 tool built on private macOS APIs.

We ran it

Lab card: what happened when we ran riftScreenshot of rift (acsandmann.github.io/rift-docs)
Install✓ · 9s195 packages
Build✗ · 7s
Tests✗ · 1sran, no count parsed
Repo160 files~84,885 lines of source · 10.1 MB · 4 CI workflows

Answers from our run

Does rift build from source?

Dependencies installed in 9 seconds (195 packages), and the build failed. We cloned commit 42b05db into a clean Debian container with 3 CPUs and no project-specific setup.

Do rift's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use rift?

Linux or Windows users: Rift is distributed as a universal macOS binary and depends on macOS frameworks.

What are the alternatives to rift?

AeroSpace, yabai, Amethyst. Our Rift run installed 195 packages in 9 seconds, but its build and test commands both exited 101 after the compiler reported that it could not execute cc1obj.

Setup2/5Prebuilt Mac path is clear; our source build and tests both failed
Docs5/5Detailed install, quick-start, config, CLI, and troubleshooting guides
Community4/52,451 stars, active fixes, and 28 open issues and pull requests
Maturity3/5Active v0.6.0 release, but configs lack a pre-1.0 stability promise

Who it’s for

Mac users who want keyboard tiling, animated moves, and trackpad workspace switching in one tool.
People who keep separate Spaces enabled and are comfortable granting Accessibility permission.
Tinkerers who prefer a hot-reloaded TOML file and a command-line control interface.
Multi-display users who want fullscreen on one display while working on another without disabling SIP.

Who it’s NOT for

Linux or Windows users: Rift is distributed as a universal macOS binary and depends on macOS frameworks.
Organizations that prohibit private or undocumented operating-system APIs: using them is an explicit project choice.
Users who need stable configuration across upgrades today: the manifesto promises that goal only after 1.0, while the current release is v0.6.0.
Heavy users of native macOS window tabs: issue 36 remains open, and the maintainer says Rift has no explicit tab handling.
Startup scripts that must query complete workspace state immediately: issue 515 reports empty CLI results before Rift finishes initialization.

Setup reality

Our sandbox installed 195 packages in 9 seconds. The build failed with exit 101 after 7 seconds, and the test command failed with exit 101 after 1 second. Both logs ended when cc reported that it could not execute cc1obj; no tests completed in the supplied summary.

The supported route is a universal macOS binary through Homebrew or a release archive. Rift needs Accessibility permission, the rift and rift-cli binaries from the same release, a background service, and a TOML file for custom settings. It needs no hosted credentials.

Rift exits unless “Displays have separate Spaces” is enabled. It intentionally uses private macOS APIs, keeps new Spaces inactive by default, and replaces the bundled keymap when you add a custom [keys] table.

Rift mixes six tiling styles with macOS gestures

Rift is a macOS window manager for people who want automatic tiling without making every desktop behave the same way. The README lists six styles: traditional i3-like tiling, binary space partitioning, floating, master-stack, scrolling columns, and an accordion stack. A menu-bar control switches workspaces and layouts, while the command-line client can save and restore arrangements. Trackpad gestures move between workspaces, and focus can follow the pointer.

Its most distinctive choice sits below the interface. Rift intentionally uses private and undocumented macOS APIs where the author believes they improve responsiveness and access to system behavior. The project still uses Accessibility APIs for window discovery and control, but it does not require disabling System Integrity Protection. That trade appeals to Mac tinkerers who want animation and control. A company that bans private APIs has its answer before installation.

The supported install is a universal Mac binary

Version 0.6.0 ships as one universal archive for Apple silicon and Intel Macs. Homebrew users can install acsandmann/tap/rift, register the background service, and start it. Archive users put both rift and rift-cli on the executable path. The docs warn against mixing releases of those two binaries, which is easy to avoid if one package manager owns both.

The first launch asks for Accessibility permission and may stop until you grant it. Rift also checks that “Displays have separate Spaces” is enabled in Mission Control settings; it exits with an explanation if the setting is off. After approval, you restart the service and can verify it with rift-cli query displays. A successful response is JSON describing attached displays, a more useful check than merely seeing a process in Activity Monitor.

What happened when we ran it

Our fresh Debian sandbox installed 195 packages in 9 seconds. The checkout at commit 42b05db contained 160 files, about 84,885 lines of source, and occupied 10.1 MB. Its build stopped after 7 seconds with exit code 101. The log's concrete failure was cc: fatal error: cannot execute 'cc1obj': execvp: No such file or directory, followed by a cc-rs command failure.

The test command failed with exit 101 after 1 second at the same compiler message. It produced no passing or failing test summary, so there is no test count to report. The log does not establish why cc1obj was absent. Our result says only that this commit did not build or reach its tests in the stated unprivileged Debian environment. Rift's documented user path is macOS, and the release binary is the sensible evaluation route there.

The repository scan found 4 CI workflow files, no Dockerfile, and no tests directory. That matches a native desktop application better than a container service, but it leaves our failed source check unresolved. We did not run the window manager on a Mac, grant Accessibility access, judge animations, or test several displays. Any claim about runtime speed or everyday stability would go beyond this lab run.

A custom keys table replaces every bundled shortcut

Rift works with a default configuration, then reads custom settings from ~/.config/rift/config.toml. The quick start uses Option plus H, J, K, and L for directional focus, with Shift added to move windows. Option plus Z activates tiling on the current Space. New Spaces begin inactive by default, so that activation binding matters if you replace the starter file.

Configuration has one easy trap: a custom [keys] table replaces the bundled map instead of adding to it. An empty table registers zero shortcuts. Most valid edits hot reload, while an invalid field or value leaves the running configuration in place and reports an error. The docs also note that repeated TOML headers are invalid and that some omitted tables behave differently from explicitly supplied empty ones. Start with the bundled config if you want all defaults visible.

Version 0.6.0 is active, while config stability waits for 1.0

Rift's manifesto makes the maturity line unusually clear. The author intends to avoid breaking configuration changes once the project reaches 1.0. The current v0.6.0 release therefore carries no such promise. It arrived on September 23, 2026 with fixes for display focus, duplicate BSP leaves, and the default packaged config, plus scrolling-size preservation and drag-and-drop actions.

Two open reports matter for particular workflows. Issue 36 covers native macOS tabs; the maintainer says Rift has no code that explicitly handles them and does not recommend depending on their behavior. Issue 515 reproduces a startup race where a workspace query returns an empty list from run_on_start before Rift has state. The maintainer proposed a future ready event and suggested a delay in the meantime. These are specific limits, not signs that every window operation is unreliable.

The repository was pushed on September 23, 2026, the same day as v0.6.0. GitHub listed 2,451 stars and 28 combined open issues and pull requests. Several current pull requests address ghost tiles, native tabs, scratchpads, gap overrides, and offline config checks. Recent releases plus live review activity point to active maintenance, though the open queue also shows how much behavior a window manager must reconcile across apps and displays.

Choose Rift when animation and layout choice justify pre-1.0 change

AeroSpace is the obvious comparison for an i3-like Mac workflow. Yabai has a longer-running BSP and scripting ecosystem, while Amethyst packages automatic tiling in a conventional app. Rift earns its own trial through the combination of six layout styles, animated movement, trackpad gestures, and support for separate Spaces without turning off SIP.

Use the release archive or Homebrew formula on a spare Mac session, grant Accessibility access, and keep the default config until the basic shortcuts behave. The failed 7-second build means our lab cannot vouch for source setup, and v0.6.0 is explicit about its pre-1.0 status. Rift makes sense for a user willing to tune a window manager. It is a poor fit for a locked-down fleet that needs public APIs and frozen configuration semantics.

Alternatives

ProjectWhat it isPick it when
AeroSpaceAn i3-like macOS tiler built around its own workspace model.pick this instead when you want a more widely adopted i3-style manager and do not need Rift's animation-first design.
yabaiA mature binary-space-partitioning window manager for macOS.pick this instead when scriptable BSP control and its larger existing ecosystem matter more than Rift's menu and layout mix.
AmethystAn automatic macOS tiler with a graphical application and several layouts.pick this instead when you prefer an established app interface over editing Rift's TOML configuration.

What people are saying

  1. [github-trending] acsandmann/rift
  2. [lobsters] rift - a tiling window manager for macos

Sources

  1. Rift README
  2. Rift installation guide
  3. Rift quick start
  4. Rift manifesto
  5. Rift v0.6.0 release
  6. Native tabs issue 36
  7. Startup query issue 515

More dev tools reviews

DmNote · skill-cabinet · PrettyPrague · vol-rs · Cybersecurity-Projects · crabbox · the whole board →