Plonk
About
The Mac window manager your agent can drive. Snap zones, saved workspaces, keep-awake, screenshots and on-device OCR — 19 MCP tools bridging to a loopback API on your own machine. No account, no cloud, no telemetry.
Details
- Author
- ostapondo
- Categories
- Developer Tools
Jump to
Setup
Install Plonk in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/ostapondo/plonk
Follow the installation instructions in the repository README, then restart your MCP client.
Give every window a place to live. Draw the boxes you actually want, then drop windows into them — with a drag, a key, or by saying so out loud.
To plonk is to set a thing down exactly where it belongs.
You most likely already have Rectangle, Magnet, Loop or Raycast. If a fixed grid of halves and thirds is all you want, they do it well. Plonk is for three things they do not do.
Coming from one of them costs nothing: the ten placement shortcuts are the same keys, one button takes the rest, and an existingrectangle://script is one substitution away.Coming from Rectangleis the whole of it.
Zones you draw.Not a preset grid. Any number of zones, any size, a different set per monitor, overlapping if that suits you. Click a zone to split it,⇧-click to split the other way: a narrow rail for chat, a wide middle split in two, a strip for the terminal.
Workspaces that remember which monitor.Save the desk: the apps, every window's frame, and the display each one belongs on. Launch it onto an empty desktop and it rebuilds itself, on the right screens.
An agent can drive all of it.Plonk ships an MCP server that covers its whole surface: layouts, workspaces, zones, keep-awake, screenshots, on-device OCR, measuring. Generic macOS automation servers can nudge a window around. This is the window manager itself, so "browser on the left 60%, terminal top right, save that as a workspace called review" is one sentence rather than a script.
The other seven tools, OCR and a ruler and keep-awake among them, are there because each was otherwise its own icon in the menu bar.
It is early.Version 0.2.x, one author. Shortcuts, zone files and workspaces are settled. The MCP tool names and the HTTP API are not, and can still change between minor versions.CHANGELOG.mdsays what moved.
Drag it.Zones light up as you move a window, and it drops into one. Hold⌘too and it takes two of them at once. Turn on grab-and-move to pull a window from anywhere inside it instead of aiming for the title bar.
Press a key.⌃⌥←for the left half.⌃⌥1to⌃⌥9for the numbered zones on that screen.⌃⌥0puts a window back where it was before Plonk touched it.
Say it.Hold⌃⌥Vand name the place: "snap this left", "zone three". That runs in the app, offline, on-device.
Five zone sets ship with it, and past those you draw your own. Swap the set on a screen and any window already in a numbered zone moves to wherever that number is now.
Colour is the zone number, everywhere it is drawn: 1 rose, 2 plum, 3 blue, 4 mint, 5 sun, 6 sky. In the overlay you drag into, in the editor, in the menu bar, and in every picture on this page. A set can be read before a digit is.
brew install --cask ostapondo/plonk/plonk
Grant Accessibility when it asks, then relaunch. Screen Recording is asked for separately, the first time you capture. Nothing else: no Full Disk Access, no Automation, no Keychain.
Plonk is signed but not notarized, so macOS holds a copy you download by hand. The cask takes care of that for you.
Running it alongside Rectangle or Magnet is fine, as long as their shortcuts do not collide.
Checking what you downloaded.Notarizing an app means paying Apple for a developer account, and this project does not have one, so Plonk is signed with a certificate it made itself. That means macOS cannot tell you who built the app. There is a check that answers a more useful question, and you can run it yourself: was this exact file built by GitHub from the source in this repository?
gh attestation verify Plonk-<version>.zip --repo ostapondo/Plonk
Put the number from the file name in place of<version>. The command comes with theGitHub CLI, which isbrew install gh. It prints the commit and the workflow run that built the archive. If the file was altered after it was built, or was not built from this repository at all, the command fails and tells you so.
Why macOS holds a downloaded copy.The certificate is self-signed rather than an Apple Developer ID, because notarizing needs a paid Apple account and this project does not have one. macOS cannot vouch for who built it, and says so. The cask skips that check by clearing the quarantine flag for you.
That is a check skipped on your behalf, so here is a stronger one to run before you open anything:
gh attestation verify $(brew --cache)/downloads/--Plonk-.zip \ -R ostapondo/plonk
It prints the commit and the GitHub Actions run that built this exact archive. Apple's stamp would tell you a build passed a malware scan. This tells you the binary came from the source in this repository, with no laptop in between.
Without Homebrew.Downloadthe latest release, unzip, drop Plonk.app into Applications, then clear the flag yourself, which is all the cask does:
xattr -dr com.apple.quarantine /Applications/Plonk.app
Or do the Gatekeeper detour once: open Plonk, dismiss the warning, then System Settings, Privacy & Security, scroll to Security,Open Anyway.
If you move or rename Plonk.applater, macOS ties the old grant to the old path and windows of newly launched apps stop being seen. Remove Plonk from Privacy & Security, Accessibility, and grant it again.
On an Intel Mac.Releases are built for Apple silicon only, so the download will not run. Building from source ought to work, seeBuild, but nobody has tried it and a report either way is welcome inissues.
Next to a tiling manager.yabai and Amethyst own every window on screen and will pull windows straight back out of a zone. Run one or the other.
Removing it.brew uninstall --cask plonk, or quit Plonk and drag it to the trash. Then delete~/Library/Application Support/Plonk/. The login item goes with the app, and nothing was written anywhere else.
The window manager is four things, and this is the part of each that the sections above left out.
And theMCP server, which is every one of these as a tool an agent can call.
Any of them can be switched off, from Tools in the menu bar dropdown or the Tools page. Off means gone: out of the sidebar, out of the menu, its shortcuts released, and its tools refused to agents until it is back on.
Longer versions:Zones·Workspaces·Hotkeys·Everything else·[Coming from Rectangle
An agent can read the desk, rearrange it, save the result, and read text back off the screen, with no screenshot round trip for anything that is really just words.
browser on the left 60%, terminal top right, notes bottom right save that as a workspace called "review" keep the Mac awake until this build finishes read the error out of that dialog and tell me what it says how tall is that toolbar, in points and in pixels
Twenty tools across state, layouts, workspaces, zones, keep-awake, screenshots, on-device OCR and measuring. Frames are fractions of a monitor's visible area, origin top-left, so "left 60%" is{x: 0, y: 0, w: 0.6, h: 1}. Several agents can connect at once, each registering itself, with an optional mode that locks changes to the active one.
Setup, if you want theplonkCLI or an agent driving it (Node 18+):
claude mcp add plonk -- npx -y plonk-mcp # Claude Code codex mcp add plonk -- npx -y plonk-mcp # Codex CLI
In Claude Code it can also be a plugin: same server, pinned to the release it shipped with rather than to whatever npm serves as latest.
…
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





