agentleFS
leaf76leaf76/agent-skills/computer-use/SKILL.md

computer-use

Skill0 starsChanged 3 months agoMITView on GitHub

Drive native desktop apps via lazy-desktop-mcp (screenshot, click, type, hotkey, window control, policy-bound sessions, Presence STOP/PAUSE). Use when the user asks for computer use / desktop control / lazy-desktop, or when verifying a native desktop shell (Tauri, PyQt, Electron frame, tray, file picker, OS permission dialogs) that cannot be done via DOM/CDP. Not the default for web pages, product UI debug, or SSO — prefer hermes-chrome, browser-e2e, DevTools, or Playwright. Do not steal keyboard/mouse focus while the user works unless the task is explicitly desktop control. Use when the user runs /computer-use.

68 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use competitor-news-monitor, claude-buddy and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • aivrarSkill

    competitor-news-monitor

    Watch named companies for material news; cited digests.

    Also in 6 projects that use this

  • autonomous-aiSkill

    claude-buddy

    Coordinate with the Claude Buddy companion (Claude Desktop + Claude Code on the user's Mac) — voice-approve tool permission prompts and stay aware of Claude activity.

    Also in 3 projects that use this

  • autonomous-aiSkill

    face-enroll

    Manage the device's face recognition roster — enroll new faces (3 paths: user-supplied photo, agent-captured snapshot on user request, or HAL's familiar-stranger prompt) and maintain the enrolled set (status / remove / reset). All enrolled persons are friends; strangers stay unnamed until promoted via one of the enroll flows.

    Also in 3 projects that use this

  • +9 more from autonomous-ai

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 63 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Announce before control: If you escalate to CU for a native shell (without the user naming CU), say one short line first: which app, why …

    line 47
  2. Distinctive:

    Destructive actions need explicit approval: Delete, submit irreversible forms, install/uninstall, power, mass paste secrets — confirm first.

    line 53
  3. Distinctive:

    Do not try to click the Presence STOP control via the same synthetic input path to “self-approve” continued control.

    line 92
  4. Distinctive:

    When CU was used, the final answer should include:

    line 96
  5. Very specific:

    If OpenAI/Codex bundled computer-use plugin is also available: prefer lazy-desktop-mcp for local policy, audit, and Presence.

    line 107

“Common” is measured: kept by at least 6 in 10 of the 63 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Computer Use (lazy-desktop-mcp)

Local-first desktop automation through lazy-desktop-mcp MCP tools.
Implementer: npm package lazy-desktop-mcp.

Load references only as needed:

FileWhen
references/routing.mdChoosing among browser / screenshot / CU
references/tool-loop.mdMCP tool order and parameters
references/safety.mdPolicy, STOP/PAUSE, forbidden actions
references/provider-wiring.mdMCP missing / client setup

When to use

  • User explicitly asks for computer use, desktop control, lazy-desktop, or Presence HUD
  • Native desktop app verification: Tauri / PyQt / Electron shell, tray, dock, first-run, update dialogs, file pickers, OS permission prompts
  • Interaction that crosses WebView boundary and cannot be completed with CDP/DOM tools

When NOT to use (route away)

NeedPrefer
Web / local preview / SSO / tabshermes-chrome → browser-e2e / DevTools / Playwright headless
System screenshot only (no click/type)screenshot
External black-box website crawlbrowser-use (only if user asks or no better path)
Android UIadb-android-app-ops

Not default for product web debug or CI. Do not use CU as a generic browser driver.

Hard rules

  1. Announce before control. If you escalate to CU for a native shell (without the user naming CU), say one short line first: which app, why CU, that Presence STOP can halt you.
  2. Do not steal focus by default. Forbidden as a web workaround: osascript / tell application "Google Chrome" to activate, hijacking the user's active tab, headed Playwright, or CU-driving daily Chrome when Hermes/CDP suffices.
  3. Minimal session scope. Open the smallest capability set and app/window/screen allowlists that fit the task.
  4. Prefer semantic targets over raw pixels. Order: app.activate / window.focus → input.click_target (OCR text or window-relative) → raw input.click coordinates only if policy allows and higher-level targeting fails.
  5. Honor operator STOP / PAUSE. On SESSION_STOPPED or SESSION_PAUSED, stop and report; do not retry past STOP. Operator must clear STOP intentionally.
  6. No full-auto on high-risk flows. OTP, payments, production config, trading/orders → human-in-the-loop; stop and ask.
  7. Destructive actions need explicit approval. Delete, submit irreversible forms, install/uninstall, power, mass paste secrets — confirm first.
  8. Always close the session with session.close when done (or report why you could not).
  9. Presence teardown is host-owned by default. After the last session.close, lazy-desktop-host auto-quits Presence UI (LAZY_DESKTOP_AUTO_QUIT_PRESENCE_UI, default on). Still call session.close so that path runs. If Presence is still running after close (older host, auto-quit off, or crash), quit it with the commands below. Do not rely on the app’s ~180s idle auto-quit alone. (Exception: user asks to keep Presence open.)
  10. Fail soft if MCP is missing. Explain missing server / policy / OS permissions; do not invent shell mouse automation as a silent fallback.

Standard loop

1. Preflight
   desktop.runtime  → policy paths, presence paths, host alive
   if STOP or PAUSE file exists → stop and ask user (PAUSE blocks session.open until cleared)
   desktop.permissions → Accessibility / Screen Recording
   desktop.capabilities → what this backend actually supports
2. Scope
   session.open with minimal capabilities + allowed_apps/windows/screens
   (dry_run=true first if unsure about policy)
3. Observe → Act → Observe
   observe.capture (before/after)
   optional ocr.read / vision.* when configured
   app.activate / window.focus / input.* as needed
4. Teardown (required)
   session.close  → host auto-quit Presence (default)
   presence.ui.quit → always available force-quit if still running / auto-quit off
   report artifacts, STOP/PAUSE, and Presence quit status

Detail: references/tool-loop.md.

Presence UI

Host auto-launches ComputerUsePresence on session open / gated control (not idle MCP start), and auto-quits after the last session.close or host exit (default).

  • Closing the HUD alone does not stop the agent (default).
  • Stop writes STOP → host denies gated actions.
  • Pause waits until cleared or STOP.
  • Paths under ~/Library/Application Support/dev.lazy.desktop-mcp/artifacts/presence/ (see desktop.runtime).
  • Runtime flags: presence_ui_auto_launch, presence_ui_auto_quit, presence_ui_running.
  • MCP tool presence.ui.quit — always available; use after session.close or when HUD is stuck. Prefer this over shell osascript/pkill.

Do not try to click the Presence STOP control via the same synthetic input path to “self-approve” continued control.

Evidence reporting

When CU was used, the final answer should include:

  • Target app / window and why CU (not browser)
  • Session capabilities used (high level)
  • Capture/OCR outcomes that support pass/fail
  • Any policy deny, runtime approval, STOP/PAUSE, or permission gap
  • Whether Presence UI was quit after teardown (or why it was left running)
  • Residual risk (e.g. primary display only; no multi-monitor)

Codex bundled CUA

If OpenAI/Codex bundled computer-use plugin is also available: prefer lazy-desktop-mcp for local policy, audit, and Presence. Use bundled CUA only when lazy-desktop tools are unavailable and the user accepts that path.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.