DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

win-pilot

Win Pilot

Agent-neutral Windows and Chromium computer-use runtime for Codex, Claude Code, Qoder, Pi, and DeepSeek Harness.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:JeremyWangCY/win-pilot#e2d1201932afbeb23199efa4b2be5b861cec57c1
READMECompatibilityVersions
Win-Pilot — Windows computer use for DeepSeek Harness

Compatibility and provenance

Win Pilot is published as win-pilot and currently resolves to version 0.6.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
11/4/2026

Versions

0.6.1stable
11/4/2026
0.6.0stable
10/30/2026
0.5.0stable
10/29/2026
Show 16 more versionsCollapse versions
0.4.0stable
10/19/2026
0.3.1stable
10/19/2026
0.3.0stable
10/19/2026
0.2.0stable
10/17/2026
0.1.11stable
10/14/2026
0.1.10stable
10/14/2026
0.1.9stable
10/13/2026
0.1.8stable
10/13/2026
0.1.7stable
10/13/2026
0.1.6stable
10/13/2026
0.1.5stable
10/13/2026
0.1.4stable
9/24/2026
0.1.3stable
9/17/2026
0.1.2stable
9/17/2026
0.1.1stable
9/16/2026

Related plugins

Loading related plugins…

Latest
0.6.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 2
Weekly downloads
990
Last push
11/4/2026
View source ↗Project homepage ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
0.1.0stable
9/16/2026

Related plugins

More verified plugins in integrations-communication.

Acp App@deepseek-ai/dsh-acp-appThe dsh ACP profile bundle: automation-only JSON-RPC stdio and process lifecycle over dsh-baseRemote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rRemote Bridge@linxin666/dsh-remote-bridgeDSH remote bridge: the host half serves protocol v1 over one exact /ios/v1 WebSocket route — session roster, history baseline, prompting, live turn increments with tool activity, interrupt, and in-process agent approval — to a device paired by a one-shot Im@xmanrui/dsh-im把微信、飞书、企微、钉钉、QQ、Telegram、WhatsApp、Slack、Discord、Matrix接入DSH。 Connect Telegram, WhatsApp, Slack, Discord, Matrix, WeChat, Feishu, WeCom, DingTalk, and QQ to DSH.

README

Win-Pilot — Windows computer use for DeepSeek Harness

win-pilot

English | 中文

Win-Pilot provides Windows computer use with DeepSeek Harness as its primary integration. Its computer tool operates in the current desktop or an optional separate Windows task session, with a compact visible window for pause and manual takeover. Plugin, MCP, CLI and native integrations share the same runtime.

Features

FeatureConcrete behavior
Agent Plugin package.codex-plugin/plugin.json bundles the MCP server and operating skill
Native Windows controlUI Automation, Win32 input/window management, and window-scoped screenshots
Background-first actionsSupported capture and input paths avoid unnecessary focus stealing
Isolated browser controlLaunches Edge sessions and controls them through CDP-bound targets and tokens
Recoverable protocolStable ok, outcome, error_code, post-action observations, and unknown-outcome handling
Universal fallbacksLocal stdio MCP for tool-aware agents; JSON CLI plus skill for shell-capable agents
Schema portabilityTool schema is validated for OpenAI- and Gemini-family consumers
DSH provider lifecycleRequires DSH 0.2.0-rc.2+ for Config forms; claims the exclusive computerUse provider slot
Optional task desktopWindows child session with a compact 432×300 frameless window and automatic manual takeover

Requirements

  • Windows 10/11 x64
  • Node.js 22.12 or newer
  • Windows PowerShell 5.1
  • Optional .NET 8 runtime for WGC capture
  • .NET 8 Windows Desktop Runtime for the optional task desktop
  • An Agent Plugin host, stdio MCP client, or shell-capable agent

Quick Start

Install with your Agent (recommended)

Send this single instruction to an agent on the Windows machine:

Install and verify Win-Pilot by following https://raw.githubusercontent.com/JeremyWangCY/win-pilot/main/AGENT_INSTALL.md

The agent will prefer the complete plugin, then fall back to MCP or CLI only when its host lacks plugin support.

Manual installation

Plugin-capable hosts can install JeremyWangCY/win-pilot. The package contains both .mcp.json and skills/win-pilot.

For other hosts:

npm install -g win-pilot@latest
win-pilot doctor --probe

Register this local MCP server through the host's normal plugin/tool settings:

{
  "mcpServers": {
    "win-pilot": { "command": "win-pilot", "args": ["mcp"] }
  }
}

Convenience installers are provided for known hosts, while generic modes remain available for every other agent:

win-pilot install --agent codex
win-pilot install --agent claude
win-pilot install --agent qoder
win-pilot install --agent pi
win-pilot install --agent dsh
win-pilot install --agent mcp
win-pilot install --agent cli

Verify with:

win-pilot --version
win-pilot status --json
win-pilot doctor --probe --json

