Your desktop, as an MCP server. Your agent drives it — and you watch it happen. Fixed verbs, visible activity, and one switch that stops everything.
$ omarchy plugin add https://github.com/tsouth89/omarchy-omcp --enable
$ omarchy bar put tsouth89.omcp
Then connect an agent:
$ claude mcp add omcp -- ~/.config/omarchy/plugins/tsouth89.omcp/bin/omcp serve
One Python 3 file. Standard library only. No pip, no npm, no daemon, and nothing installed outside the plugin checkout.
Agents can already edit your files and run your builds. They cannot touch the desktop those things live in. OMCP closes that gap, and then does the part that actually matters: it makes the agent's reach visible and revocable.
The activity feed is the product. Every call lands in plain language: “set the theme to Tokyo Night”, “turned do not disturb on” — including what was refused.
Allow runs. Ask parks the call mid-flight and waits for you. Off removes the tool from the agent's tool list; it cannot discover that the tool exists.
Five sensitive actions ship as Ask. You get 60 seconds. No answer means denied.
One control halts everything, including reads. A stop control that still let an agent read your screen would not be a stop control.
An agent must never be able to make the next key you press mean “yes.” The panel deliberately does not open itself for an approval. Taking keyboard focus on the agent's schedule would make approval one accidental keystroke away.
Every tool is a fixed verb over a command Omarchy already ships:
hyprctl, omarchy, grim,
wpctl, wl-copy, gio.
There is no run_command tool, and there never will be.
Start with a plain-language request and let the agent choose the fixed tools it needs.
Text visible on your screen can enter the agent's context. OMCP tells agents to treat it as data, never instructions, but that is defence in depth — not a guarantee.
The client supplies its own name during the MCP handshake. An unexpected connection notification is the signal that matters.
Activity stays on your machine under ~/.local/state/omcp/.
Permissions and the stop switch live under ~/.config/omcp/.
Read the full security notes and threat boundaries before giving an agent desktop control.