dsh-desktop-min
其他 活跃维护

dsh-desktop-min

wezoo-wb/dsh-desktop-min

提供产品中立、扩展优先的轻量化桌面 Shell 能力,以极简架构为核心设计逻辑,支持灵活接入自定义功能模块,无需绑定特定产品即可快速搭建个性化桌面操作环境,开箱即用适配开发需求。

4
Stars 标星
0
Forks 分支
4
Watchers 关注
0
Open Issues
TypeScript
主要语言
MIT
开源协议
214 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:wezoo-wb/dsh-desktop-min
git clone https://github.com/wezoo-wb/dsh-desktop-min.git
git clone git@github.com:wezoo-wb/dsh-desktop-min.git
README.md main

dsh-desktop-min

dsh-desktop-min is a minimal, product-neutral, extension-first desktop shell for DeepSeek Harness. It starts an ordinary Web-capable DSH profile in a secure Electron window and supplies the smallest runtime needed for third-party desktop extensions.

The core does not implement Agents, workspaces, product UI, embedded pages, tray menus, updates, custom chrome, notifications, or remote hosting. Those features are independent DSH packages with optional Host, Client, and fully trusted Native entrypoints.

Run

End users install a platform artifact from GitHub Releases and launch the application normally. The installed application does not require Node.js or a package manager. This repository is the application source and is not published as an npm launcher.

The launcher applies its Host bridge only for that run when the selected profile has not installed the bundle. Existing DSH profile composition remains owned by the official dsh CLI.

Source launch and useful options:

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

Native extensions listed by the profile's DSH bundles are discovered automatically. --extension adds an explicit package or directory. --safe-mode skips all external Native entries. The built-in local connector accepts startupTimeoutMs from 1,000 through 600,000 milliseconds for unusually large cold-start profiles; its default remains 60,000 milliseconds.

Develop

This is a pnpm-only project. Corepack selects the exact pnpm release declared by the repository:

corepack pnpm install --frozen-lockfile
corepack pnpm run check
corepack pnpm run dev -- --profile web

Run the included capability example:

corepack pnpm run example -- --profile web

Extension model

A package may use ordinary DSH metadata for its Host and Client plugins and add a full-trust Native entry:

{
  "name": "@acme/dsh-desktop-feature",
  "version": "1.0.0",
  "dshDesktopMin": {
    "apiVersion": 1,
    "native": "./lib/native.js",
    "trust": "full"
  }
}

The Native entry can:

  • register an entirely new JSON capability for Host and Client callers;
  • register a replaceable Host connector;
  • read Host contributions and execute Host commands;
  • observe or configure the main window;
  • acquire background lifetime for tray-style extensions;
  • use the complete Electron API under the package's explicit full-trust declaration.

Regular Host and Client plugins never receive Node.js, raw Electron, raw IPC, or a BrowserWindow. The renderer preload exposes only capability discovery, JSON method calls, Host command execution, and capability events.

See architecture, extension authoring, development and packaging, and security policy.

Design principles

  • Minimal defaults and broad extension mechanisms are separate goals.
  • DSH remains responsible for Profiles, bundles, Agent behavior, and Web Client composition.
  • Every cross-process payload is finite JSON and every public id is validated.
  • Process-based Host tools do not create visible console windows on Windows.
  • The main DSH renderer stays sandboxed with context isolation and no Node integration.
  • A remote connector must return a trusted loopback Client URL, normally through a local proxy or tunnel; the core never grants its preload to an arbitrary remote page.
  • Native entries are local code with the same trust implications as the application itself.

License

MIT. See LICENSE.