Expected for this release: version 0.6.1, platform win32, and every required doctor check marked ok. Doctor checks installed prerequisites; a successful connection is required to verify a task session.

Settings

In DeepSeek Harness 0.2.0-rc.2 or later, open Settings → Win-Pilot or the plugin detail page. The host projects the plugin's Config. Display preferences apply immediately. Changing the desktop environment applies to the next computer operation, including an existing chat.

PreferenceDefaultEffect
overlaytrueShow the operation cursor
statusPilltrueShow the running status pill
browserHeadlessDefaultfalseRun browsers without a visible window
ignoreUserInputfalseKeep acting while you use the mouse or keyboard instead of stopping to re-observe
desktopEnvironmentcurrentWhere computer actions run: this desktop or the separate task window
remoteControlPolicyfallbackWhen remote control is attached: run on the current desktop instead, or stop and report

desktopEnvironment defaults to current; task selects the separate task window. Save the setting to switch on the next computer operation. Win-Pilot cancels and cleans up the old control session before changing desktops, releases old browser claims, and requires a fresh window list or desktop screenshot before input. Old targets cannot carry over; failed cleanup blocks the switch. With the option off, model schemas, runtime skills and diagnostics do not advertise the task-desktop option. With it on, native actions, observations, clipboard and recovery stay in that task desktop; failure never redirects work to the main desktop. Browser actions require a browser launched by the same task.

The light, frameless window defaults to 432×300. A coloured dot shows its state, and the toolbar contains expand/restore, pin and close. In the expanded view, click, drag or type to take over: AI input stops before your first gesture is delivered. After 10 seconds without manual input, control returns to the AI; a held button or key prevents that return. The compact view is read-only. Right-click the toolbar for local sign-in settings. Complete Windows feature setup and local sign-in once; optionally remember credentials using the current Windows user's DPAPI and Credential Manager. Passwords stay in the local dialog. This mode requires .NET 8 Windows Desktop Runtime and working Windows child-session support. A Windows user change, credential change or system policy may require setup again; it is not a virtual machine.

The task desktop is never shown to a remote viewer. While remote control is attached it does not open, and if a viewer attaches while it is open, actions move to the current desktop; remoteControlPolicy: refuse stops instead. UU (NetEase GameViewer) is judged by its traffic, so an idle UU does not block it, and UU's tray client is closed inside the task desktop. Closing the task desktop restores any main-desktop display scale a remote-control product changes during logoff.

The settings card is one compact panel: three switches and two icon segmented controls, with a per-field reset for overridden values. Its footer shows the running version on the left and unsaved changes with discard and save on the right; Ctrl+S saves and Esc discards. When a new managed release is installed, use Safely reload to wait for active operations, release control and load that release. An in-place update or an older running plugin may require restarting DeepSeek Harness. See task desktop for behavior and verification limits.

Use win-pilot desktop --preview to view the native window without creating a session or running computer actions. win-pilot desktop is the normal connection entry and respects the connection hold. Source builds use npm run build:desktop; checks without Windows sessions use npm run test:desktop.

Numeric limits and input policy use internal defaults; old settings cannot change them. Required Windows/Meta system keys stay enabled internally. Background input, lock checks, user-interruption cancellation, focus yielding and window text reads follow this project's own desktop control contract. CLI/MCP installs without a harness use the built-in defaults.

Updating

Finish active UI tasks, update the runtime, and restart or reload the host's plugin/MCP process:

npm install -g win-pilot@latest
win-pilot doctor --probe

DSH profiles must be restarted separately. Re-run win-pilot install when you want its managed skill copy refreshed; user-maintained custom skills are not updated in the background.

Sandboxed agents

When a sandbox reaps children after every command, configure win-pilot mcp in the host's persistent plugin or MCP supervisor. Do not detach a process from an ephemeral command. Shell-only agents can use one-shot win-pilot request calls.

Usage

Version 0.6.1 turns the status pill into a step log: the newest five actions are listed with a running, done or failed mark and their duration, older steps fade instead of vanishing, and the card stays up for 20 seconds between actions so it no longer blinks out while the model is thinking. Typed text and clipboard contents are never shown. When several sessions overlap, the controls follow the one that is still acting. A new ignoreUserInput setting (off by default) lets Win-Pilot keep going while you use the mouse or keyboard.

Version 0.6.0 rebuilds the settings card as one compact panel and ships a new product icon. The helper starts faster: the WGC bridge is no longer re-copied when unchanged, and large screenshot replies are framed in linear time. On the task desktop, foreground coordinate clicks now validate expected_name, a screenshot clears observation_required, an idle UU (NetEase GameViewer) no longer blocks it while an attached UU viewer still does, and closing it restores any main-desktop display scale a remote-control product changed during logoff.

