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
- jgeofil/agent-skillstheir own version, first seen Nov 8, 2026
- magnusrodseth/dotfilestheir own version, first seen Nov 8, 2026
- songkeys/claude-codex-computer-usetheir own version, first seen Nov 8, 2026
- ashleysbrain/skillstheir own version, first seen Nov 8, 2026
- Eymistaken/Pcbridgetheir own version, first seen Nov 7, 2026
- delorenj/skillstheir own version, first seen Nov 7, 2026
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.
aivrarSkillcompetitor-news-monitor
Watch named companies for material news; cited digests.
Also in 6 projects that use this
autonomous-aiSkillclaude-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-aiSkillface-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
Other versions68 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 68
- NousResearch/hermes-agent★ 262ksame name
- bojieli/ai-agent-book-projects★ 53ksame name
- bojieli/ai-agent-book★ 53ksame name
- xuzhougeng/wisp-science★ 1.1ksame name
- avibe-bot/avibe★ 638same name
- cyhhao/vibe-remote★ 638same name
- autonomous-ai/autonomous-os★ 552same name
- autonomous-ai/lampOS★ 552same name
- autonomous-ai/Physical-AI-Operating-System★ 552same name
- bam-bam-2/solo-skills★ 366same name
58 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository66 other files it gives its agents.
- adb-android-app-opsSkill
- agents-sdkSkill
- api-documentationSkill
- atlasSkill
- backend-api-auth-guardrailsSkill
- browser-useSkill
- bundleSkill
- changelogSkill
- chatgpt-appsSkill
- chrome-devtools-testSkill
- chronicleSkill
- cloudflare-deploySkill
- cloudflare-email-serviceSkill
- cloudflare-one-migrationsSkill
- cloudflare-oneSkill
- cloudflareSkill
- create-planSkill
- database-analysisSkill
- database-data-guardrailsSkill
- debug-memory-leakSkill
- deep-initSkill
- deploySkill
- develop-web-gameSkill
- dev-workflowSkill
- docSkill
- durable-objectsSkill
- explainSkill
- figmaSkill
- firmware-feature-writerSkill
- fix-bugSkill
- fix-lintSkill
- frontend-mobile-uiux-designerSkill
- frontend-ui-guardrailsSkill
- gemini-cliSkill
- grok-x-searchSkill
- hermes-chromeSkill
- image-file-readerSkill
- imagegenSkill
- infra-ops-mobile-guardrailsSkill
- layout-reviewSkill
- localizeSkill
- multimodal-lookerSkill
- openai-docsSkill
- optimizeSkill
- parallel-devSkill
- plan-modeSkill
- playwrightSkill
- project-planningSkill
- qa-testerSkill
- refactorSkill
- review-changesSkill
- review-fix-shipSkill
- rust-programmerSkill
- sandbox-sdkSkill
- screenshotSkill
- security-auditSkill
- security-scanSkill
- security-threat-modelSkill
- source-command-collab-startSkill
- turnstile-spinSkill
- The first 60 shown.
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
- Distinctive: line 47
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 …
- Distinctive: line 53
Destructive actions need explicit approval: Delete, submit irreversible forms, install/uninstall, power, mass paste secrets — confirm first.
- Distinctive: line 92
Do not try to click the Presence STOP control via the same synthetic input path to “self-approve” continued control.
- Distinctive: line 96
When CU was used, the final answer should include:
- Very specific: line 107
If OpenAI/Codex bundled computer-use plugin is also available: prefer lazy-desktop-mcp for local policy, audit, and Presence.
“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.
Files
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:
| File | When |
references/routing.md | Choosing among browser / screenshot / CU |
references/tool-loop.md | MCP tool order and parameters |
references/safety.md | Policy, STOP/PAUSE, forbidden actions |
references/provider-wiring.md | MCP 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)
| Need | Prefer |
| Web / local preview / SSO / tabs | hermes-chrome → browser-e2e / DevTools / Playwright headless |
| System screenshot only (no click/type) | screenshot |
| External black-box website crawl | browser-use (only if user asks or no better path) |
| Android UI | adb-android-app-ops |
Not default for product web debug or CI. Do not use CU as a generic browser driver.
Hard rules
- 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.
- 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. - Minimal session scope. Open the smallest capability set and app/window/screen allowlists that fit the task.
- Prefer semantic targets over raw pixels. Order:
app.activate/window.focus→input.click_target(OCR text or window-relative) → rawinput.clickcoordinates only if policy allows and higher-level targeting fails. - Honor operator STOP / PAUSE. On
SESSION_STOPPEDorSESSION_PAUSED, stop and report; do not retry past STOP. Operator must clear STOP intentionally. - No full-auto on high-risk flows. OTP, payments, production config, trading/orders → human-in-the-loop; stop and ask.
- Destructive actions need explicit approval. Delete, submit irreversible forms, install/uninstall, power, mass paste secrets — confirm first.
- Always close the session with
session.closewhen done (or report why you could not). - Presence teardown is host-owned by default. After the last
session.close,lazy-desktop-hostauto-quits Presence UI (LAZY_DESKTOP_AUTO_QUIT_PRESENCE_UI, default on). Still callsession.closeso 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.) - 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 statusDetail: 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/(seedesktop.runtime). - Runtime flags:
presence_ui_auto_launch,presence_ui_auto_quit,presence_ui_running. - MCP tool
presence.ui.quit— always available; use aftersession.closeor when HUD is stuck. Prefer this over shellosascript/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.
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
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.

