Stealth Commander MCP
Provides a PyCharm control bridge for running Python projects in PyCharm on hidden desktops and inspecting console and GUI results.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Stealth Commander MCPlaunch Notepad on a hidden desktop and show me the live view"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Stealth Commander
Canonical source: https://github.com/maplesyzzurp/Stealth-Commander-MCP. This repository owns the complete build and all future releases.
Run supported Windows applications on hidden desktops and watch their captured windows in a local Chrome dashboard. The package contains the desktop launchers, PyCharm control bridge, optional REA browser adapter, capture workers, streaming server, dashboard UI, resource metrics, examples, and tests. No AI provider or model API key is required.
This repository is the authoritative source for the skill. An agent starts with AGENTS.md, then SKILL.md. Normal use leaves source and instructions unchanged. Improvements belong to an explicit maintenance task with verification and a versioned commit.
PC installer
The npm package and command are named stealth-commander. 64-bit Python 3.11 or newer must already be installed.
stealth-commander setup installs the skill, installs its Python dependencies, updates supported local AI client configurations, and starts local services. It does not create a new remote tunnel.
To link an account and enable remote access, run stealth-commander setup --enable-remote in an interactive terminal. An unpaired PC prompts for the account key without echoing it. This starts a token-protected HTTPS tunnel. Anyone with a valid connection can use the exposed tools, including command execution with the Windows account's file and network permissions. Keep connection URLs and account keys private. The tunnel command and the portal's "Enable Temp Tunnel" control also explicitly enable remote access.
The local setup command does not stop an existing tunnel. Use "Lock Local-Only (Stop Tunnel)" in the portal to stop a tunnel. Setup does not change Chrome security policies.
PC pairing stores only the account email, this PC's device ID, and a device credential. The account key, login session, and device list stay out of the saved PC configuration. The device credential can update or revoke this PC's pairing; it cannot list or manage the account's other PCs. whoami verifies this pairing and prints no credentials. logout revokes this PC's device credential and clears its local pairing file.
Run stealth-commander login to enter the account key through the hidden prompt. Existing key and email/password flags remain supported for compatibility. The prompt keeps the key out of the command line and shell history. Noninteractive calls never prompt; an unpaired call returns a pairing-required result.
When an older pairing file contains account credentials or a cached account profile, the installer removes that file before login or remote startup. Pair the PC again. If the old file cannot be cleared, pairing and remote startup stop. No browser sign-in data is read or reused.
An existing local hub must report the installed server version before setup can reuse it. If its version is old or cannot be verified, setup returns restart_required before pairing or enabling remote access. Stop that hub and retry setup. The installer does not terminate existing processes.
Related MCP server: Computer Use MCP
Start here
Use Windows x64, PowerShell, and 64-bit Python 3.11 or newer. PyCharm workflows also need an installed PyCharm distribution with Java and javac in its bundled runtime. The optional REA adapter needs Node.js ^22.19, ^24.11, or >=26 and its pinned package; observation does not require REA.
From the repository root:
$skillRoot = Join-Path (Get-Location).Path 'skills/stealth-ghost-delegation'
$harness = Join-Path $skillRoot 'scripts/harness.ps1'
& $harness doctorRead the JSON response. If harness packages are missing, run & $harness setup, then repeat doctor. PyCharm use requires both ok and result.ready to be true. Setup installs pywin32, Pillow, comtypes, and psutil in an ignored local dependency cache. PyCharm, Node.js, and application-specific dependencies are installed separately.
Choose the guide for the task. Commands in the guides use the skill directory as their base unless stated otherwise.
Task | Guide |
Run a Python project in PyCharm; inspect console and GUI results | |
Create a hidden desktop for a native app such as Notepad | |
Watch one or several desktops; inspect CPU, RAM, GPU, and capture FPS | |
Install the optional REA dependency | |
Run browser scenarios on an owned hidden Chrome instance | |
Check an installation or a source change |
Dashboard
One dark dashboard groups windows by hidden desktop. It includes Desktops and Windows views, numbered panels, inline rename, fullscreen, resizing, smooth drag ordering, and a refresh button for each panel. CPU, RAM, GPU, and capture FPS appear in each header. The UI and its assets are bundled with the Python server; there is no separate frontend build.
Automatic discovery can add eligible hidden harness desktops as they appear. The observer discovers visible top-level windows across processes. View controls affect the browser layout; they do not send mouse, keyboard, or clipboard input to the applications.
Capture uses Direct3D 11 shared-surface readback (DwmGetDxSharedSurface) with Windows PrintWindow fallback. The continuous MJPEG stream reconstructs captured windows in their positions and stacking order, with a target ceiling of 60 frames per second and adaptive idle cadence scaling. It is not a full-screen monitor mirror or remote-control interface. Protected DRM surfaces, minimized windows, and brief popups may be unavailable. Capture FPS and application GPU usage measure different things.
Local servers bind to loopback and use random access tokens. Remote access requires an explicit tunnel command or setup --enable-remote. Keep returned URLs private.
Hand it to another agent
Give the agent this repository or its ZIP, the task, and the required input files. It needs local Windows command access; a chat-only model cannot execute the skill. The repository and bundled references supply the instructions without requiring the development conversation, and the JSON CLI is completely model-agnostic.
For a host that discovers installed skills, copy the complete skills/stealth-ghost-delegation folder into that host's skill directory while keeping its internal layout:
Antigravity (AGY):
~/.gemini/config/skills/stealth-ghost-delegation,~/.gemini/skills/stealth-ghost-delegation, or workspace.agents/skills/stealth-ghost-delegation(invoke with/stealth-ghost-delegationor natural language).ChatGPT / Codex:
~/.codex/skills/stealth-ghost-delegationor~/.agents/skills/stealth-ghost-delegation(select/stealth-ghost-delegationor mention$stealth-ghost-delegation;agents/openai.yamlsupplies host discovery metadata).Factory Droid:
~/.factory/skills/stealth-ghost-delegationor~/.agents/skills/stealth-ghost-delegation(invokestealth-ghost-delegationvia the Skill tool or/stealth-ghost-delegation).
Direct CLI use requires no skill installation.
Run from an installed copy if the source checkout must remain unchanged, including generated caches. Keep project copies, browser profiles, session state, logs, and captures in a separate work directory. Never copy credentials or a running personal Chrome profile into the package.
The hidden browser adapter creates a separate profile. It does not inherit personal sign-in, extensions, bookmarks, or history. Viewing the dashboard in personal Chrome does not change that limitation. Use Chrome by default and disclose the separate profile before an authenticated task.
What belongs here
AGENTS.mdand this README define repository use and entry points.skills/stealth-ghost-delegation/SKILL.mdandreferences/contain the portable instructions.scripts/contains the implementation, dependency declaration, neutral tests, and Java bridge sources.examples/and the script examples provide inputs for documented checks.The repository's
.gitignore(not part of the npm payload) keeps ordinary generated caches, runtime data, and credential files out of commits. It does not replace reviewing files before sharing.
Runtime files and development investigation notes are excluded. Tests and examples stay because they let the next maintainer verify behavior.
Boundaries
A hidden desktop separates GUI input, but its processes retain the Windows account's file and network access. It is not a security sandbox. The harness uses targeted application control and must not fall back to the physical mouse, global keystrokes, or desktop switching.
Launching another application does not create a control adapter for it. PyCharm internals, accessibility support, browser behavior, and capture compatibility vary by version. Run the relevant checks on the destination machine. No package can guarantee correct assignment solutions or universal application support.
Stop only sessions owned by the task. Preserve another session's apps and unsaved work. Inspect the returned shutdown result; a requested stop is not proof that every process exited.
Components and coverage
The capability map distinguishes direct MCP tools, CLI helpers, and language support. The local plugin includes the PC runtime and operational skill. The account plugin connects to the HTTPS gateway; it does not install a PC runtime.
Gateway, authorization, billing-test and rate-limit source live under services/. Their example configuration files contain placeholders; deployment requires the existing private service bindings. Source pushes do not enable public access or production billing. See release checks.
Refresh the local Codex plugin
Keep one reviewed source checkout. Installed skill copies and plugin caches are generated from that source; never edit a version cache as the marketplace source.
After verifying the release and manifest, run the installer-only command to update the canonical skill and existing client configurations without starting services:
node bin/stealth-commander.js install
pwsh -NoProfile -File tools/install-codex-plugin.ps1 -WhatIf
pwsh -NoProfile -File tools/install-codex-plugin.ps1The helper updates only the existing Stealth Commander marketplace entry, preserves a backup and unrelated plugins, runs Codex's supported install command, and verifies the installed version and approved ninja image. It requires the checkout to be contained within the existing marketplace root.
Already-running MCP processes may retain their old tool declarations. Verify a fresh connection's server version and tools/list; a file update alone does not prove an active process reloaded. Existing application sessions and account pairing are not a reason to kill unrelated processes.
Ongoing development
Use this repository as the source of truth. Ship small updates to the same plugin identity; there is no need to recreate the plugin for each feature. Keep application-specific work separate from the core hidden-desktop lifecycle.
For each release, raise the local version in package.json, both local plugin manifests, and SERVER_INFO in the MCP script. The account connector under plugins/remote has its own version and keeps the same existing plugin ID.
python -B tools/update-manifest.py
npm run verify:package
npm test
git add .
git commit -m "Describe the desktop delegation update"
git push origin HEAD:mainGitHub Actions checks each push and pull request. Refresh local installations using the commands above; update the existing account plugin only when its own files change. A source push does not automatically deploy hosted services or publish a public listing.
This server cannot be deployed
Maintenance
Related MCP Connectors
Securely control computers you explicitly pair through files, terminals, processes, screenshots, desktop UI/input, clipboard, browser automation, diagnostics, and document tools.
Eyes and hands on real Windows PCs — observe, click, type via Glasswarp API.
Run multi-step tasks in a real Chrome browser: persistent environments, live view, human takeover.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Related MCP Servers
- FlicenseBqualityCmaintenanceEnables local Windows UI automation and screen capture, targeting windows that are difficult to automate such as games and legacy apps, with tools for window management, mouse and keyboard input, and desktop capture.8-
- FlicenseNot gradedqualityCmaintenanceEnables MCP clients to observe and control Windows desktop applications by reading UIA element trees and capturing screenshots, then acting through UIA patterns or synthesized mouse and keyboard input. It runs standalone on an interactive Windows session, without requiring the original host application.1-
- AlicenseNot gradedqualityCmaintenanceEnables an agent to discover, observe, and operate visible Windows applications using UI Automation, screenshots, and foreground-validated input control through a local stdio connection.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to drive native Windows apps and headed browsers inside a hidden child desktop session with its own screen, pointer and keyboard focus. Provides tools for screenshots, mouse/keyboard input, accessibility inspection, UI waits, display changes, Android emulators, application launches and cancellable command jobs, so the user's own desktop stays free.3MIT