Thanksgiver233 / deepseek-harness-win-desktop

Listed

`@deepseek-ai/dsh-win-desktop` 是 DeepSeek Harness(DSH)的 Windows 桌面插件,通过本地 HTTP 服务桥接 Windows 桌面会话。它在 8765 端口(可配置)运行一个轻量 HTTP 服务器,提供完整的会话管理 REST API(`GET /health`、`GET /sessions`、`POST /sessions`、`DELETE /sessions/:id`),并以 React 组件形式注入 DSH Web UI 的 Slot 系统,支持 3 秒轮询刷新和实时状态指示。该插件严格遵循 DSH 官方插件架构:Host 端基于 Cordis `Service` 类实现,使用 `schemastery` 做配置校验。

mainToolSkillSession View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:Thanksgiver233/deepseek-harness-win-desktop

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit 31ebe4fSynced Aug 18, 2026

@deepseek-ai/dsh-win-desktop

License: MIT Node.js TypeScript React DSH Plugin

DeepSeek Harness Windows Desktop Plugin — A zero-dependency DSH plugin that bridges Windows desktop sessions via a local HTTP API. Install with a single node command, no pnpm or dsh CLI required.

DeepSeek Harness Windows 桌面插件 —— 零依赖 DSH 插件,通过本地 HTTP 服务桥接 Windows 桌面会话。一条 node 命令完成安装,无需 pnpm 或 dsh CLI。

350-Word Summary

@deepseek-ai/dsh-win-desktop is a DeepSeek Harness (DSH) plugin that provides a Windows desktop session bridge. It runs a local HTTP server on port 8765 (configurable) that manages desktop sessions with full CRUD endpoints (GET /health, GET /sessions, POST /sessions, DELETE /sessions/:id). The plugin follows the official DSH plugin architecture: a host-side WinDesktopService extending Cordis Service with lifecycle-managed HTTP routing, and a client-side React panel injected into the DSH UI via the slot system (win-desktop.panel). It ships pre-built JavaScript in lib/ so users need only Node.js >= 22 to install and run — no pnpm, no TypeScript toolchain, no dsh CLI. The included bin/dsh-win-desktop.bat launcher provides install, start, status, stop, and doctor commands that copy the bundle to DSH_HOME/plugins/ and auto-inject the Cordis patch into the web profile. Bilingual support (English/中文) is built in via the DSH locale system. The plugin is MIT-licensed, uses schemastery for config validation, and includes an invariant companion for session-lifecycle correctness checks.

中文简介

@deepseek-ai/dsh-win-desktop 是 DeepSeek Harness(DSH)的 Windows 桌面插件,通过本地 HTTP 服务桥接 Windows 桌面会话。它在 8765 端口(可配置)运行一个轻量 HTTP 服务器,提供完整的会话管理 REST API(GET /healthGET /sessionsPOST /sessionsDELETE /sessions/:id),并以 React 组件形式注入 DSH Web UI 的 Slot 系统,支持 3 秒轮询刷新和实时状态指示。该插件严格遵循 DSH 官方插件架构:Host 端基于 Cordis Service 类实现,使用 schemastery 做配置校验,注册 winDesktop:session:startwinDesktop:session:stop 生命周期事件,并附带不变量检查确保会话 CRUD 与事件发射的一致性;Client 端通过 ctx.slots.inject()WinDesktopPanel 注册到 win-desktop.panel 槽位,使用 ctx.locale.register() 挂载中英双语字典。插件预构建 ESM 产物在 lib/ 目录,用户仅需 Node.js >= 22 即可零依赖安装——通过 bin/dsh-win-desktop.bat install 自动复制 bundle 并写入 DSH_HOME/plugins/profiles/web/cordis.patch.yml,无需 pnpm、TypeScript 工具链或 dsh CLI。采用 MIT 许可证,端口默认绑定 127.0.0.1 仅限本地访问,无持久化存储、无外部网络请求,安全性由设计保证。

Features

  • Zero-dependency install — only Node.js >= 22 required
  • HTTP session bridge — REST API for desktop session management
  • React UI panel — injected into DSH via slot system with 3s polling
  • Bilingual — English / 中文 locale dictionaries
  • Cordis-invariant safe — session lifecycle correctness checks
  • Auto-patch injection — writes to profiles/web/cordis.patch.yml on install

Quick Start

# Zero-dependency install (Node.js >= 22 required)
git clone https://github.com/deepseek-ai/deepseek-harness-win-desktop.git
cd deepseek-harness-win-desktop
node bin/dsh-win-desktop.bat install
node bin/dsh-win-desktop.bat start

