What is Vindue?
Vindue is a menu-bar window tiler for macOS in the spirit of Divvy: a tray click (or an optional hotkey) throws a grid over your screen, you drag across cells, and the frontmost window snaps to exactly that region. ("Divvy" is a Mizage trademark; this project is unaffiliated.)
What sets it apart is the automation surface: a loopback HTTP server with two faces —
- a REST API (
/api/v1/*) so scripts, shell aliases, and Shortcuts.app can drive window management, and - an MCP endpoint (
/mcp, Model Context Protocol) so Claude Code, Claude Desktop, or any MCP client can tile your windows from natural language.
Free, MIT licensed, no account, no telemetry — config is a JSON file you own.
Features
- Drag-to-tile grid — translucent panel overlay, live selection highlight, window lands exactly on the chosen cells (work area, gaps, margins applied)
- Panels on every display at once — each grid mirrors its display's aspect ratio; drag on any panel to place the window there
- Keyboard shortcuts with display memory — save grid regions to keys; assignments can pin to a specific display or follow the panel
- Nine presets — full, halves, quadrants — proportional on any grid size
- Schema-validated settings — form and raw-JSON views of the same config, live reload, proportional shortcut rescaling on grid changes
- Display identification that survives replug — canonical labels with positional suffixes for identical monitors
- Private by construction — loopback-only server, browser-request rejection, everything local
Install
Download the latest Vindue_x.y.z_universal.dmg from
GitHub Releases (Apple
Silicon + Intel) and drag Vindue to Applications.
:::note Gatekeeper Until notarized releases ship, macOS may warn about an "unidentified developer" on first launch: right-click the app → Open → Open, or allow it under System Settings → Privacy & Security. :::
Verifying your download
Two independent proofs ship with every release:
-
Checksum —
shasum -a 256 Vindue_x.y.z_universal.dmgmust match theSHA256SUMS.txtasset on the release page. -
Build provenance — each dmg carries a Sigstore-signed SLSA attestation in GitHub's transparency log, tying it to the exact tagged commit and the official repo's CI:
gh attestation verify Vindue_x.y.z_universal.dmg --owner msukmanowsky
Vindue is MIT-licensed open source — you can always check out the tag and build it yourself.
From source
git clone https://github.com/msukmanowsky/vindue.git
cd vindue
npm install
npm run tauri dev # development
npm run tauri build # release .app + .dmg
Requires macOS, Node.js 20+, Rust (stable), and Xcode command line tools.
Accessibility permission (required)
Moving other apps' windows uses the macOS Accessibility API. On first panel activation Vindue shows a banner naming the exact file that needs the grant:
- Click Grant access… — System Settings opens (and the panel dismisses so it doesn't outline System Settings itself)
- Remove any stale Vindue entries with "−"
- Add the shown file ("+" then ⌘⇧G to paste the path, or drag it from Finder) and toggle it on
- Re-open the panel — the grant is detected automatically
:::tip Dev builds Ad-hoc signed builds get a new code-signing identity on every rebuild, so old Accessibility entries go stale — remove and re-add. Properly signed releases have a stable identity: grant once, persists across updates. :::
The target outline and panel placement work without the grant — only applying regions needs it.
Menu-bar app
There is no Dock icon. The menu-bar (tray) icon is home base: left-click opens the panels; right-click gives Open / Settings… / Quit. Launching Vindue again while it's running just focuses the running instance — Settings if open, otherwise the panels, like the hotkey.
Next: the quickstart walkthrough.