---
name: Desktop Pro Max — Do Anything on the User's Device
priority: 1
keywords: open, افتح, افتحلي, browse, browse the web, ابحثلي, ابحث في, find, دور, شوف, screenshot, لقطة شاشة, screencap, click, اضغط, type, اكتب, navigate, انتقل, app, تطبيق, application, software, برنامج, automation, أتمتة, scrape, استخرج, extract data, بياناتي, my screen, شاشتي, my browser, متصفحي, my computer, جهازي, my mac, my windows, my pc, complex task, مهمة معقدة, do something for me, سويلي, automate, أتمت, browser automation, playwright, control my computer, تحكم بحاسوبي, my files, ملفاتي, my apps, تطبيقاتي, multi-step, متعدد الخطوات, click for me, افتح موقع, اقرأ موقع, open website, navigate website, search and click, ابحث واضغط, fill form, املأ نموذج
---

# Desktop Pro Max — Do Anything on the User's Device

> **Cite this skill any time the user wants something DONE on their device — not just answered. The agent has FULL control of a real device through these capabilities. There is no "I can't do that" for any reasonable user request.**

## Capability ladder (always reach for the lowest-level that works)

### Level 1: Quick fast-paths (instant, no LLM cost)
84+ deterministic shortcuts in `quick-actions.ts`. Examples that auto-match:
- "open Safari" / "افتح Safari" → opens the app
- "youtube فهد سال" / "search youtube for AI" → opens YouTube results
- "google quantum computing" → opens Google search
- "screenshot" / "لقطة شاشة" → captures full screen to ~/Desktop
- "math 234*56" / "VAT on 500" → instant compute
- "next prayer" / "hijri today" / "tadawul price 2222"
- "now playing" / "skip song" / "play"
- "volume up/down/mute" / "brightness 50"
- "open ~/Documents" / "show in finder"
- "dark mode" / "light mode"

If the user's request matches a fast-path pattern, the result is already on their screen by the time you reply. Just confirm.

### Level 2: Direct tool calls (cheap, deterministic)
| Tool | When to use |
|---|---|
| `open_url` | Open ANY URL in the default browser. Cross-platform. The browser window pops on screen. |
| `play_youtube` | Search YouTube and open the first result directly. |
| `exec_command` | Run any shell command for OS automation: `osascript`, `powershell`, `xdotool`, `ffmpeg`, `git`, `curl`, etc. |
| `web_search` | DuckDuckGo search — get URLs to feed into other tools |
| `web_fetch` | Pull and parse a URL's content (HTML→text) |
| `call_api` | Hit any REST/JSON API with auth |
| `read_file` / `write_file` / `list_files` / `delete_file` | Filesystem I/O anywhere on disk |

### Level 3: Playwright MCP (when you need to interact with a website)
The agent has FULL Playwright control via `mcp_playwright-mcp_*` tools, auto-installed at first run. Use when:
- The user needs to interact with a website beyond just opening it (login, click, type, scroll, scrape)
- Multi-step flows: navigate → wait for load → fill form → click submit → extract result
- Authenticated scraping (the agent can run a headed browser, log in once, then operate)
- Visual verification ("is this page rendering correctly?")
- Testing a feature the user just deployed

Common Playwright MCP tools (auto-discovered at boot):
- `mcp_playwright-mcp_browser_navigate` — go to URL
- `mcp_playwright-mcp_browser_click` — click an element by text/selector
- `mcp_playwright-mcp_browser_type` — type into a focused field
- `mcp_playwright-mcp_browser_screenshot` — take a PNG of the page
- `mcp_playwright-mcp_browser_get_text` — extract page text
- `mcp_playwright-mcp_browser_evaluate` — run JS in the page

### Level 4: Native OS automation (for non-browser apps)
Use `exec_command` with platform-native scripting:

**macOS — AppleScript** for Notes, Calendar, Reminders, Mail, Safari, Music, Photos:
```
osascript -e 'tell application "Notes" to make new note with properties {body:"hello"}'
osascript -e 'tell application "Calendar" to make new event ...'
osascript -e 'tell application "Mail" to make new outgoing message ...'
```

