OPS on-demand: This skill should be used when the user asks to "control the desktop", "click on…

MITAuto-check: notes

Install Ops Desktop

skills CLI
$ npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-desktop -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Lifecycle-Innovations-Limited/claude-ops ops-desktop --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Lifecycle-Innovations-Limited/claude-ops.git skills-src && mkdir -p .claude/skills && cp -r skills-src/claude-ops/skills/ops-desktop .claude/skills/ops-desktop && rm -rf skills-src

Use ~/.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/

Facts

Skill name
ops-desktop
GitHub stars
542
Token cost
~2.1k tokens
SKILL.md length
702 words
Files
1
Skills in repo
67
Repo updated
First seen
Licence
MIT

At a glance

OPS on-demand: This skill should be used when the user asks to "control the desktop", "click on…

  • Works in 5 steps: Acquire → Observe → Drive → …
  • Asks to control the desktop
  • SKILL.md covers Runtime Context, Routing table, Route — status (default) and Route — list, plus 6 more sections
  • Reaches github.com

What it does

Ops Desktop is an agent skill from Lifecycle-Innovations-Limited/claude-ops. OPS on-demand: This skill should be used when the user asks to "control the desktop", "click on…

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with Model Context Protocol. The repository describes itself as: Business operating system for Claude Code — 57 skills, 21 agents, smart daemon. Unified inbox (WhatsApp/Email/Slack/Telegram), autonomous PR merge, full-AWS monitoring, revenue… The licence is MIT.

When your agent uses it

  • Asks to control the desktop

Example prompts

  • “control the desktop”
  • “/ops-desktop”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): Bash, Read, AskUserQuestion, ToolSearch, mcp__desktop-act__acquire_desktop, mcp__desktop-act__release_desktop, mcp__desktop-act__list_desktops, mcp__desktop-act__list_windows, mcp__desktop-act__launch_app, mcp__desktop-act__screenshot, mcp__desktop-act__observe, mcp__desktop-act__click, mcp__desktop-act__keypress, mcp__desktop-act__type_text, mcp__desktop-act__scroll, mcp__desktop-act__act, mcp__desktop-act__act_step, mcp__desktop-act__batch, mcp__desktop-act__status

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Acquire
  2. Observe
  3. Drive
  4. Verify
  5. Release

What it can do on your machine

Read from SKILL.md and the folder at commit 1aa0928. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • AskUserQuestion
    • ToolSearch
    • mcp__desktop-act__acquire_desktop
    • mcp__desktop-act__release_desktop
    • mcp__desktop-act__list_desktops
    • mcp__desktop-act__list_windows
    • mcp__desktop-act__launch_app
    • mcp__desktop-act__screenshot

    …and 9 more on the same allowed-tools line.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ops Desktop loads about 2.1k tokens when it runs. Until then it costs about 27 tokens; SKILL.md has 702 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~27
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, AskUserQuestion, ToolSearch, mcp__desktop-act__acquire_desktop, mcp__desktop-act__releas

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.

SKILL.md

The full file from Lifecycle-Innovations-Limited/claude-ops at commit 1aa0928, republished under its MIT licence (© Lifecycle-Innovations-Limited). 702 words, ~2,101 tokens.

Download SKILL.mdSave it as .claude/skills/ops-desktop/SKILL.md (or your agent's skills folder).
name
ops-desktop
description
OPS on-demand: This skill should be used when the user asks to "control the desktop", "click on…
allowed-tools
Bash, Read, AskUserQuestion, ToolSearch, mcp__desktop-act__acquire_desktop, mcp__desktop-act__release_desktop, mcp__desktop-act__list_desktops, mcp__desktop-act__list_windows, mcp__desktop-act__launch_app, mcp__desktop-act__screenshot, mcp__desktop-act__observe, mcp__desktop-act__click, mcp__desktop-act__keypress, mcp__desktop-act__type_text, mcp__desktop-act__scroll, mcp__desktop-act__act, mcp__desktop-act__act_step, mcp__desktop-act__batch, mcp__desktop-act__status
argument-hint
[goal text | 'status' | 'list' | 'release [session_id]']
effort
medium
maxTurns
40

OPS ► DESKTOP

Load ops-rules before acting. Public repo (no personal data). Outbound: one draft → one approval → one send. If AskUserQuestion / Workflow are missing, follow Rule 10 in ops-rules (Hermes: numbered options / two-turn Telegram card; delegate_task).

/ops:desktop drives a real GUI desktop (Linux noVNC pool, partial macOS / Windows support) through the desktop-act FastMCP server. Use it for tasks that browser-only automation can't reach: native dialogs, OS file pickers, multi-window flows, screen-recording verification.

The MCP tool schemas are deferred. Load them with ToolSearch on demand:

ToolSearch select:mcp__desktop-act__acquire_desktop,mcp__desktop-act__screenshot,mcp__desktop-act__click,mcp__desktop-act__type_text,mcp__desktop-act__release_desktop

Runtime Context

Before any route runs, resolve:

  1. Plugin root: ${CLAUDE_PLUGIN_ROOT} — used to locate the launcher.
  2. MCP launcher: ${CLAUDE_PLUGIN_ROOT}/mcp-servers/desktop-act-launcher.py — auto-discovers an installed desktop-act marketplace or, if absent, clones from $DESKTOP_ACT_REPO (default https://github.com/Lifecycle-Innovations-Limited/desktop-act.git) and bootstraps a venv on first run.
  3. noVNC default: http://<box-host>:6082 — primary desktop. acquire_desktop() provisions extra sessions on :6082+.
  4. Mobile / SSH mode: if $SSH_CONNECTION, $SSH_CLIENT, or $SSH_TTY is set, emit compact text-only output per Rule 7 (no banners, no tables, plain lines). The noVNC URL is the one piece the user definitely needs — print it once on a copy-able line.

Routing table

Parse $ARGUMENTS and route. First token decides:

First argRoute
(empty) / statusPrint MCP status, default noVNC URL, active sessions, and platform support note
listmcp__desktop-act__list_desktops — show pool state
release <id>mcp__desktop-act__release_desktop(session_id) — free a session
release-allRelease every session this skill has open this turn
anything elseTreat as a goal — acquire → observe → drive → verify → release

Anything else: treat the whole argument string as the goal.


Route — status (default)

  1. Probe the MCP via mcp__desktop-act__status (auto-load schema first).
  2. Print compact summary — plugin connected? venv ready? pool size? default URL?
  3. If the MCP is not reachable, the launcher likely needs to bootstrap. Show:
    • one-line install command (/plugin marketplace add <repo> && /plugin install desktop-act)
    • or the env override (export DESKTOP_ACT_COMMAND=/path/to/run.sh)
    • or the bootstrap repo (export DESKTOP_ACT_REPO=https://...)
  4. Mobile/SSH mode: drop banners, output 4–6 plain lines.

Route — list

ToolSearch select:mcp__desktop-act__list_desktops

Call it. Format as session_id · display · vnc · last_used. Linux only renders full info; macOS/Windows fall back to a "limited platform" note.

Route — release <id> / release-all

Per Rule 5 (destructive actions): release_desktop tears down the X server. Ask before bulk release:

AskUserQuestion: Release session abcd1234?
  [Release]  [Skip]

For release-all, batch confirm once.


Route — goal (default for free-form $ARGUMENTS)

The autonomous loop. Use this when the owner types /ops:desktop open the AWS console and screenshot the ECS cluster page.

Step 1 — Acquire
python
# Load schemas
ToolSearch select:mcp__desktop-act__acquire_desktop,mcp__desktop-act__screenshot,...

session = mcp__desktop-act__acquire_desktop()
session_id = session["session_id"]
display    = session["display"]      # e.g. ":51"
novnc_url  = session["novnc_url"]    # e.g. http://host:6082

Print the noVNC URL on a line by itself so the user can watch live. On mobile, the URL is the most useful thing — surface it FIRST.

Show full SKILL.md (285 more words)Show less
Step 2 — Observe
python
shot = mcp__desktop-act__screenshot(session_id=session_id)
Read(file_path=shot["path"])   # let Claude see the screen

If you need window-level metadata before clicking blindly:

python
windows = mcp__desktop-act__list_windows(session_id=session_id)
Step 3 — Drive

Two modes:

A. Streaming primitives — full reasoning visibility, per-action transparency. Preferred for sensitive flows (anything touching credentials, billing pages, destructive UIs).

python
mcp__desktop-act__launch_app(session_id, app="firefox")
mcp__desktop-act__click(session_id, x=640, y=400)
mcp__desktop-act__type_text(session_id, text="ECS clusters")
mcp__desktop-act__keypress(session_id, key="Return")
mcp__desktop-act__scroll(session_id, direction="down", amount=3)
mcp__desktop-act__screenshot(session_id)   # verify

B. Autonomous loop — hands the goal to act() which runs claude-agent-sdk against the OAuth-bundled CLI (no API key needed; rides Claude Max). Faster but less observable.

python
result = mcp__desktop-act__act(
    session_id=session_id,
    goal="$ARGUMENTS",
    max_iterations=20,
)

For multi-step macros, prefer batch (single round-trip) or act_step (one micro-step at a time with explicit verification).

Step 4 — Verify

Always screenshot and Read the path once at the end before claiming the goal is done. If the verification screenshot doesn't show the expected state, iterate or escalate to the user.

Step 5 — Release

Always release in the same turn, even on failure:

python
mcp__desktop-act__release_desktop(session_id=session_id)

If the user wants to keep the session for follow-up actions, ask first via AskUserQuestion:

Keep session abcd1234 alive for follow-up?
  [Keep]  [Release]

Cross-platform notes

OSStatusNotes
LinuxFullX11 + Xvnc + websockify + python-xlib. Multi-desktop pool live.
macOSPartialServer runs; native X11 calls no-op. Browser tools still work.
WindowsPartialServer runs via Python launcher. Native automation requires manual.

On non-Linux platforms, prefer Kapture (mcp__kapture__*) or Playwright for browser-only tasks. The launcher prints a clear "limited platform" notice if it can't bring up a full session.

Safety

  • Outbound comms (Rule 6): if a goal involves sending email/messages/forms, stage the draft and ask before pressing Send. Per-message approval, never batch.
  • Destructive UI clicks: anything that says "Delete", "Terminate", "Force quit" routes through AskUserQuestion first per Rule 5.
  • Credentials: never type passwords into a goal string — leave it for the owner to fill in the live noVNC viewer.
  • Session isolation: each invocation of /ops:desktop gets its own session_id. Don't pass session IDs between concurrent agents or skills.

Examples

/ops:desktop                                    # status
/ops:desktop list                               # pool state
/ops:desktop release abcd1234                   # free session
/ops:desktop open the AWS ECS console and screenshot the my-project-api cluster
/ops:desktop launch Firefox and navigate to https://example.com

$ARGUMENTS

$ARGUMENTS

© Lifecycle-Innovations-Limited, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in claude-ops/skills/ops-desktop of Lifecycle-Innovations-Limited/claude-ops.

Open the folder on GitHubat commit 1aa0928

Compare with similar skills

Ops Desktop 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.

Ops Desktop compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ops Desktop this skillLifecycle-Innovations-Limited/claude-ops542—~2.1kAutomated safety check: NotesMIT
MCP Server Builderanthropics/skills180k63 repos~2.3kAutomated safety check: PassApache-2.0
MCP Server BuildershareAI-lab/learn-claude-code78k5 repos~1.2kAutomated safety check: PassMIT
MCP Integration for Pluginsanthropics/claude-plugins-official38k11 repos~3.1kAutomated safety check: PassApache-2.0
Figma use_figma Plugin API Ruleswarpdotdev/warp65k4 repos~4.4kAutomated safety check: PassAGPL-3.0
Stitch to Remotion Walkthrough Videosgoogle-labs-code/stitch-skills8.4k6 repos~3.2kAutomated safety check: NotesApache-2.0

Similar skills

  • MCP Server Builder

    anthropics/skills

    Official

    Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.

    180k GitHub starsUsed in 63 repos~2.3k tokens
    Agent WorkflowsAuto-check passed
  • MCP Server Builder

    shareAI-lab/learn-claude-code

    Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.

    78k GitHub starsUsed in 5 repos~1.2k tokens
    Agent WorkflowsAuto-check passed
  • MCP Integration for Plugins

    anthropics/claude-plugins-official

    Official

    Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.

    38k GitHub starsUsed in 11 repos~3.1k tokens
    Agent WorkflowsAuto-check passed
  • Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.

    65k GitHub starsUsed in 4 repos~4.4k tokens
    Frontend & DesignAuto-check passed
  • Stitch to Remotion Walkthrough Videos

    google-labs-code/stitch-skills

    Official

    Builds walkthrough videos from Stitch design projects using Remotion, with transitions, zoom effects and text overlays on each screen.

    8.4k GitHub starsUsed in 6 repos~3.2k tokens
    Media & CreativeAuto-check: notes
  • MCP Development

    coollabsio/coolify

    A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.

    63k GitHub starsUsed in 1 repo~949 tokens
    Frontend & DesignAuto-check passed

More from Lifecycle-Innovations-Limited/claude-ops

All 67 skills in this repo
  • Ops Dash

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "ops dashboard", "pixel HQ", or…

    542 GitHub stars~4.7k tokensUpdated today
    Auto-check: notes
  • Ops Gtm

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "go to market", "GTM plan", or…

    542 GitHub stars~3.7k tokensUpdated today
    Auto-check: notes
  • Ops Marketing

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "klaviyo", "ads spend", or…

    542 GitHub stars~3.5k tokensUpdated today
    Auto-check: notes
  • Ops Socials

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "tweet", "post to linkedin", or…

    542 GitHub stars~3.6k tokensUpdated today
    Auto-check: notes
  • Ops Yolo

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "yolo mode", "run the business today"…

    542 GitHub stars~4k tokensUpdated today
    Auto-check: notes
  • Ops Monitor

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "datadog", "APM alerts", or…

    542 GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check: notes

Questions about Ops Desktop

What does Ops Desktop do?

OPS on-demand: This skill should be used when the user asks to "control the desktop", "click on…. Ops Desktop is an agent skill from Lifecycle-Innovations-Limited/claude-ops.

When should I use Ops Desktop?

Ops Desktop fits situations like: asks to control the desktop.

How do I install Ops Desktop in Claude Code?

Run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-desktop -a claude-code`. Or copy the skill folder (claude-ops/skills/ops-desktop in Lifecycle-Innovations-Limited/claude-ops) into .claude/skills/ops-desktop in your project. Claude Code loads it when a task matches its description.

How do I install Ops Desktop in Codex?

Run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-desktop -a codex`. Or copy the skill folder (claude-ops/skills/ops-desktop in Lifecycle-Innovations-Limited/claude-ops) into .agents/skills/ops-desktop in your project. Codex loads it when a task matches its description.

Can I use Ops Desktop in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-desktop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ops-desktop, .gemini/skills/ops-desktop, .github/skills/ops-desktop and .opencode/skills/ops-desktop in your project.

What does Ops Desktop need to run?

SKILL.md names no scripts, command-line tools or credentials: Ops Desktop is instructions for the agent only. Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash, Read, AskUserQuestion, ToolSearch, mcp__desktop-act__acquire_desktop, mcp__desktop-act__release_desktop, mcp__desktop-act__list_desktops, mcp__desktop-act__list_windows, mcp__desktop-act__launch_app, mcp__desktop-act__screenshot, mcp__desktop-act__observe, mcp__desktop-act__click, mcp__desktop-act__keypress, mcp__desktop-act__type_text, mcp__desktop-act__scroll, mcp__desktop-act__act, mcp__desktop-act__act_step, mcp__desktop-act__batch, mcp__desktop-act__status.

Does Ops Desktop access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Ops Desktop safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Ops Desktop use?

Ops Desktop is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ops Desktop use?

About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Ops Desktop?

Skills that share tags, products or a category with Ops Desktop: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), MCP Integration for Plugins (anthropics/claude-plugins-official, 38k stars) and Figma use_figma Plugin API Rules (warpdotdev/warp, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ops Desktop?

Lifecycle-Innovations-Limited (a GitHub organization) maintains it in Lifecycle-Innovations-Limited/claude-ops, which has 542 GitHub stars. The repository holds 67 skills in this directory. The repository was last updated on October 9, 2026.

Source: Lifecycle-Innovations-Limited/claude-ops on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.