From super-marius
Control the macOS desktop — move/click the mouse, type text, send key combos, take screenshots, focus apps, query windows. Use when the user asks you to "click on", "open", "type into", "screenshot", or otherwise interact with native macOS apps that aren't a browser. (For browser tasks prefer Playwright MCP — DOM-based clicking is dramatically more reliable than pixel-clicking a browser window.)
How this skill is triggered — by the user, by Claude, or both
Slash command
/super-marius:super-mariusThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Wrapper around Hammerspoon (`hs` CLI) that lets an agent drive a Mac's GUI.
Wrapper around Hammerspoon (hs CLI) that lets an agent drive a Mac's GUI.
Designed to work under macOS Tahoe (which blocks ad-hoc-signed CLI binaries
like cliclick from the TCC Accessibility panel).
agent
└── shell command: mac <subcommand>
└── ~/.local/bin/mac
└── hs -c '<lua>'
└── Hammerspoon.app ← TCC-granted (Accessibility + Screen Recording)
└── CGEventPost / hs.eventtap / hs.mouse / hs.screen
Why Hammerspoon and not cliclick? Hammerspoon ships as a properly signed
.app bundle, so macOS Tahoe accepts it in the TCC Accessibility list. CLI
binaries with ad-hoc/linker signatures (like cliclick) are silently rejected
by Tahoe's TCC system.
| Command | Description |
|---|---|
mac click X Y | Left-click at coordinates |
mac rclick X Y | Right-click |
mac dclick X Y | Double-click |
mac mouse X Y | Move cursor without clicking |
mac pos | Print current cursor position |
mac scroll DX DY | Scroll wheel by pixels (+y = up) |
mac type "text" | Type a string |
mac key cmd-c | Press key combo (modifiers separated by -) |
mac screenshot [path] | Capture full screen → PNG (uses Hammerspoon, NOT screencapture — see below) |
mac screen | Main screen size and position |
mac windows | List all visible windows |
mac apps | List running apps that have UI |
mac focus "Safari" | Bring an app to front |
mac say "msg" | Show on-screen alert |
mac eval 'lua...' | Raw Hammerspoon Lua escape hatch |
Coordinates are in screen pixels (origin top-left, including the menu bar).
mac focus "AppName" then click.
Otherwise clicks may go to whatever happens to be frontmost.mac key cmd-w is more
robust than finding the close-button pixel.mac type.&&, but consider small
sleeps between actions if the UI animates (sleep 0.3).screencaptureThe standard /usr/sbin/screencapture requires Screen Recording grant for
the responsible process — which, when invoked by a launchd-spawned agent,
is the agent's parent process (e.g. node), not Terminal. Granting Screen
Recording to node is messy. So we route through Hammerspoon, which has its
own Screen Recording grant via being a proper signed .app.
After install + TCC grants:
mac say "hello" # alert should pop on screen
mac screenshot /tmp/x.png # should produce a real PNG
mac pos # should return current cursor coords
If hs errors with "can't access Hammerspoon message port", Hammerspoon
needs to be running with the IPC module loaded. The installer writes
require("hs.ipc") to ~/.hammerspoon/init.lua. Open Hammerspoon.app and
reload config from the menu bar if needed.
mcp__playwright__*) — DOM-based
is dramatically more reliable than coordinate clicks.Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub autosolutionsai-didac/super-marius --plugin super-marius