One loopback server, two protocols
Vindue serves a control API on 127.0.0.1 — REST for scripts and humans, and an MCP endpoint so AI clients can drive your windows. No auth to manage: the server rejects anything a browser could send, so web pages can never reach it.
Script it
curl -s -X POST 127.0.0.1:47725/api/v1/tile \
-d '{"preset":"left_half","app":"Safari"}'
Or let your AI drive
claude mcp add --transport http vindue \
http://127.0.0.1:47725/mcp
Drag-to-tile grid
A hotkey (or tray click) throws a translucent grid over your screen. Drag across cells — the frontmost window lands exactly there. Esc dismisses; clicking away dismisses. It stays out of your way.
Every display at once
Panels open on all displays simultaneously, each grid mirroring that display’s aspect ratio. Drag on any panel to place the window there — beyond Divvy’s single-panel model.
Keyboard shortcuts with display memory
Save any grid region to a key. Assignments can pin to a specific display — press 3 and the window flies to the left half of your Dell, even while you’re looking at the MacBook.
A control API built in
A loopback REST API exposes state, tiling, config, shortcuts, monitors, and apps. One curl moves a window. Browser-origin requests are rejected, so no web page can ever drive it.
MCP for AI clients
The same server speaks the Model Context Protocol: 12 tools so Claude Code, Claude Desktop, or any MCP client can tile windows, manage shortcuts, and read config from natural language.
Private, local, MIT
No account, no telemetry, no cloud. Config is a JSON file you own. Built with Tauri 2 + Rust — idle memory stays tiny. The whole source is MIT licensed.