Azimuth

A keyboard-driven window manager for macOS.

Predictability over clever inference.

Universal · macOS 26.3+ · .dmg

Everything in one modifier layer.

Nine composable commands. No scenes. No automation. Just a reliable spatial grammar for your windows.

Halves & snap-throw

Snap a window to a screen half. Press the same edge again to throw it to the adjacent display, landing in the opposite half.

Thirds & two-thirds

Left/center/right and top/middle/bottom — horizontal and vertical. Axis-independent, so they compose freely.

Maximize / Center

Maximize fills the work area (minus menu bar and Dock); Maximize with gaps leaves a uniform inset on all sides. Center keeps the current size and places the window in the middle.

Move (keep size)

Nudge the window one step in any direction — by its own width or height — clamped at the work-area edge. Never resizes, never changes display.

Relative shrink

Shrink the window to ½ or ⅔ of its current size against a pinned edge — based on the window, not the screen. Effects compose: ⅔ then ½ lands on ⅓.

Move to next display

Send the window to an adjacent monitor, preserving its shape and relative position. Size is capped so it always fits.

Undo

Restore the previous frame, one step per window. Display reconfiguration clears history.

Multi-monitor aware

Position-aware adjacent-display selection: the window goes to the monitor that spatially lines up with where it currently sits.

Two presets

Standard (arrow keys) and Vim (HJKL). Both fully customizable per-command, with conflict warnings and per-command Reset in Settings.

Automatic updates

Azimuth checks for new notarized, signature-verified releases and updates itself (Sparkle); or check on demand.

Modifier layers

Four modifier combinations, each governing a distinct class of behavior. The layers never overlap.

Halves (snap/throw) · Maximize · Center · Undo · Thirds & two-thirds (number keys)
Move (keep current size)
Relative shrink — ½ on arrows, ⅔ on M , . /
Move to next display
Group Command Shortcut
Halves Left
⌃⌥
Right
⌃⌥
Top
⌃⌥
Bottom
⌃⌥
Maximize · Undo · Center Maximize
⌃⌥
Maximize with gaps
⌃⌥⇧
Undo
⌃⌥
Center
⌃⌥C
Thirds (1/3) Horizontal: left · center · right
⌃⌥123
Vertical: top · middle · bottom
⌃⌥456
Two-thirds (2/3) Horizontal: left · right
⌃⌥78
Vertical: top · bottom
⌃⌥90
Move (keep size) Left · Right · Up · Down
⌃⌥⌘
Relative shrink (½) Left · Right · Up · Down
⌃⌥⇧
Relative shrink (⅔) Left · Down · Up · Right
⌃⌥⇧M,./
Move to next display Left · Right · Up · Down
⌃⌥⌘⇧
Vim preset: Only directional keys and Undo change. Directions become H (left) · L (right) · K (up) · J (down), Undo → U. Maximize, Center, and number shortcuts are identical.
Read the full manual →

How it works

Three behaviors that define Azimuth's spatial model.

Snap, then throw

First press snaps to the left half. Second press on the same edge throws the window to the adjacent display, landing in the opposite half.

Move clamps at the edge

The window steps by its own width and stops at the work-area boundary. No resize, no display change — just a reliable nudge.

Shape preserved across displays

Move to next display keeps the window's relative position and size. It's capped so it never exceeds the target screen.

Requirements & install

Download the notarized DMG — no build tools required.

Requirements

  • macOS 26.3 (Tahoe) or later
  • Accessibility permission — Azimuth controls other apps' windows via the Accessibility API. Grant it in System Settings on first launch.

Install

  1. Download the .dmg from the link below.
  2. Drag Azimuth to your Applications folder.
  3. Launch Azimuth from Applications.
  4. Enable Azimuth in System Settings → Privacy & Security → Accessibility.
Download for macOS

The download is Developer ID–signed and notarized by Apple, so it opens without Gatekeeper warnings.

Or with Homebrew:

brew install --cask ai-screams/tap/azimuth

Frequently asked questions

Why does Azimuth need Accessibility permission?

It moves and resizes other apps' windows via the macOS Accessibility API — the standard mechanism for all window managers. Azimuth does no keylogging and makes no network connection except the Sparkle update check.

Does it work on older macOS?

Azimuth targets macOS 26.3 (Tahoe) and later, and uses APIs introduced in that release. Older macOS versions are not supported.

Can I customize the shortcuts?

Yes — open Settings → Shortcuts. You can set per-command bindings, view conflict warnings, toggle command groups on or off, and switch between Standard (arrow keys) and Vim (HJKL) presets.

How are updates delivered?

In-app via Sparkle — notarized and EdDSA-signature-verified. You can also check on demand from the menu bar icon. Alternatively, install and update via Homebrew: brew install --cask ai-screams/tap/azimuth

Support Azimuth

Azimuth is free and open source — no paywall, no ads, no telemetry — and it always will be. If it earns a place in your workflow, you can chip in to fund development. A supporter license just says thanks; it unlocks nothing, since every feature is already free for everyone.