Version 0.5.0 makes the task desktop use the same pixel size and scale factor as the primary display, and refuses to open it while a remote-control product is attached: by default the action runs on the current desktop instead, and remoteControlPolicy: refuse stops instead. It also merges the contributor fix that returns thenables from the skill provider and keeps control-action results lossless JSON, and stops copying bundles with fs.cpSync, which terminates the host on a non-ASCII install path such as C:\Users\<中文名>\.dsh.

Version 0.4.0 connects DSH native tools, CLI children and MCP children to the host’s current settings. Independent hosts keep their own defaults. The top status pill aggregates concurrent owners and offers pause, resume and end controls; task setup and sign-in waits remain visible. The settings card reports installed and running versions and offers safe reload when supported.

win-pilot session accepts JSON Lines on stdin and emits one response per request, preserving request id values. Keep stdin open between observation and input so snapshots and browser claims remain in the same runtime. Send {"id":"done","action":"session_close"} or close stdin to cancel outstanding work and release control. One-shot request commands still have separate lifetimes.

Version 0.3.1 applies desktop setting changes within existing chats and keeps the running pill visible for CLI observations and long actions. Switching requires fresh discovery before input.

Version 0.3.0 adds session-scoped stop / resume, queued and active request cancellation, and atomic per-user control ownership. Observation remains available after stopping. Desktop accessibility uses stable sparse indexes and model-visible full / delta / no_change trees; hidden observations do not advance that baseline. Rich paste accepts format: text | html | md and restores supported original clipboard formats unless the user changes the clipboard meanwhile. Markdown conversion covers a limited subset.

Browser additions are browser_frames, browser_filechooser, browser_claim_tab, and browser_finalize. Same-origin child frames use frame_id and semantic references; cross-origin/OOPIF frames are explicitly rejected. Claims bind to the current control session: keep claim_id for mutations, then finalize to release without activating the tab. Arm a chooser before opening it, read its event, and pass the single-use filechooser_id plus explicit absolute paths to browser_upload within 60 seconds. The provider uses explicit loopback CDP and does not include a user-browser extension.

Native cancellation checks run between OS calls. A blocked UIA/system call may require bounded process termination and return an unknown outcome; inspect before further input. Clipboard restoration has no OS-level compare-and-swap guarantee.

MCP and plugin hosts expose computer. Shell-only hosts use the identical JSON interface:

win-pilot request --payload '{"action":"list_apps"}' --json
win-pilot request --payload '{"action":"get_window_state","hwnd":12345,"include_text":true}' --json
win-pilot request --payload '{"action":"click","hwnd":12345,"element_index":7,"snapshot_id":"<snapshot>"}' --json
FamilyActionsMain inputs
Discoverylist_apps, list_windows, get_app_identityapp, hwnd
Observationget_window_state, get_window, screenshotinclude_text, include_screenshot
Pointerclick, double_click, mouse_move, drag, scrollx, y, element_index, snapshot_id
Keyboardtype_text, press_key, hold_key, set_valuetext, key, keys, duration_ms
Windowslaunch_app, activate_window, minimize_window, close_windowname, hwnd, foreground
Browserbrowser_state, browser_observe, browser_open, browser_click, browser_click_text, browser_click_point, browser_type, browser_replace, browser_key, browser_uploadbrowser, tab_id, browser_element, screenshot_id, url
Sequencingwait, batched actionsseconds, when, expect

The live MCP tools/list result is authoritative for the complete parameter schema and defaults.

How it works

Windows Agent
  ├─ Agent Plugin ─┐
  ├─ stdio MCP ────┼─> Win-Pilot runtime ─> PowerShell helper ─> UIA / Win32 / WGC
  ├─ CLI + Skill ──┤          └────────────> CDP provider ─────> isolated Edge
  └─ Native Adapter┘

The runtime is the deep module: it owns action semantics and results. Adapters only register and render its interface, so fixes remain local and every host receives the same behavior.

Security and privacy

Win-Pilot runs with the Windows user's permissions. It contains no telemetry and does not upload screenshots. Browser navigation makes ordinary network requests to requested sites. Installing the plugin does not bypass host approvals, sandbox rules, or task authorization.

Troubleshooting

SymptomLikely causeFix
computer is absentPlugin/MCP added after session startRestart the agent or reload MCP servers
MCP exits immediatelyStarted inside an ephemeral sandbox commandMove it to the persistent host supervisor
browser_endpoint requiredNo owned browser existsLaunch Edge with headless: true first
Token is staleTarget state changed or token expiredObserve the same target again
Doctor failsRuntime prerequisite missingInspect win-pilot doctor --probe --json
computer use provider ... already registeredAnother DSH computer-use provider is enabledKeep only one desktop provider enabled

Compatibility-build diagnostics currently use %TEMP%\win-pilot-diag.log.

Development

git clone https://github.com/JeremyWangCY/win-pilot.git
cd win-pilot
npm run build:wgc
npm run build:desktop
npm run test:desktop
npm test
npm pack --dry-run

Tests exercise the public CLI protocol, MCP discovery/calls, plugin manifest, installation plans, and owned Windows/browser fixtures.

License

MIT