How minomiao/deepseek-harness-desktop works
DSH Desktop wraps the DeepSeek Harness web interface in Electron. A user launches the app; the main process starts the bundled local DSH web server, waits for its address, and loads it in the app window. The settings window exposes plugin management and desktop preferences through a preload IPC bridge. Tray behavior, theme synchronization, and window integration support the desktop experience. Plugin install sources and update checks are external integrations. The README documents additional upstream UI capabilities; unsampled source limits confirmation of their internal wiring.
Main entry points: main.js Electron main · preload.js Preload bridge · loading.html Startup screen · loading.js Startup status UI
Components 16
Desktop runtime
- Electron main
src/main.js - Preload bridge
src/preload.js - System tray
src/main.js - Theme and chrome
src/preload.js - Desktop preferences
src/main.js
Application UI
- Harness interface
- Startup screen
src/loading.html - Startup status UI
src/loading.js - Settings window
src/settings.html - Settings UI
src/settings.js
Plugin management
- Plugin utilities
src/plugin-util.js
External integrations
- DSH web server
- Plugin packages
- Git repositories
- GitHub releases
Other components
- User
Connections 24
- User → Electron main: launches
- Electron main → DSH web server: starts process
- DSH web server → Electron main: prints address
- Electron main → Startup screen: shows while starting
- Startup screen → Startup status UI: loads script
- Startup status UI → Preload bridge: queries status
- Preload bridge → Electron main: IPC status
- Electron main → Harness interface: loads local URL
- User → Settings window: opens settings
- Settings window → Settings UI: loads script
- Settings UI → Preload bridge: calls settings API
- Preload bridge → Electron main: forwards IPC
- Electron main → Plugin utilities: normalizes plugin specs
- Electron main → Plugin packages: installs npm packages
- Electron main → Git repositories: fetches or installs sources
- Electron main → DSH web server: verifies after install
- Electron main → GitHub releases: checks releases
- Electron main → System tray: creates tray controls
- User → System tray: uses tray menu
- Harness interface → Preload bridge: reports theme
- Preload bridge → Electron main: sends theme signal
- Electron main → Theme and chrome: synchronizes chrome
- Electron main → Desktop preferences: reads and writes
- Electron main → DSH web server: stops process