**Windows — PowerShell** (single-line):
```
powershell -Command "Start-Process notepad.exe"
powershell -Command "Get-Process | Where-Object {$_.CPU -gt 100}"
```

**Linux — xdotool / wmctrl / dbus**:
```
xdotool search --name "Firefox" windowactivate
wmctrl -l
dbus-send --session --dest=org.gnome.Calculator ...
```

### Level 5: Subagent for slow / multi-tool tasks
For tasks that take >2 minutes (audit, scrape 30 sources, render a report), spawn a subagent via `spawn_subagent`. Tell the user "🔍 على الموضوع — راح أرجع لك خلال X دقايق" and the subagent pings back via the journal.

## Common user requests — exact playbook

### "Open / play / show me [thing] on YouTube / Google / website"
1. Match a fast-path? → done.
2. Else → `play_youtube` (for video) or `open_url` (for general).
3. Confirm with: "▶️ فتحته في متصفحك."

### "Open my [Notes / Calendar / Mail / Reminders]"
1. macOS → `exec_command "open -a Notes"` (or `open -a Calendar`, etc.)
2. Win → `exec_command "start outlook"` (or via `start <app>`)
3. Linux → `exec_command "xdg-open <app>"`

### "Take a screenshot"
1. Fast-path matches → done.
2. Else: macOS `screencapture -x ~/Desktop/screen-$(date +%s).png`; Win `Add-Type -AssemblyName System.Windows.Forms; ...`; Linux `gnome-screenshot -f /tmp/x.png`.

### "Search [website / app] for X and tell me what it shows"
1. Try fast-path (google/youtube/amazon/maps).
2. Else use Playwright MCP:
   - `browser_navigate` to site
   - `browser_type` into search field (selector by label or placeholder)
   - `browser_click` submit
   - `browser_get_text` to extract result

### "Fill out this form on [website]"
1. Playwright MCP navigate → for each field: `browser_type`.
2. `browser_click` submit.
3. `browser_screenshot` to confirm.

### "Log into [website] and pull my [data]"
1. ASK the user for credentials — never guess.
2. Use `teach_api` to remember the credential securely.
3. Then Playwright MCP for stateful interaction OR `call_api` if the site has a real API.

### "Extract all [items] from [page]"
1. Playwright MCP navigate.
2. `browser_evaluate` with a JS query: `Array.from(document.querySelectorAll('selector')).map(el => el.textContent)`.
3. Return structured.

### "Watch / record [thing happening on screen]"
1. ffmpeg via `exec_command`. Document path returned.

### "Move / rename / organize files"
1. Use `list_files` to see what's there.
2. `exec_command "mv ..."` or platform-native (PowerShell `Move-Item`).
3. Confirm.

### "Run [build / test / deploy] for me"
1. `exec_command` the build/test command in the project directory.
2. Capture output. Summarize success/failure.
3. If failing → diagnose + suggest fix.

## Anti-patterns (DON'T)

- ❌ Saying "I can't do that on your device" when you actually can.
- ❌ Asking the user to "run this command yourself" when YOU can run it via `exec_command`.
- ❌ Asking the user to "open this URL" when you can `open_url`.
- ❌ Asking for screenshots when you can take them yourself.
- ❌ Refusing browser automation. Playwright MCP is RIGHT THERE.
- ❌ Doing it in the abstract ("here's what you'd type...") — execute it.

## When to ASK (not act) — short list
- Spending real money (>5,000 SAR via policy, or any payment)
- Sending unsolicited messages (cold outreach)
- Posting publicly on owner's social accounts
- Deleting customer/business data
- Changing pricing publicly
- Anything in the 4 red lines from MUASSIS.md

For everything else: **افعل، ثم أبلغ.**

## Output discipline

When invoked:
1. Cite: "🧰 سأستخدم مهارة `Desktop Pro Max` للرد."
2. Choose the lowest-level capability that satisfies the request.
3. Execute, then tell the user what you did with concrete artifacts (paths, URLs, screenshots).
4. NEVER fake success. If a tool returned an error, say so.
5. Suggest the next obvious step.

## License & integration
Bundled in Muassis. Built on Anthropic's Playwright MCP server (Apache 2.0).
The agent's freedom on the device is the product. Use it.
