Skip to content
dsh.fish
Bundle

dsh-desktop-min

A minimal, extension-first desktop shell for DeepSeek Harness

Source
wezoo-wb
License
MIT
Updated
Updated 22 days ago

Readme

# dsh-desktop-min

`dsh-desktop-min` is a minimal, product-neutral, extension-first desktop shell for [DeepSeek Harness](https://github.com/deepseek-ai/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](https://github.com/wezoo-wb/dsh-desktop-min/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:

```bash
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:

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

Run the included capability example:

```bash
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:

```json
{
  "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](docs/architecture.md), [extension authoring](docs/extensions.md), [development and packaging](docs/development.md), and [security policy](SECURITY.md).

## 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](LICENSE).

Install

dsh plugin --profile web add github:wezoo-wb/dsh-desktop-min#e25108348ece007df64614236a3b775b19f09831

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
Source