Agent skill

macOS Control

by different-ai-studio in different-ai-studio/teamclu

Control macOS desktop applications: open/operate apps, click buttons, type text, scroll, keyboard shortcuts, window management, toggle options, dropdown selections, etc.

MITAuto-check passed

Install macOS Control

skills CLI
$ npx skills add different-ai-studio/teamclu --skill macos-control -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install different-ai-studio/teamclu macos-control --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/different-ai-studio/teamclu.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/app/src/lib/skills/macos-control .claude/skills/macos-control && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
macos-control
GitHub stars
167
Token cost
~4.2k tokens
SKILL.md length
1,368 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

Control macOS desktop applications: open/operate apps, click buttons, type text, scroll, keyboard shortcuts, window management, toggle options, dropdown selections, etc.

  • Works in 3 steps: Probe (Inspect AX Tree) — Use… → Route (Decision Routing) — Choose Layer… → Act (Execute Operation) — Perform the…
  • Words: open app
  • SKILL.md covers Decision: Unified Flow (Probe…, Layer 1: Scripts + Command Line, Layer 2: autoui-mcp-server… and Guardrails
  • Calls osascript

What it does

macOS Control is an agent skill from different-ai-studio/teamclu. Control macOS desktop applications: open/operate apps, click buttons, type text, scroll, keyboard shortcuts, window management, toggle options, dropdown selections, etc. Note: NEVER invoke this skill for opening web pages/visiting websites — use browser-related tools instead. Trigger words: open app, operate app, control computer, click, type, scroll, switch, dropdown, select, modify, change to, set, check, uncheck, app-control, toggle.

Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: macOS only. Layer 2 requires autoui-mcp-server MCP server.

It works with macOS. The repository describes itself as: TeamClu, AI Agent Desktop Workspace. The licence is MIT.

When your agent uses it

  • Words: open app
  • Control computer

Example prompts

  • “/macos-control”

Requirements

  • Compatibility (from SKILL.md): macOS only. Layer 2 requires autoui-mcp-server MCP server.

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Probe (Inspect AX Tree) — Use lightweight commands to check if the accessibility tree is available
  2. Route (Decision Routing) — Choose Layer 1 or Layer 2 based on probe results
  3. Act (Execute Operation) — Perform the actual operation in the selected Layer

What it can do on your machine

Read from SKILL.md and the folder at commit 0ea73c3. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • osascript

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    macOS only. Layer 2 requires autoui-mcp-server MCP server.

    From compatibility in the SKILL.md frontmatter.

Context cost

macOS Control loads about 4.2k tokens when it runs. Until then it costs about 114 tokens; SKILL.md has 1,368 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~114
When it runs · the whole SKILL.md, loaded when a task matches
~4.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from different-ai-studio/teamclu at commit 0ea73c3, republished under its MIT licence (© different-ai-studio). 1,368 words, ~4,234 tokens.

Download SKILL.mdSave it as .claude/skills/macos-control/SKILL.md (or your agent's skills folder).
name
macos-control
description
Control macOS desktop applications: open/operate apps, click buttons, type text, scroll, keyboard shortcuts, window management, toggle options, dropdown selections, etc. Note: NEVER invoke this skill for opening web pages/visiting websites — use browser-related tools instead. Trigger words: open app, operate app, control computer, click, type, scroll, switch, dropdown, select, modify, change to, set, check, uncheck, app-control, toggle.
compatibility
macOS only. Layer 2 requires autoui-mcp-server MCP server.

macOS Control

Two-layer strategy: Probe first, route fast. For all apps, always perform an AX tree probe first to confirm the accessibility tree is available and contains the target element, then use Layer 1; otherwise switch to Layer 2 immediately to avoid misoperations on an incomplete AX tree.

Decision: Unified Flow (Probe → Route → Act)

All apps follow the same flow:

  1. Probe (Inspect AX Tree) — Use lightweight commands to check if the accessibility tree is available
  2. Route (Decision Routing) — Choose Layer 1 or Layer 2 based on probe results
  3. Act (Execute Operation) — Perform the actual operation in the selected Layer
Probe Step (Mandatory, Before Any Operation)

Probe the target app's AX tree in read-only mode — never perform any click/type/modify operations during the Probe phase:

bash
# 1. Check if process exists and is accessible
osascript -e 'tell application "System Events" to get name of process "AppName"'

# 2. Inspect window UI element tree (core check)
osascript -e 'tell application "System Events" to tell process "AppName" to entire contents of window 1'

# 3. Check if target element exists (e.g., when clicking a button)
osascript -e 'tell application "System Events" to tell process "AppName" to name of every button of window 1'
Route Decision Rules

Make routing decisions immediately based on Probe results:

Probe ResultRouteReason
AX tree returns rich element list containing target element→ Layer 1AX available, operate directly
AX tree returns content but does not contain target element→ Layer 2Element unreachable, AX operation may mis-trigger
AX tree returns empty list / very few elements (< 3)→ Layer 2AX tree incomplete, unreliable
osascript errors (permission/timeout/process not found)→ Layer 2 (or prompt user to grant access)AX unavailable
Returns many meaningless generic elements (all group/unknown)→ Layer 2AX tree cannot effectively locate elements

Key Principle: If there is any doubt during Probe, switch to Layer 2. Never risk operating on an incomplete AX tree.

Typical AX misoperation scenarios: When the AX tree is incomplete, click button 1 may click the wrong button; set value of text field 1 may write to the wrong input field. The purpose of Probe is to eliminate these risks before any operation.

App Type Reference
App TypeLayer 1 FeasibilityNotes
Finder / Safari / Chrome / Terminal / Mail / Notes / CalendarHighRich AppleScript dictionaries, rarely need Layer 2
System Settings / Preview / other native appsHighSystem Events can access UI elements
Electron apps (VS Code / Slack / Discord)LowPoor accessibility support, Probe usually routes to Layer 2
WeChat / WeCom / SeaTalk and other third-party appsMediumPartial support, decided after Probe

Out of scope for this skill: Web page content operations should use browser tools.

Reverse constraint: This skill controls local macOS desktop applications and must NEVER use Playwright MCP's browser_* tools (such as browser_click, browser_select_option, browser_fill_form, browser_type, browser_press_key, browser_hover, browser_drag, browser_snapshot, browser_navigate, browser_screenshot, etc.). These tools are only effective for web pages in browsers and completely ineffective for desktop applications. Special note: When screenshots are needed, NEVER invoke Playwright's screenshot tools — use autoui-mcp-server's screenshot capabilities instead (e.g., auto_vision_locate, auto_vision_verify). Desktop application UI automation can only be achieved through Layer 1 (osascript/AppleScript) or Layer 2 (autoui-mcp-server).


Layer 1: Scripts + Command Line

Execute osascript, open, mdfind, and other commands via the Shell tool.

Prerequisite: Probe has confirmed AX tree is available and contains target element. If Probe did not pass, skip directly to Layer 2.

Resolve App Name

Two steps: First search by keyword; if not found, list all apps and determine the match yourself.

Step 1: Keyword Search

bash
# Search Applications directories
ls /Applications/ /Applications/Utilities/ ~/Applications/ 2>/dev/null | grep -i "KEYWORD"

# Spotlight search
mdfind "kMDItemContentType == 'com.apple.application-bundle'" -name "KEYWORD"

# Get bundle ID and display name
mdls -name kMDItemCFBundleIdentifier -name kMDItemDisplayName "/Applications/AppName.app"

# View running apps
osascript -e 'tell application "System Events" to get name of every process whose background only is false'

Step 2: If Keyword Search Returns No Results, List All Installed Apps

When the above commands return no matches, list all installed applications and let the agent determine the closest match based on user intent:

bash
# List all installed applications (strip .app suffix for readability)
ls /Applications/ /Applications/Utilities/ ~/Applications/ /System/Applications/ /System/Applications/Utilities/ 2>/dev/null | sed 's/\.app$//' | sort -u

After obtaining the complete list, infer the most likely match based on the user's app name description (which may be a Chinese name, English abbreviation, alias, etc.), then continue with the subsequent flow. Do not give up or report an error just because the keyword search found nothing.

Open / Activate / Quit

Mandatory opening rules: Before opening any application, you must first resolve the app name (see "Resolve App Name" section above), then minimize all other application windows, confirm minimization is complete, and then open the target application. Do not set the application to fullscreen. Complete flow:

  1. Resolve app name — Use ls /Applications/, mdfind, etc. to confirm the exact name and path (see "Resolve App Name" section). Never skip this step
  2. Minimize all windows — Execute osascript -e 'tell application "System Events" to set visible of every process whose visible is true to false'
  3. Wait for minimization to complete — sleep 1 (Must wait to prevent the target app from being minimized too)
  4. Open target application — Execute open -a "AppName" or other open commands
  5. Wait for app to be ready — sleep 3 (ensure window has loaded)
bash
# Step 1: Resolve app name (never skip)
ls /Applications/ /Applications/Utilities/ ~/Applications/ 2>/dev/null | grep -i "KEYWORD"
mdfind "kMDItemContentType == 'com.apple.application-bundle'" -name "KEYWORD"

# Step 2: Minimize all other applications
osascript -e 'tell application "System Events" to set visible of every process whose visible is true to false'

# Step 3: Wait for minimization to complete (must wait to prevent target app from being minimized)
sleep 1

# Step 4: Open target application
open -a "AppName"                                    # Open
open -b "com.bundle.id"                              # Open by bundle ID
osascript -e 'tell application "AppName" to activate' # Bring to foreground

# Step 5: Wait for app to be ready
sleep 1

# Quit application
osascript -e 'tell application "AppName" to quit'     # Quit
Open File / URL
bash
open "/path/to/file"                      # Open file with default app
open -a "AppName" "/path/to/file"         # Open file with specific app
open "https://example.com"                # Open URL in default browser
open -a "Google Chrome" "https://url"     # Open in specific browser
Common App AppleScript Quick Reference

Finder:

bash
osascript -e 'tell application "Finder" to open folder "Documents" of home'
osascript -e 'tell application "Finder" to get selection as alias list'
osascript -e 'tell application "Finder" to make new folder at desktop with properties {name:"New"}'

Safari / Chrome:

bash
osascript -e 'tell application "Safari" to open location "https://example.com"'
osascript -e 'tell application "Safari" to get URL of current tab of front window'
osascript -e 'tell application "Google Chrome" to get URL of active tab of front window'
osascript -e 'tell application "Google Chrome" to execute active tab of front window javascript "document.title"'

Terminal:

bash
osascript -e 'tell application "Terminal" to do script "ls -la"'
System Events GUI Scripting

Prerequisite: The controlling terminal (Terminal / Cursor) must be authorized in System Settings > Privacy & Security > Accessibility. If permission is missing, inform the user how to authorize — do not retry repeatedly.

Note: UI element tree exploration was completed during the Probe phase. Use the element information obtained from Probe to perform operations directly. If re-confirmation is needed, re-probe:

bash
# List all UI elements
osascript -e 'tell application "System Events" to tell process "AppName" to entire contents of window 1'

# List only buttons / text fields
osascript -e 'tell application "System Events" to tell process "AppName" to name of every button of window 1'
osascript -e 'tell application "System Events" to tell process "AppName" to every text field of window 1'

Click:

bash
osascript -e 'tell application "System Events" to tell process "AppName" to click button "OK" of window 1'
osascript -e 'tell application "System Events" to tell process "AppName" to click checkbox "Enable" of window 1'

Menu Operations:

bash
# List menu items
osascript -e 'tell application "System Events" to tell process "AppName" to name of every menu bar item of menu bar 1'
osascript -e 'tell application "System Events" to tell process "AppName" to name of every menu item of menu "File" of menu bar 1'

# Click menu item
osascript -e 'tell application "System Events" to tell process "AppName" to click menu item "Paste" of menu "Edit" of menu bar 1'

Type Text:

bash
# Set text field value
osascript -e 'tell application "System Events" to tell process "AppName" to set value of text field 1 of window 1 to "hello"'

# Simulate keystroke input (current focus)
osascript -e 'tell application "System Events" to keystroke "hello"'

# Non-ASCII characters via clipboard
osascript -e 'set the clipboard to "中文文本"
tell application "System Events" to keystroke "v" using command down'

Keyboard Shortcuts:

bash
osascript -e 'tell application "System Events" to keystroke "s" using command down'           # Cmd+S
osascript -e 'tell application "System Events" to keystroke "s" using {command down, shift down}' # Cmd+Shift+S
osascript -e 'tell application "System Events" to key code 36'   # Return
osascript -e 'tell application "System Events" to key code 53'   # Escape

Window Management:

bash
osascript -e 'tell application "System Events" to get name of every window of process "AppName"'
osascript -e 'tell application "System Events" to set size of window 1 of process "AppName" to {1200, 800}'
osascript -e 'tell application "System Events" to set position of window 1 of process "AppName" to {0, 0}'
osascript -e 'tell application "System Events" to set value of attribute "AXFullScreen" of window 1 of process "AppName" to true'
Show full SKILL.md (558 more words)Show less
Key Code Quick Reference
KeyCodeKeyCode
Return36Escape53
Tab48Space49
Delete51Forward Delete117
Up126Down125
Left123Right124
Page Up116Page Down121
Home115End119

Layer 2: autoui-mcp-server Vision Automation

When to Use

Layer 2 is activated in the following situations:

  • Probe phase determined AX is unavailable (AX tree empty/incomplete/missing target element/errors) — this is the most common trigger path
  • Layer 1 operation verification found it did not take effect (Probe passed but actual operation failed)
  • Visual verification of complex operation results is needed

Do not skip Probe and use Layer 2 directly. However, once Probe determines AX is unavailable, switch to Layer 2 immediately — do not repeatedly attempt Layer 1.

Note: Layer 2 uses autoui-mcp-server (Rust implementation) to directly control the local mouse and keyboard. It occupies the mouse/keyboard during operation execution. Coordinates are in logical pixels (Retina displays handled automatically).

Mixing browser tools is strictly prohibited: Playwright MCP's browser_* tools (browser_click, browser_select_option, browser_fill_form, browser_type, browser_press_key, browser_snapshot, browser_screenshot, etc.) can only operate on browser web pages and cannot operate desktop applications. When visual automation is needed for desktop applications, only use autoui-mcp-server's auto_* tools (e.g., auto_vision_locate, auto_mouse_click, etc.) — never invoke any browser_* tools. The same applies to screenshots: never invoke Playwright's screenshot tools. Use autoui-mcp-server's auto_vision_locate or auto_vision_verify when you need to check the screen state.

Workflow: plan → act → verify

Unified three-step workflow:

1. Plan — Call auto_vision_plan to get recommended actions and candidate elements

bash
auto_vision_plan(intent='task intent', context=['completed action 1', ...])

Returns:

  • action: VL model's recommended operation (action_type + target + params)
  • candidates: coordinate list of all related elements

2. Act — Execute based on recommendation or candidates

bash
# Follow AI recommendation (complex multi-step tasks)
auto_mouse_click(x=result.action.target.center.x, y=result.action.target.center.y)

# Or select from candidates (simple tasks)
auto_mouse_click(x=result.candidates[0].center.x, y=result.candidates[0].center.y)

3. Verify — Verify operation results

bash
auto_vision_verify(assertion='expected screen state')
Key Points
  • Double-click to open: On macOS, opening files/folders/apps requires clicks=2
  • Focus before scrolling: Click the target area first, then scroll
  • Drag: Use two separate plan calls to find start and end points, then drag
  • Never guess coordinates: Re-plan before each operation, do not reuse old coordinates
  • Chinese input: Automatically handled via clipboard paste, no manual handling needed
Tool List
ToolPurpose
auto_vision_planSmart planning: returns recommended action + candidate element list
auto_vision_verifyVisual verification: checks if current screen state matches expected assertion
auto_mouse_clickMouse click (left/right/middle button, single/double click)
auto_mouse_moveMove mouse (hover)
auto_mouse_scrollScroll (positive = up, negative = down)
auto_mouse_dragDrag from start point to end point
auto_keyboard_typeType text (supports Chinese, auto clipboard paste)
auto_keyboard_pressPress key or key combination

Guardrails

  • ALWAYS minimize all other application windows before opening an app (see mandatory flow in "Open / Activate / Quit" section). Do not set applications to fullscreen
  • NEVER execute destructive commands (rm -rf, diskutil erase, etc.) unless the user explicitly confirms
  • NEVER modify system security settings
  • NEVER enter passwords unless the user explicitly provides them
  • NEVER perform write operations during the Probe phase (click/keystroke/set value) — Probe is read-only
  • NEVER force Layer 1 operations when the AX tree is incomplete — if there is any doubt during Probe, switch to Layer 2
  • If Layer 1 fails due to permission issues, inform the user how to authorize — do not blindly retry
  • When using Layer 2, verify after every operation
  • NEVER use Playwright MCP's browser_* tools (browser_click, browser_select_option, browser_fill_form, browser_type, browser_press_key, browser_hover, browser_drag, browser_snapshot, browser_navigate, browser_screenshot, etc.) to operate desktop applications — these tools are only effective for browser web pages and completely ineffective for local applications. Desktop application visual automation can only use autoui-mcp-server's auto_* tools

© different-ai-studio, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in packages/app/src/lib/skills/macos-control of different-ai-studio/teamclu.

Open the folder on GitHubat commit 0ea73c3

Compare with similar skills

macOS Control next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

macOS Control compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
macOS Control this skilldifferent-ai-studio/teamclu167—~4.2kAutomated safety check: PassMIT
Site ArchitectureAvdLee/RocketSimApp80210 repos~3.3kAutomated safety check: PassCustom licence
macOS Spm App PackagingDimillian/Skills4k5 repos~1.2kAutomated safety check: PassMIT
Orca iOS Simulator Controlstablyai/orca87k1 repos~584Automated safety check: PassApache-2.0
Mole Bug Patternstw93/Mole69k—~2kAutomated safety check: PassGPL-3.0
Disk Storage AnalyzerKKKKhazix/khazix-skills21k1 repos~1.4kAutomated safety check: PassMIT

Similar skills

  • Site Architecture

    AvdLee/RocketSimApp

    When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking.

    802 GitHub starsUsed in 10 repos~3.3k tokens
    Marketing & SEOAuto-check passed
  • macOS Spm App Packaging

    Dimillian/Skills

    Scaffold, build, and package SwiftPM-based macOS apps without an Xcode project.

    4k GitHub starsUsed in 5 repos~1.2k tokens
    MobileAuto-check passed
  • iOS Simulator control from inside Orca, with the live device view in Orca's emulator pane. Use when driving a booted Apple Simulator on macOS: taps, gestures…

    87k GitHub starsUsed in 1 repo~584 tokens
    MobileAuto-check passed
  • A catalog of recurring bug shapes in the Mole Mac cleaner, used to review safety-sensitive diffs for deletion safety, unbounded commands, shell traps and weak tests.

    69k GitHub stars~2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Disk Storage Analyzer

    KKKKhazix/khazix-skills

    Scans a Mac or Windows PC read-only to find what fills the disk, grades each item by how safe it is to clean and builds an interactive HTML report.

    21k GitHub starsUsed in 1 repo~1.4k tokens
    Productivity & AutomationAuto-check passed
  • cmux Diagnostics

    manaflow-ai/cmux

    Runs a read-only health check for cmux and explains what it finds, covering the CLI and socket, settings, agent hooks, session restore and notifications.

    28k GitHub starsUsed in 1 repo~819 tokens
    Productivity & AutomationAuto-check passed

More from different-ai-studio/teamclu

All 8 skills in this repo
  • App Auth

    different-ai-studio/teamclu

    A skill your agent uses when implementing TeamClu platform sign-in, organization-role access, employee pages or protected data endpoints in an app, or changing its login permissions.

    167 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Create Role

    different-ai-studio/teamclu

    Create a workspace role that follows the ROLE.md specification.

    167 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Image Gen

    different-ai-studio/teamclu

    生成图片:配图、插图、海报、头像、示意图、Logo 草稿、封面、banner。触发词:画一张、画个、生成图片、生成一张图、做张图、做个图、配图、出图、生图、AI 绘图、image、draw、illustration、poster。仅从零生成,不做已有图片的编辑或修改。

    167 GitHub stars~430 tokensUpdated yesterday
    Auto-check passed
  • Sentry Fix

    different-ai-studio/teamclu

    A skill your agent uses when the user wants to fix a Sentry issue, auto-repair a bug from Sentry, or create a fix PR for a Sentry error.

    167 GitHub stars~2.2k tokensUpdated yesterday
    Auto-check passed
  • Sentry Monitor

    different-ai-studio/teamclu

    A skill your agent uses when the user wants to check Sentry issues, run a Sentry daily report, or monitor error trends.

    167 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Windows Control

    different-ai-studio/teamclu

    Control Windows desktop applications: open/operate apps, click controls, type text, scroll, keyboard shortcuts, window management, toggle options, lists and combos, etc.

    167 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about macOS Control

What does macOS Control do?

Control macOS desktop applications: open/operate apps, click buttons, type text, scroll, keyboard shortcuts, window management, toggle options, dropdown selections, etc. macOS Control is an agent skill from different-ai-studio/teamclu. Control macOS desktop applications: open/operate apps, click buttons, type text, scroll, keyboard shortcuts, window management, toggle options, dropdown selections, etc.

When should I use macOS Control?

macOS Control fits situations like: words: open app; control computer.

How do I install macOS Control in Claude Code?

Run `npx skills add different-ai-studio/teamclu --skill macos-control -a claude-code`. Or copy the skill folder (packages/app/src/lib/skills/macos-control in different-ai-studio/teamclu) into .claude/skills/macos-control in your project. Claude Code loads it when a task matches its description.

How do I install macOS Control in Codex?

Run `npx skills add different-ai-studio/teamclu --skill macos-control -a codex`. Or copy the skill folder (packages/app/src/lib/skills/macos-control in different-ai-studio/teamclu) into .agents/skills/macos-control in your project. Codex loads it when a task matches its description.

Can I use macOS Control in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add different-ai-studio/teamclu --skill macos-control -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/macos-control, .gemini/skills/macos-control, .github/skills/macos-control and .opencode/skills/macos-control in your project.

What does macOS Control need to run?

Going by SKILL.md and its folder, macOS Control needs the command-line tools its instructions call (osascript). Compatibility (from SKILL.md): macOS only. Layer 2 requires autoui-mcp-server MCP server..

Does macOS Control access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is macOS Control safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does macOS Control use?

macOS Control is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does macOS Control use?

About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to macOS Control?

Skills that share tags, products or a category with macOS Control: Site Architecture (AvdLee/RocketSimApp, 802 stars), macOS Spm App Packaging (Dimillian/Skills, 4k stars), Orca iOS Simulator Control (stablyai/orca, 87k stars) and Mole Bug Patterns (tw93/Mole, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains macOS Control?

different-ai-studio (a GitHub organization) maintains it in different-ai-studio/teamclu, which has 167 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 6, 2026.

Source: different-ai-studio/teamclu on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.