Isolated Linux Agent Workspace
agent-sh/agent-workspace-linux
Drives a hidden, agent-owned Linux desktop and browser over MCP for GUI testing and web automation without touching the user's real desktop.
Guidance for driving Windows desktop automation from the wincli command-line tool - the token-efficient entry point that mirrors the Windows MCP server.
$ npx skills add sbroenne/mcp-windows --skill windows-cli -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sbroenne/mcp-windows windows-cli --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/sbroenne/mcp-windows.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugin/skills/windows-cli .claude/skills/windows-cli && rm -rf skills-srcUse ~/.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/
Install the "windows-cli" agent skill from https://github.com/sbroenne/mcp-windows/tree/main/plugin/skills/windows-cli into .claude/skills/windows-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "windows-cli", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/sbroenne/mcp-windows/tree/main/plugin/skills/windows-cliType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add sbroenne/mcp-windows --skill windows-cli -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sbroenne/mcp-windows windows-cli --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sbroenne/mcp-windows.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugin/skills/windows-cli .agents/skills/windows-cli && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "windows-cli" agent skill from https://github.com/sbroenne/mcp-windows/tree/main/plugin/skills/windows-cli into .agents/skills/windows-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "windows-cli", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add sbroenne/mcp-windows --skill windows-cli -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sbroenne/mcp-windows windows-cli --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sbroenne/mcp-windows.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugin/skills/windows-cli .cursor/skills/windows-cli && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "windows-cli" agent skill from https://github.com/sbroenne/mcp-windows/tree/main/plugin/skills/windows-cli into .cursor/skills/windows-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "windows-cli", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/sbroenne/mcp-windows.git --path plugin/skills/windows-cli--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add sbroenne/mcp-windows --skill windows-cli -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sbroenne/mcp-windows windows-cli --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sbroenne/mcp-windows.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugin/skills/windows-cli .gemini/skills/windows-cli && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "windows-cli" agent skill from https://github.com/sbroenne/mcp-windows/tree/main/plugin/skills/windows-cli into .gemini/skills/windows-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "windows-cli", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install sbroenne/mcp-windows windows-cliInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add sbroenne/mcp-windows --skill windows-cli -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sbroenne/mcp-windows.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugin/skills/windows-cli .github/skills/windows-cli && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "windows-cli" agent skill from https://github.com/sbroenne/mcp-windows/tree/main/plugin/skills/windows-cli into .github/skills/windows-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "windows-cli", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add sbroenne/mcp-windows --skill windows-cli -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install sbroenne/mcp-windows windows-cli --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sbroenne/mcp-windows.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugin/skills/windows-cli .opencode/skills/windows-cli && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "windows-cli" agent skill from https://github.com/sbroenne/mcp-windows/tree/main/plugin/skills/windows-cli into .opencode/skills/windows-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "windows-cli", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
windows-cliGuidance for driving Windows desktop automation from the wincli command-line tool - the token-efficient entry point that mirrors the Windows MCP server.
Windows CLI is an agent skill from sbroenne/mcp-windows. Guidance for driving Windows desktop automation from the wincli command-line tool - the token-efficient entry point that mirrors the Windows MCP server. Use when a coding agent has shell access and wants one compact command surface instead of many MCP tool schemas.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Productivity & Automation, covering MCP servers and Desktop control. It works with Model Context Protocol, .NET and Windows. The repository describes itself as: Let AI agents control Windows applications. Click buttons, type text, toggle settings — all by name, not coordinates. Uses the Windows UI Automation API to find UI elements… The licence is MIT.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit a76b3ee. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Windows CLI loads about 1.8k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 898 words of instructions outside code blocks.
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.
The automated check found no risky patterns in SKILL.md.
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.
The full file from sbroenne/mcp-windows at commit a76b3ee, republished under its MIT licence (© sbroenne). 898 words, ~1,768 tokens.
.claude/skills/windows-cli/SKILL.md (or your agent's skills folder).wincli is the command-line twin of the Windows MCP server. Every command calls the exact same
underlying tool through a persistent user-owned CLI daemon. When you already have
a shell, discover only the commands you need instead of loading every MCP tool schema.
The context saving depends on the host's tool-loading behavior.
IDs from CLI discovery can be reused across commands against that daemon.
MCP instances have separate owners; never transfer their IDs to the CLI.
wincli --help - the command map and a common workflow.wincli tools - every command with its options.wincli tools --json - machine-readable tool manifest (names, descriptions, JSON input schemas);
the same surface the MCP server exposes via tools/list, not a CLI flag schema. Use tools
for kebab-case CLI spellings.wincli guidance - CLI lifetime limitations followed by the shared semantic-automation guide.wincli window find --title <part> or launch with wincli app --path <exe>.
Inspect launchStatus and window/windows: the handle may be missing or ambiguous.
Inspect candidates or rediscover with window find; do not continue with handle-based commands
until the intended target is identified. possibleHandoff does not confirm delivery or loaded
content; verify the intended page/document before acting.wincli ui snapshot --window <handle> --mode auto to see controls and establish a baseline for repeated observations.wincli ui find|click|type|select|read --window <handle> ... for normal controls.wincli ui read-table --window <handle> --element-id <grid-id> to pull an observed grid/table into structured rows + headers.
For a web page, add --format article to wincli ui read to get clean main-content text (nav/breadcrumb chrome and inline link URLs stripped, headings/lists as markdown).wincli file-save --window <handle> --path <file> for supported Save / Save As dialogs.
Use wincli file-open --window <handle> --path <file> for Open flows.
Inspect remaining dialogs after failure or confirmation_required. Choose any confirmation,
cancellation, or correction explicitly; do not automatically repeat the helper.wincli clipboard get|set|clear for fast bulk text IO; keep reusable ui batch steps
in project JSON files and run them with --steps-file.wincli screenshot, wincli mouse, or wincli keyboard only for custom-drawn UI.ui find using --name, --control-type, or --automation-id.
Pass the returned --element-id to click/type/select/read/read-table; action selectors are rejected.
Omit the ID only for an intentional whole-window ui read --window <h>.--with-snapshot to ui click/ui type/ui select to get the updated tree back in the same
call (perceive + act fused - avoids a second round trip).ui batch --window <h> --steps '<json>' to run an ordered sequence
(e.g. [{"action":"find","automationId":"UsernameInput","requireUnique":true},{"action":"type","elementId":"$prev","text":"me"}])
in a single invocation.ui wait --window <h> --name <x> (or --mode disappear) instead of sleeping, so automation
checks an observable condition within a bounded timeout after dialogs, navigation, or tab switches.ui wait --mode state --element-id <id> --desired-state enabled, or a batch discovery then
{"action":"wait","mode":"state","elementId":"$prev","desiredState":"enabled"},
$prev must refer to one unambiguous immediately preceding result.--parent-element-id and --near-element from the same owner.$prev, never persisted literal IDs.ui snapshot --mode auto returns a full baseline without --since <snapshotToken>.
Supply that token for checked diffs; interleaved callers may safely receive a full snapshot.--with-snapshot --snapshot-mode auto --since <snapshotToken> for a
post-action comparison. A full fallback is normal when a diff is unsafe or too large.--args and --arguments are aliases. For child arguments beginning with --, use equals:
wincli app --path C:\Tools\local-app.exe --args="--new-window target".--args "--new-window target" is deliberately rejected, even when quoted as one value.
Missing values are also usage errors (exit 2); no application launches. The equals form preserves
the complete argument string. Ordinary values work as --args "local document.txt".wincli ui batch --window <h> --steps-file workflow.json.wincli clipboard set --text "<value>" then paste with wincli keyboard press --key v --modifiers ctrl.wincli keyboard press --key c --modifiers ctrl) then wincli clipboard get to read it.0 success, 1 tool error (inspect the JSON error field), 2 usage error (bad arguments).--include-diagnostics (alias
--diagnostics) on ui operations, file-open, or file-save for available
diagnostic detail. Their command aliases have the same support; other command groups reject
these flags. Diagnostics are not a global option.mouse/screenshot clicks when the app exposes accessible controls.keyboard press --key s --modifiers ctrl when a Save As dialog may appear;
use file-save.© sbroenne, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugin/skills/windows-cli of sbroenne/mcp-windows.
Open the folder on GitHubat commit a76b3ee
Windows CLI 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Windows CLI this skillsbroenne/mcp-windows | 105 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Isolated Linux Agent Workspaceagent-sh/agent-workspace-linux | 185 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Windows QA EngineerCodeAlive-AI/ai-driven-development | 155 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Amazon Workspaces Agent Accessaws/agent-toolkit-for-aws | 2.8k | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Linux Desktop Controlagent-sh/computer-use-linux | 661 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Browser MCP Agentantibrow/anti-detect-browser-skills | 914 | 1 repos | ~4.2k | Automated safety check: Warn | MIT |
agent-sh/agent-workspace-linux
Drives a hidden, agent-owned Linux desktop and browser over MCP for GUI testing and web automation without touching the user's real desktop.
CodeAlive-AI/ai-driven-development
A skill your agent uses when testing Windows 11 desktop apps (WinForms/WPF/UWP) via UFO UIA/Win32 automation MCP.
aws/agent-toolkit-for-aws
Connects AI agents to remote Windows desktop applications on Amazon WorkSpaces Applications (AppStream 2.0) through the managed Agent Access MCP server, and guides reliable desktop automation.
agent-sh/computer-use-linux
Lets an agent observe and operate a local Linux desktop through the computer-use-linux MCP server or Pi tools: accessibility trees, screenshots, windows and input.
antibrow/anti-detect-browser-skills
Give an AI agent its own real browser over MCP tool calls - launch, navigate, click, fill, screenshot, extract text, run JS - with a kernel-level real-device fingerprint and a persistent profile, so…
altic-dev/altic-mcp
macOS automation skill for AppleScript actions and Chrome browser control via MCP CDP tools.
sbroenne/mcp-windows
Review pull requests in mcp-windows for concrete bugs in MCP and CLI contracts, Windows UI automation, element identity, snapshots, bounded searches, and service lifetime.
sbroenne/mcp-windows
Guidance for reliable, token-efficient Windows automation through MCP.
Works with
Categories
Guidance for driving Windows desktop automation from the wincli command-line tool - the token-efficient entry point that mirrors the Windows MCP server. Windows CLI is an agent skill from sbroenne/mcp-windows. Guidance for driving Windows desktop automation from the wincli command-line tool - the token-efficient entry point that mirrors the Windows MCP server.
Windows CLI fits situations like: A coding agent has shell access and wants one compact command surface instead of many MCP tool schemas; tasks that involve MCP servers; tasks that involve Desktop control.
Run `npx skills add sbroenne/mcp-windows --skill windows-cli -a claude-code`. Or copy the skill folder (plugin/skills/windows-cli in sbroenne/mcp-windows) into .claude/skills/windows-cli in your project. Claude Code loads it when a task matches its description.
Run `npx skills add sbroenne/mcp-windows --skill windows-cli -a codex`. Or copy the skill folder (plugin/skills/windows-cli in sbroenne/mcp-windows) into .agents/skills/windows-cli in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sbroenne/mcp-windows --skill windows-cli -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/windows-cli, .gemini/skills/windows-cli, .github/skills/windows-cli and .opencode/skills/windows-cli in your project.
SKILL.md names no scripts, command-line tools or credentials: Windows CLI is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Windows CLI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Windows CLI: Isolated Linux Agent Workspace (agent-sh/agent-workspace-linux, 185 stars), Windows QA Engineer (CodeAlive-AI/ai-driven-development, 155 stars), Amazon Workspaces Agent Access (aws/agent-toolkit-for-aws, 2.8k stars) and Linux Desktop Control (agent-sh/computer-use-linux, 661 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
sbroenne (a GitHub user) maintains it in sbroenne/mcp-windows, which has 105 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 6, 2026.
Source: sbroenne/mcp-windows on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.