# Verify
node bin/dsh-win-desktop.bat status
curl http://localhost:8765/health

Commands

node bin/dsh-win-desktop.bat install   # Install bundle to DSH_HOME/plugins/
node bin/dsh-win-desktop.bat start     # Start bridge (port 8765)
node bin/dsh-win-desktop.bat status    # Show service status
node bin/dsh-win-desktop.bat stop      # Stop bridge
node bin/dsh-win-desktop.bat doctor    # Environment diagnostic

API

MethodPathResponse
GET/health{status:ok,version:0.1.0,sessions:N,port:8765}
GET/sessions[{id,name,status,startedAt},...]
POST/sessions201 {id,name,status:running,startedAt:ts}
DELETE/sessions/:id204

Architecture

┌─────────────────────────────────────────────────────────────┐
│                     DSH Web Client                          │
│  ┌───────────────────────────────────────────────────────┐  │
│  │              WinDesktopPanel (React)                   │  │
│  │  ┌───────────┐  ┌───────────┐  ┌───────────┐         │  │
│  │  │ Session 1 │  │ Session 2 │  │  + New    │         │  │
│  │  │ [Running] │  │ [Stopped] │  │  Button   │         │  │
│  │  └───────────┘  └───────────┘  └───────────┘         │  │
│  └─────────────────────────┬─────────────────────────────┘  │
│                            │ ctx.slots.inject()              │
└────────────────────────────┼───────────────────────────────┘
                             │ HTTP 127.0.0.1:8765
┌────────────────────────────┼───────────────────────────────┐
│                    Host Service                           │
│  ┌───────────────────────────────────────────────────────┐  │
│  │           WinDesktopService (Cordis Service)          │  │
│  │  • GET  /health    → status + session count           │  │
│  │  • GET  /sessions  → list all sessions                 │  │
│  │  • POST /sessions  → create new session (201)         │  │
│  │  • DEL  /sessions/:id → delete session (204)          │  │
│  │  • Lifecycle: winDesktop:session:start/stop           │  │
│  └───────────────────────────────────────────────────────┘  │
│                            │                                 │
│  ┌───────────────────────────────────────────────────────┐  │
│  │         Invariant Checks (cjs/invariant)              │  │
│  │  • session.start() → emit start event                │  │
│  │  • session.stop()  → validate started → emit stop    │  │
│  │  • session.delete()→ validate exists                  │  │
│  └───────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

Project Structure

deepseek-harness-win-desktop/
├── src/
│   ├── host/
│   │   ├── index.ts          # WinDesktopService + HTTP routes
│   │   └── invariant.ts      # Session lifecycle checks
│   └── client/
│       ├── app.tsx           # React entry point
│       ├── ui-panel.tsx      # WinDesktopPanel component
│       ├── slots.ts          # SlotMap declaration
│       └── locales.ts        # en/zh dictionaries
├── lib/                      # Pre-built ESM artifacts
│   ├── index.js
│   ├── invariant.js
│   └── client.js
├── bin/
│   └── dsh-win-desktop.bat   # Zero-dep launcher
├── scripts/
│   └── standalone-dsh.cjs    # CLI implementation
├── .github/
│   ├── workflows/ci.yml
│   ├── dependabot.yml
│   ├── ISSUE_TEMPLATE/
│   └── PULL_REQUEST_TEMPLATE.md
├── package.json
├── tsconfig.json
├── tsdown.config.ts
├── cordis.patch.yml          # Patch template
├── dsh-plugin.json
└── README.md

Development

# Requires pnpm + Node.js >= 22
pnpm install
pnpm build        # Compiles src/ → lib/
pnpm dev          # Watch mode
pnpm test         # Run tests

Environment

DependencyMin VersionZero-dep Mode
Node.js22.0.0Required
pnpm9.0.0Optional (dev)
TypeScript5.4.0Pre-built

Security

  • Loopback only: Server binds to 127.0.0.1 — not accessible from network
  • No persistence: Sessions are ephemeral in-memory maps
  • No external calls: Zero outbound network requests
  • No auth required: Local-only scope makes auth unnecessary

License

MIT — see LICENSE for details.

Contributing

See CONTRIBUTING.md and CODE_OF_CONDUCT.md.

Support

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

Security policyDetected
Contributing guideDetected

Repository information

Language
JavaScript
License
MIT
Last updated
Aug 16, 2026, 2:43 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.