desktop-act

GitHub

提供跨操作系统(Linux/macOS/Windows)的桌面自动化能力,支持多Agent并发独占桌面会话、VNC池管理及GUI交互,实现无API密钥的计算机使用控制。

desktop-act/skills/desktop-act/SKILL.md Lifecycle-Innovations-Limited/claude-ops

Trigger Scenarios

需要模拟点击或输入以操作本地应用程序 多个Agent需要隔离且并发的桌面环境

Install

npx skills add Lifecycle-Innovations-Limited/claude-ops --skill desktop-act -g -y
More Options

Non-standard path

npx skills add https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/desktop-act/skills/desktop-act -g -y

Use without installing

npx skills use Lifecycle-Innovations-Limited/claude-ops@desktop-act

指定 Agent (Claude Code)

npx skills add Lifecycle-Innovations-Limited/claude-ops --skill desktop-act -a claude-code -g -y

安装 repo 全部 skill

npx skills add Lifecycle-Innovations-Limited/claude-ops --all -g -y

预览 repo 内 skill

npx skills add Lifecycle-Innovations-Limited/claude-ops --list

SKILL.md

Frontmatter
{
    "name": "desktop-act",
    "description": "Cross-OS computer-use MCP: multi-agent exclusive desktop leases, Xvnc pool on Linux, single-session macOS\/Windows. Use for GUI\/desktop automation and concurrent agent desktops."
}

desktop-act

Computer-use primitives via mcp__desktop-act__* plus act(goal) (OAuth via claude-agent-sdk — no Anthropic API key).

Multi-agent (required pattern)

ensure_desktop(owner_id="<agent-id>", geometry="2560x1440")  # exclusive seat
# … primitives with session_id …
heartbeat_desktop(session_id)   # long runs
release_desktop(session_id)     # on stop / idle done

If another agent holds every free seat, Linux auto-spawns a new Xvnc on the next free display/port. Leases expire (DESKTOP_ACT_LEASE_TTL); reaper frees the lock and stops pool VNC so idle seats do not thrash the host.

Architecture

  • Parent agent is the brain — primitives + screenshots, or hands-off act(goal).
  • Linux: X11 + Xvnc/websockify pool (:50:99), file-locked leases.
  • macOS: single interactive session (Screen Sharing → noVNC optional).
  • Windows: full WinBackend (ImageGrab + pyautogui/SendInput); single interactive desktop only (no multi-seat pool). Needs a logged-in session.

Watching the desktop

Pool session returns novnc_url (port base DESKTOP_ACT_NOVNC_PORT_BASE, default 6082). Host default display (often :1) is separate and is never reaped by the idle reaper. Always prefer the returned URL over hardcoding ports.

Install

  • With claude-ops: desktop-act@ops-marketplace (co-installed by /ops:setup and /ops:update via plugin-dependencies.json).
  • Standalone: marketplace add Lifecycle-Innovations-Limited/desktop-act, then desktop-act@desktop-act.

When to use

Task Approach
Local app you need to click/type into desktop-act primitives
Concurrent agents needing isolated seats Linux pool + ensure_desktop(owner_id=…)
Hands-off goal mcp__desktop-act__act(goal, max_iterations=…)
Browser-only automation Prefer browser MCP tools when no OS UI is required

Defaults

  • act model: claude-sonnet-5
  • act max_iterations: 20 (not max_steps)
  • Python: >=3.11

Version History

  • 64bad13 Current 2026-08-12 09:02

Same Skill Collection

claude-ops/skills/boss/SKILL.md
claude-ops/skills/flow/SKILL.md
claude-ops/skills/ledger/SKILL.md
claude-ops/skills/ops-accounts/SKILL.md
claude-ops/skills/ops-ar/SKILL.md
claude-ops/skills/ops-aws-audit/SKILL.md
claude-ops/skills/ops-comms/SKILL.md
claude-ops/skills/ops-competitors/SKILL.md
claude-ops/skills/ops-credentials/SKILL.md
claude-ops/skills/ops-daemon/SKILL.md
claude-ops/skills/ops-dash/SKILL.md
claude-ops/skills/ops-deploy-fix/SKILL.md
claude-ops/skills/ops-deploy/SKILL.md
claude-ops/skills/ops-desktop/SKILL.md
claude-ops/skills/ops-doctor/SKILL.md
claude-ops/skills/ops-ecom/SKILL.md
claude-ops/skills/ops-feature-dev/SKILL.md
claude-ops/skills/ops-fires/SKILL.md
claude-ops/skills/ops-fleet/SKILL.md
claude-ops/skills/ops-go/SKILL.md
claude-ops/skills/ops-gtm/SKILL.md
claude-ops/skills/ops-home/SKILL.md
claude-ops/skills/ops-inbox/SKILL.md
claude-ops/skills/ops-integrate/SKILL.md
claude-ops/skills/ops-leadgen/SKILL.md
claude-ops/skills/ops-linear/SKILL.md
claude-ops/skills/ops-mac/SKILL.md
claude-ops/skills/ops-marketing/SKILL.md
claude-ops/skills/ops-mcp/SKILL.md
claude-ops/skills/ops-merge/SKILL.md
claude-ops/skills/ops-monitor/SKILL.md
claude-ops/skills/ops-next/SKILL.md
claude-ops/skills/ops-orchestrate/SKILL.md
claude-ops/skills/ops-package/SKILL.md
claude-ops/skills/ops-pocket/SKILL.md
claude-ops/skills/ops-projects/SKILL.md
claude-ops/skills/ops-recap/SKILL.md
claude-ops/skills/ops-release/SKILL.md
claude-ops/skills/ops-resume/SKILL.md
claude-ops/skills/ops-revenue/SKILL.md
claude-ops/skills/ops-rotate-setup/SKILL.md
claude-ops/skills/ops-rotate/SKILL.md
claude-ops/skills/ops-secret-sync/SKILL.md
claude-ops/skills/ops-settings/SKILL.md
claude-ops/skills/ops-ship/SKILL.md
claude-ops/skills/ops-speedup/SKILL.md
claude-ops/skills/ops-status/SKILL.md
claude-ops/skills/ops-triage/SKILL.md
claude-ops/skills/ops-unifi/SKILL.md
claude-ops/skills/ops-update/SKILL.md

Metadata

Files
0
Version
206d40d
Hash
baf28c3d
Indexed
2026-08-12 09:02

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-18 07:25
浙ICP备14020137号-1 $mapa de visitantes$