dsh-desktop-min: Minimal Desktop Extension Host for DeepSeek Harness

Preface

In DSH’s plugin model, Host and Client plugins are typically used to combine capabilities on the web side. If third parties want to bring extended capabilities into the desktop environment, a desktop host is still needed to carry the profile, extension entry points, and connector boundaries.

dsh-desktop-min provides such a minimal runtime: it launches a web-capable DSH profile in a secure Electron window and provides the minimal foundational environment required for third-party desktop extensions.

What This Is

dsh-desktop-min is a minimal, product-neutral, extension-first DeepSeek Harness desktop shell.

Its core does not include the following capabilities: Agents, workspaces, product UI, embedded pages, tray menus, updates, custom chrome, notifications, and remote hosting. These capabilities belong to separate DSH packages and can provide Host, Client, or fully trusted Native entry points on demand.

The repository is located at https://github.com/wezoo-wb/dsh-desktop-min. The version declared in package.json is 0.1.1, the author field is dsh-desktop-min contributors, and the license is MIT.

Core Capabilities

Desktop Shell and Extension Discovery

  • Launches a web-capable DSH profile in a secure Electron window.
  • Provides a minimal runtime for third-party desktop extensions.
  • Automatically discovers Native extensions listed in the profile’s DSH bundles.
  • Supports explicitly specifying Native extension packages or directories via --extension.

Native Extension Capabilities

Native entry points can:

  • Register JSON capabilities for use by Host and Client callers;
  • Register replaceable Host connectors;
  • Read Host contributions;
  • Execute Host commands;
  • Observe or configure the main window;
  • Obtain a background lifetime for tray-style extensions;
  • Use the full Electron API when the package explicitly declares full trust.

Regular Host and Client plugins do not receive Node.js, raw Electron, raw IPC, or BrowserWindow.

Connectors and Startup Options

Source startup supports the following options:

  • --profile
  • --devtools
  • --extension
  • --connector
  • --connector-option
  • --safe-mode

The built-in local connector supports startupTimeoutMs, ranging from 1,000 to 600,000 milliseconds, with a default value of 60,000 milliseconds.

Installation and Activation

End users install the platform-specific artifacts from GitHub Releases and then launch the application normally. Installed applications do not require Node.js or a package manager.

This repository contains the application source and is not published as an npm launcher. Existing DSH profile composition remains the responsibility of the official dsh CLI.

Running from Source and Examples

The source environment requires Node ^22.19.0 || >=24.0.0. The project is pnpm-only, and Corepack will use the repository-declared pnpm@11.7.0.

Install dependencies and run checks:

corepack pnpm install --frozen-lockfile
corepack pnpm run check

Example source startup commands:

corepack pnpm start -- --profile web
corepack pnpm start -- --profile my-profile --devtools
corepack pnpm start -- --profile my-profile --extension @acme/desktop-native
corepack pnpm start -- --profile my-profile --connector @acme/remote --connector-option endpoint=wss://host.example
corepack pnpm start -- --profile my-profile --connector-option startupTimeoutMs=180000
corepack pnpm start -- --profile my-profile --safe-mode

Development runs and built-in examples:

corepack pnpm run dev -- --profile web
corepack pnpm run example -- --profile web

Use Cases and Considerations

This is suitable for scenarios where third-party desktop extensions need to be hosted in the DSH desktop shell while keeping the core minimal.

If the goal involves Agents, workspaces, product UI, embedded pages, tray menus, updates, custom chrome, notifications, or remote hosting, the corresponding standalone DSH packages should be used.

Special attention is required when using Native extensions:

  • Native entry points are local code, and their trust impact is the same as the application itself.
  • Before enabling full-trust Native capabilities, inspect the extension source, full-trust declarations, and licenses.
  • Remote connectors must return a trusted loopback Client URL, typically implemented via a local proxy or tunnel.
  • The core will not grant preload to arbitrary remote pages.

Links

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye