DesktopManager: Skill for Codex

.agents/skills/desktopmanager-operator/SKILL.md

desktopmanager-operator is a skill for Codex from EvotecIT/DesktopManager. It costs 89 tokens per session (3,863 once invoked), scanned A, original, MIT.

A procedure for operating and checking Windows desktop state through DesktopManager, using an MCP connection first and command-line tools second.

In plain words
What is it for?
Use it to inspect windows and monitors, capture screenshots, launch apps, wait for windows, inspect controls, click, and send text or keys.
Why use it?
It helps an assistant inspect and change desktop applications while confirming that each action had the intended visible effect.

Skill for Codex

Written for Codex: agents/openai.yaml present. Also seen: installed under .agents/ (shared by several agents); mentions Codex.

This is EvotecIT/DesktopManager's own configuration. It tells Codex how to work on DesktopManager itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything DesktopManager configures →

Reuse

Borrowing it

Nothing to install: this file belongs to EvotecIT/DesktopManager. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/EvotecIT/DesktopManager/v2-speedygonzales/.agents/skills/desktopmanager-operator/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/EvotecIT/DesktopManager

Made for: Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for desktopmanager-operator

README.md
[![agentmods](https://agentmods.dev/badge/skills/evotecit/desktopmanager/desktopmanager-operator/github.svg)](https://agentmods.dev/skills/evotecit/desktopmanager/desktopmanager-operator)
Your own site
<a href="https://agentmods.dev/skills/evotecit/desktopmanager/desktopmanager-operator"><img src="https://agentmods.dev/badge/skills/evotecit/desktopmanager/desktopmanager-operator/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for desktopmanager-operator

Your own site · 80×15
<a href="https://agentmods.dev/skills/evotecit/desktopmanager/desktopmanager-operator"><img src="https://agentmods.dev/badge/skills/evotecit/desktopmanager/desktopmanager-operator.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 89 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,863 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00089 $0.03863
Opus 5.5 $0.00036 $0.01545
Sonnet 5.5 $0.00018 $0.00773
Haiku 4.5 $0.00009 $0.00386

Measured 2mo ago against content hash 7254907ddf75, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

desktopmanager-operator scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.agents/skills/desktopmanager-operator/SKILL.md · 244 lines

How it starts

The opening of the file, as written. The whole thing — 244 lines — stays where its author put it; the contents beside it link to each section on GitHub.

DesktopManager Operator

Use this skill to operate the Windows desktop through DesktopManager.

Golden Path

  1. Prefer MCP first: desktopmanager mcp serve
    • Add --allow-mutations only when the session really needs desktop or saved-state changes.
    • Add --allow-process <pattern> or --deny-process <pattern> when the session should stay scoped to specific desktop apps.
    • Add --allow-foreground-input only for sacrificial or tightly controlled sessions that may need focused fallback on zero-handle UIA text or key actions.
    • Add --dry-run when you want to preview mutating MCP calls without changing the desktop.
  2. Start with inspection, not mutation.
    • Read resources first: desktop://windows/active desktop://windows/visible desktop://monitors
    • Use get_active_window when focus matters.
    • Use window_exists or active_window_matches when you need an explicit assertion first.
    • Use screenshot_desktop or screenshot_window when visual confirmation is needed.
    • Use get_window_geometry when you need exact outer-window and client-area bounds before a coordinate-based action.
    • When more than one window matches, switch to an exact handle before mutating anything.
  3. Launch and wait when the target app is not ready yet.
    • Use launch_process to start the app.
    • Prefer launch_and_wait_for_window when the next step depends on a real launched window instead of a best-effort process start.
    • If launch correlation matters, set a short launch-time window wait instead of assuming the first matching app window is the new one.
    • If you know the expected launched window, pass a title or class filter and require a real match.
    • Use wait_for_window before moving, focusing, or capturing it.
  4. Inspect controls before interacting.
    • Use list_window_controls to discover control handles, classes, text, automation ids, control types, and control bounds.
    • Use diagnose_window_controls when a modern app is not exposing the controls you expected. It will show whether Win32 or UIA discovery produced anything, whether foreground preparation helped, and what each probed UIA root returned.
  • diagnose_window_controls can also take a saved control target name, so reusable target profiles and ad-hoc selectors share the same diagnostic path.
  • diagnose_window_controls can also include a read-only action probe, which is the safest way to verify repeated UIA action caching without mutating the app.
  • The control diagnostics payload now includes elapsed times, so you can compare cold versus warm-cache behavior directly instead of inferring it only from cache flags.
    • Use UIA-oriented selectors when modern apps do not expose useful child-window controls.
    • Use control_exists or wait_for_control when the control can appear asynchronously or when you want an explicit precondition before clicking.
    • Use assert_control_value when the workflow depends on the field content itself, not merely the presence of a matching control.
    • When available, prefer value, enabled, or focusable checks over brittle text-only guesses.
    • If UIA discovery is flaky on a background window, retry with the shared foreground hint before inventing wrapper-specific workarounds.
    • If the app still stays structurally opaque, switch to the shared coordinate-based fallback: capture the window, inspect its geometry, then use click_window_point, drag_window_points, or scroll_window_point.
    • When the same visual region matters across runs, save it as a named target area and reuse it from screenshot_window with targetName or screenshot target.
    • Prefer ratio-based client-area targeting when the same workflow must survive different window sizes.
    • If you will reuse the same fallback point more than once, save it as a named target instead of repeating raw ratios or pixels.
    • Use type_window_text for whole-window entry.
    • Use send_window_keys for whole-window Enter, Escape, or accelerator follow-up actions when the window is reliable but a modern control is not.
    • Use click_control, set_control_text, or send_control_keys for control-level work.
    • For classic handle-backed controls, prefer set_control_text or send_control_keys over foreground-dependent hacks because they now route directly to the control.
    • For zero-handle UIA controls in modern apps, foreground-based text or key fallback exists in the shared library too, but treat it as an explicit opt-in for sacrificial or tightly controlled windows.
    • When you do opt into foreground text fallback, the shared library revalidates the exact focused target and emits Unicode input directly without changing the clipboard.
  1. Prefer named state over one-off moves.
    • Use list_named_layouts before manually moving windows.
    • Use apply_named_layout or restore_saved_snapshot when the desired setup already exists.
    • Use assert_window_layout when the next step depends on the saved layout actually being satisfied, not just available.
  2. Make the smallest safe change.
    • Prefer focus_window, snap_window, or minimize_windows.
    • Save the current state before larger changes: save_current_layout save_current_snapshot
  3. Explain what changed after mutating actions.
  4. Use CLI only as fallback or verification.
  5. When a mutation matters, ask for evidence.
    • Mutating MCP tools now accept captureBefore, captureAfter, and artifactDirectory.
    • Their structured results include success, elapsedMilliseconds, safetyMode, optional target name/kind, best-effort before/after screenshots, and artifact warnings.
    • Prefer captureAfter by default and add captureBefore when you need a stronger audit trail.
    • Remember that the MCP server is now read-only by default, so a failed mutating tool call may be a policy block rather than a selector failure.

Read the full file on GitHub · 244 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2mo ago First seen · 244 lines · 89 tokens per session scan A 7254907ddf75

Subscribe to this mod's changes

desktopmanager-operator is a skill published in the GitHub repository EvotecIT/DesktopManager (107 stars, last pushed yesterday), licensed MIT. It adds 89 tokens to every session and 3,863 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

desktopmanager-operator compared with skills from other repositories

desktopmanager-operator next to 6 skills from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
desktopmanager-operatorEvotecIT/DesktopManagerSkill107yesterdayMITA89Codex
dotnet-command-exec-auditjinyimeng01/net-code-audit-skill-masterSkill76mo agoMulanPSL-2.0A79Codex
agui-dotnet-streaming-chatag-ui-protocol/ag-uiSkill17kyesterdayMITA223Claude Code
azure-mgmt-apicenter-dotnetmicrosoft/skillsSkill3.2kyesterdayMITA97Claude Code
migrate-xunit-to-xunit-v3dotnet/skillsSkill5.8kyesterdayMITA149Claude Code
template-instantiationdotnet/skillsSkill5.8kyesterdayMITA168Claude Code
template-validationdotnet/skillsSkill5.8kyesterdayMITA131Claude Code