Site Architecture
AvdLee/RocketSimApp
When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking.
Control macOS desktop applications: open/operate apps, click buttons, type text, scroll, keyboard shortcuts, window management, toggle options, dropdown selections, etc.
$ npx skills add different-ai-studio/teamclu --skill macos-control -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install different-ai-studio/teamclu macos-control --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "macos-control" agent skill from https://github.com/different-ai-studio/teamclu/tree/main/packages/app/src/lib/skills/macos-control into .claude/skills/macos-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "macos-control", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/different-ai-studio/teamclu/tree/main/packages/app/src/lib/skills/macos-controlType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add different-ai-studio/teamclu --skill macos-control -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install different-ai-studio/teamclu macos-control --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/different-ai-studio/teamclu.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/app/src/lib/skills/macos-control .agents/skills/macos-control && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "macos-control" agent skill from https://github.com/different-ai-studio/teamclu/tree/main/packages/app/src/lib/skills/macos-control into .agents/skills/macos-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "macos-control", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add different-ai-studio/teamclu --skill macos-control -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install different-ai-studio/teamclu macos-control --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/different-ai-studio/teamclu.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/app/src/lib/skills/macos-control .cursor/skills/macos-control && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "macos-control" agent skill from https://github.com/different-ai-studio/teamclu/tree/main/packages/app/src/lib/skills/macos-control into .cursor/skills/macos-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "macos-control", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/different-ai-studio/teamclu.git --path packages/app/src/lib/skills/macos-control--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add different-ai-studio/teamclu --skill macos-control -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install different-ai-studio/teamclu macos-control --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/different-ai-studio/teamclu.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/app/src/lib/skills/macos-control .gemini/skills/macos-control && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "macos-control" agent skill from https://github.com/different-ai-studio/teamclu/tree/main/packages/app/src/lib/skills/macos-control into .gemini/skills/macos-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "macos-control", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install different-ai-studio/teamclu macos-controlInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add different-ai-studio/teamclu --skill macos-control -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/different-ai-studio/teamclu.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/app/src/lib/skills/macos-control .github/skills/macos-control && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "macos-control" agent skill from https://github.com/different-ai-studio/teamclu/tree/main/packages/app/src/lib/skills/macos-control into .github/skills/macos-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "macos-control", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add different-ai-studio/teamclu --skill macos-control -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install different-ai-studio/teamclu macos-control --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/different-ai-studio/teamclu.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/app/src/lib/skills/macos-control .opencode/skills/macos-control && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "macos-control" agent skill from https://github.com/different-ai-studio/teamclu/tree/main/packages/app/src/lib/skills/macos-control into .opencode/skills/macos-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "macos-control", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
macos-controlControl 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. 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.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0ea73c3. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
osascriptFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
macOS only. Layer 2 requires autoui-mcp-server MCP server.
From compatibility in the SKILL.md frontmatter.
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.
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.
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.
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.
.claude/skills/macos-control/SKILL.md (or your agent's skills folder).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.
All apps follow the same flow:
Probe the target app's AX tree in read-only mode — never perform any click/type/modify operations during the Probe phase:
# 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'Make routing decisions immediately based on Probe results:
| Probe Result | Route | Reason |
|---|---|---|
| AX tree returns rich element list containing target element | → Layer 1 | AX available, operate directly |
| AX tree returns content but does not contain target element | → Layer 2 | Element unreachable, AX operation may mis-trigger |
| AX tree returns empty list / very few elements (< 3) | → Layer 2 | AX 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 2 | AX 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 1may click the wrong button;set value of text field 1may write to the wrong input field. The purpose of Probe is to eliminate these risks before any operation.
| App Type | Layer 1 Feasibility | Notes |
|---|---|---|
| Finder / Safari / Chrome / Terminal / Mail / Notes / Calendar | High | Rich AppleScript dictionaries, rarely need Layer 2 |
| System Settings / Preview / other native apps | High | System Events can access UI elements |
| Electron apps (VS Code / Slack / Discord) | Low | Poor accessibility support, Probe usually routes to Layer 2 |
| WeChat / WeCom / SeaTalk and other third-party apps | Medium | Partial 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 asbrowser_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).
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.
Two steps: First search by keyword; if not found, list all apps and determine the match yourself.
Step 1: Keyword Search
# 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:
# 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 -uAfter 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.
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:
- Resolve app name — Use
ls /Applications/,mdfind, etc. to confirm the exact name and path (see "Resolve App Name" section). Never skip this step- Minimize all windows — Execute
osascript -e 'tell application "System Events" to set visible of every process whose visible is true to false'- Wait for minimization to complete —
sleep 1(Must wait to prevent the target app from being minimized too)- Open target application — Execute
open -a "AppName"or other open commands- Wait for app to be ready —
sleep 3(ensure window has loaded)
# 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' # Quitopen "/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 browserFinder:
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:
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:
osascript -e 'tell application "Terminal" to do script "ls -la"'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:
# 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:
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:
# 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:
# 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:
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' # EscapeWindow Management:
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'| Key | Code | Key | Code |
|---|---|---|---|
| Return | 36 | Escape | 53 |
| Tab | 48 | Space | 49 |
| Delete | 51 | Forward Delete | 117 |
| Up | 126 | Down | 125 |
| Left | 123 | Right | 124 |
| Page Up | 116 | Page Down | 121 |
| Home | 115 | End | 119 |
Layer 2 is activated in the following situations:
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'sauto_*tools (e.g.,auto_vision_locate,auto_mouse_click, etc.) — never invoke anybrowser_*tools. The same applies to screenshots: never invoke Playwright's screenshot tools. Use autoui-mcp-server'sauto_vision_locateorauto_vision_verifywhen you need to check the screen state.
Unified three-step workflow:
1. Plan — Call auto_vision_plan to get recommended actions and candidate elements
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 elements2. Act — Execute based on recommendation or candidates
# 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
auto_vision_verify(assertion='expected screen state')clicks=2| Tool | Purpose |
|---|---|
auto_vision_plan | Smart planning: returns recommended action + candidate element list |
auto_vision_verify | Visual verification: checks if current screen state matches expected assertion |
auto_mouse_click | Mouse click (left/right/middle button, single/double click) |
auto_mouse_move | Move mouse (hover) |
auto_mouse_scroll | Scroll (positive = up, negative = down) |
auto_mouse_drag | Drag from start point to end point |
auto_keyboard_type | Type text (supports Chinese, auto clipboard paste) |
auto_keyboard_press | Press key or key combination |
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
Just SKILL.md in packages/app/src/lib/skills/macos-control of different-ai-studio/teamclu.
Open the folder on GitHubat commit 0ea73c3
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| macOS Control this skilldifferent-ai-studio/teamclu | 167 | — | ~4.2k | Automated safety check: Pass | MIT | |
| Site ArchitectureAvdLee/RocketSimApp | 802 | 10 repos | ~3.3k | Automated safety check: Pass | Custom licence | |
| macOS Spm App PackagingDimillian/Skills | 4k | 5 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Orca iOS Simulator Controlstablyai/orca | 87k | 1 repos | ~584 | Automated safety check: Pass | Apache-2.0 | |
| Mole Bug Patternstw93/Mole | 69k | — | ~2k | Automated safety check: Pass | GPL-3.0 | |
| Disk Storage AnalyzerKKKKhazix/khazix-skills | 21k | 1 repos | ~1.4k | Automated safety check: Pass | MIT |
AvdLee/RocketSimApp
When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking.
Dimillian/Skills
Scaffold, build, and package SwiftPM-based macOS apps without an Xcode project.
stablyai/orca
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…
tw93/Mole
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.
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.
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.
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.
different-ai-studio/teamclu
Create a workspace role that follows the ROLE.md specification.
different-ai-studio/teamclu
生成图片:配图、插图、海报、头像、示意图、Logo 草稿、封面、banner。触发词:画一张、画个、生成图片、生成一张图、做张图、做个图、配图、出图、生图、AI 绘图、image、draw、illustration、poster。仅从零生成,不做已有图片的编辑或修改。
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.
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.
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.
Works with
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.
macOS Control fits situations like: words: open app; control computer.
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.
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.
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.
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..
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.
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.
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.
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.
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.
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.