Agent skill · software engineering · hkuds

cli-anything-safari

Safari browser automation CLI on macOS via safari-mcp. Controls real Safari (native, keeps logins) by wrapping the safari-mcp MCP server. Every one of the 84 MCP tools is exposed 1:1 with schema-accurate arguments — guaranteed parity, no manual drift.

Why this skill is useful

Adds a command-line interface for Safari automation with schema-driven commands that the AI wouldn't reliably generate on its own.

What it needs

Requires node, python installed locally. About 7k tokens when loaded. Last updated 2026-08-03. 46,739 stars on the source repository.

What this skill does

cli-anything-safari A command-line interface for Safari browser automation on macOS. Wraps the safari-mcp Node.js MCP server in a Python Click CLI. Feature parity is guaranteed. Every Click command is generated automatically from safari-mcp's tool schema (bundled as resources/tools.json). All 84 tools are reachable with the exact argument names and types the MCP server expects. When to use this CLI Each CLI invocation spawns a fresh subprocess, so there is per-call overhead. If your agent speaks MCP natively (Claude Code, Cursor, Cline, etc.), using safari-mcp directly over MCP stdio will be faster. Use this CLI when: Your agent framework does not speak MCP (Codex CLI, GitHub Copilot CLI, custom scripts, older agent frameworks). You need to script browser automation from bash — cli-anything-safari --json tool snapshot jq '...'. You run in CI/CD and want cron-able, subprocess-friendly output. You're debugging interactively from Terminal. Installation Prerequisites 1. macOS — Safari MCP is macOS-only. 2. Safari — already installed on macOS. 3. Node.js 18+ — brew install node or from https://nodejs.org/ 4. Python 3.10+ 5. Enable Apple Events for Safari: Safari → Develop → Allow JavaScript from Apple Events Install the CLI The first tool call will download the safari-mcp npm package (one-time, a few MB). Command Structure The CLI has 5 top-level commands: Command Purpose ----------- ------------------------------------------------------------------- tool Call any of safari-mcp's 84 tools (dynamic, schema-driven) tools Inspect the bundled tool registry (list, describe, count) raw Escape hatch — call a tool by full name with raw JSON args session In-memory session state (last URL, current tab) repl Interactive REPL (default when no subcommand given) Usage Examples Discover the tool surface Call a tool (schema-driven) Navigate and read in one round-trip Form fill (bulk) safarifillform takes an array of {selector, value} objects. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills hkuds/skills--3c6b84

View the source on GitHub

Browse the @skills marketplace