Computer use for Hyprland: semantic desktop state over IPC, plus vision and native input
registry version 0.13.0
Python
uvx hyprusePython
uvx hypruse@0.13.0
Pick your client — the config below is generated for this server (local stdio). Copy respects the “Pin version” switch above.
claude_desktop_config.json
{
"mcpServers": {
"hypruse": {
"command": "uvx",
"args": [
"hypruse"
]
}
}
}{
"mcpServers": {
"hypruse": {
"command": "uvx",
"args": [
"hypruse@0.13.0"
]
}
}
}Format verified against the official Claude Desktop docs ↗.
terminal
claude mcp add hypruse -- uvx hypruse
claude mcp add hypruse -- uvx hypruse@0.13.0
Format verified against the official Claude Code docs ↗.
.cursor/mcp.json
{
"mcpServers": {
"hypruse": {
"command": "uvx",
"args": [
"hypruse"
]
}
}
}{
"mcpServers": {
"hypruse": {
"command": "uvx",
"args": [
"hypruse@0.13.0"
]
}
}
}Format verified against the official Cursor docs ↗.
.vscode/mcp.json
{
"servers": {
"hypruse": {
"command": "uvx",
"args": [
"hypruse"
]
}
}
}{
"servers": {
"hypruse": {
"command": "uvx",
"args": [
"hypruse@0.13.0"
]
}
}
}Format verified against the official VS Code docs ↗.
mcp_config.json
{
"mcpServers": {
"hypruse": {
"command": "uvx",
"args": [
"hypruse"
]
}
}
}{
"mcpServers": {
"hypruse": {
"command": "uvx",
"args": [
"hypruse@0.13.0"
]
}
}
}Format verified against the official Windsurf docs ↗.
Defined in the server's official registry manifest. Required secrets are shown as <YOUR_…> placeholders in the configs above.
HYPRUSE_SCREENSHOT_MODE — How captures are returned: 'file' writes to XDG_RUNTIME_DIR and returns the path, 'image' returns the image inline. Use 'image' for clients that render MCP images but cannot read files, such as Claude Desktop.HYPRUSE_READONLY — Set to 1 to expose only the observation tools (desktop, screenshot, zoom, ui, marks, binds, wait_for). The agent can see and narrate but cannot click, type, or launch.HYPRUSE_CONFINE — Restrict input to a scope of windows and refuse everything outside it: 'launched' (only windows hypruse opened this session), 'class:firefox,kitty', or 'workspace:3,special:notes'. Unset means no confinement.HYPRUSE_AUTH_GUARD — Refuse to click or type into system authentication dialogs (polkit, keyring prompts). On by default; 'strict' also refuses password fields in ordinary windows; 0 disables it.HYPRUSE_STRICT — Set to 1 to refuse to act when the cursor or focused window moved since hypruse's last action, so the agent must re-read the desktop before retrying.HYPRUSE_MARK — Set to 1 to make the agent's presence legible: tag every window it opens 'hypruse-owned' and flash an on-screen notice when it opens a window or captures the screen.HYPRUSE_CLIPBOARD — Set to 1 to register the opt-in clipboard tool (never in read-only mode). Off by default because clipboards hold passwords.HYPRUSE_JOURNAL — Record every tool call, refusals included, as one NDJSON line: 1 writes to XDG_STATE_HOME/hypruse/journal.ndjson, or give a path. Read it back with 'hypruse journal'. Off by default.⭐ 34 stars · 最近更新于 18 天前 · MIT license
Distributed as Python, listed under Developer Tools. Review our MCP security guide before granting access to real data.
Run the install command shown above, then paste the config for your client (Claude Desktop, Claude Code, Cursor, VS Code or Windsurf) into its MCP settings and restart the client.
The MCP server itself is free to install. The source is public on https://github.com/IlyasKhallouki/hypruse. Any third-party service it calls may require its own API key and account.
Any MCP-compatible client can use it, including Claude Desktop, Claude Code, Cursor, VS Code, Windsurf and custom agents.
Publish this server? Link back with a badge on your README or site — copy either snippet.
Markdown
[](https://mcpnav.net/server/hypruse/)
HTML
<a href="https://mcpnav.net/server/hypruse/"><img src="https://mcpnav.net/badge/hypruse.svg" alt="Listed on MCPNav" height="20"></a>