Back to home@KeS1Ke

dsh-start-and-exit

dsh-start&exit: safe start, exit, and restart controls for the DeepSeek Harness Web profile, plus a loopback-only Windows foreground launcher.

Stars
0
Language
JavaScript
Created
Aug 24, 2026
Updated
Aug 27, 2026

Introduction

dsh-start&exit

Focused start, exit, and restart controls for the DeepSeek Harness web interface.

dsh web plugin npm Platform Version Dependencies

简体中文

> [!IMPORTANT] > Exit and restart actions are explicitly confirmed. The Windows launcher only accepts a dsh Web service bound to `127.0.0.1` and keeps its terminal process recoverable from the taskbar.

✨ What it does

dsh-start&exit adds a dedicated Start / Exit / Restart section to the dsh settings panel. It uses the highest settings order so newly installed settings plugins appear above it.

  • Opens a confirmation modal before doing anything destructive.
  • Keeps the Start / Exit / Restart section at the bottom of the settings navigation.
  • Starts the dsh Web profile through a visible Windows Terminal/PowerShell launcher when requested.
  • Provides a standalone Windows foreground launcher that minimizes the terminal only after the local WebUI is ready.
  • Calls the typed dshExit/exit Remote method only after confirmation.
  • Gives the gateway a short acknowledgement window, then ends the host process.
  • Releases every port held by that process; the settings page displays the current dsh Web host and port.
  • Keeps the terminal window and browser tab available for the next action.
  • Uses the existing dsh design tokens and the Lucide power icon.

🎬 GitHub showcase

Follow the exit flow below, then see the plugin in a running dsh settings panel.

Landscape animated dsh-start&exit flow generated by Archify

Download the dsh-start&exit flow video

📸 Real dsh UI

The capture below is a current dsh settings view with dsh-start&exit installed. The red Exit entry is the plugin's real navigation item at the bottom of the settings list.

Running dsh Web UI with the dsh-start&exit controls at the bottom of Settings navigation

🧱 Repository layout

LayerFileResponsibility
Hostlib/index.jsRegisters the dshStartExit Cordis service and typed start, exit, and restart Remote methods.
Clientlib/client.jsSelf-contained browser bundle: settings section, start/exit/restart controls, CSS, modal, keyboard handling, and Remote mounting.
Bundle patchcordis.patch.ymlInserts the plugin row into the dsh profile.
Windows launcherscripts/launch-dsh-foreground.ps1Starts the Web profile in a visible foreground PowerShell terminal and minimizes it after the local WebUI is ready.
Launcher iconassets/dsh-launcher-hq.icoMulti-size DeepSeek launcher icon for a Windows desktop shortcut.
Package metadatapackage.jsonDeclares the host entry, web client, and bundle patch.

The npm package stays focused on runtime files and package metadata. The Windows launcher and icon are repository utilities; additional screenshots and source materials are provided below:

Showcase assetLocation
Animated WebPdocs/dsh-exit-landscape.webp
MP4 / WebM videodocs/dsh-exit-landscape.mp4 · docs/dsh-exit-landscape.webm
Archify sourcedocs/exit-flow-landscape.html · docs/exit-flow-landscape.workflow.json
Real UI capturedocs/dsh-exit-real.png

🚀 Install from npm

Install the published package directly into the dsh Web profile:

dsh plugin --profile web add @kesike/dsh-start-and-exit

Restart the profile after installation. The dsh host loader resolves the bare runtime imports, so this package intentionally declares no runtime dependencies. To update or remove it:

dsh plugin --profile web update @kesike/dsh-start-and-exit
dsh plugin --profile web remove @kesike/dsh-start-and-exit

Package rename: existing @kesike/dsh-exit and @kesike/dsh-start-exit installations should be removed and replaced with @kesike/dsh-start-and-exit.

🖥️ Windows foreground launcher

The repository includes an optional desktop launcher for Windows:

PowerShell 7 → scripts/launch-dsh-foreground.ps1 → dsh --profile web

The launcher keeps the dsh process in a visible foreground terminal while it starts. After http://127.0.0.1:3080/ returns a successful response, it calls Windows SW_MINIMIZE on that same terminal. The terminal is minimized, not hidden or detached, and remains restorable from the taskbar.

It refuses to start or keep dsh running when the selected port has a non-loopback listener. Do not commit personal .lnk files, profile directories, logs, npm caches, or generated archives; create the shortcut locally and point its icon to assets/dsh-launcher-hq.ico.

🖥️ UI behavior

InteractionResult
Click StartStarts the dsh Web profile through the host launcher.
Click the red Exit item at the bottom of Settings navigationOpens the exit section and confirmation action.
Click RestartSchedules a new foreground dsh terminal after the current host closes.
Click Cancel, press Esc, or click outsideCloses the modal without changing the host.
Click Confirm exitDisables duplicate actions and invokes the host Remote method.
Remote call failsRestores the controls and shows an inline error message.
Remote call succeedsCloses the modal; the host exits shortly afterward.

🔌 Remote contract

The host advertises a strict, parameterless Remote method:

namespace: dshStartExit
methods:   start · exit · restart
result:     true
gateways:   /api/dshStartExit/start · /api/dshStartExit/exit · /api/dshStartExit/restart

The client-side dsh gateway returns the standard envelope { ok: true, value: true } on success. Exit and restart guard repeated calls, return the response before shutdown, and keep the host bound to the loopback-only Web surface.

🧪 Development checks

Run the lightweight syntax checks from the project root:

node --check lib/index.js
node --check lib/client.js
npm test

🗺️ Quick reference

  • Target: DeepSeek Harness web profile
  • Install mode: npm package
  • Surface: final section in the Settings navigation plus an optional Windows launcher
  • Actions: start · exit · restart
  • Runtime binding: loopback-only (127.0.0.1)
  • Repository topics: dsh · deepseek-harness · dsh-plugin · dsh-start-and-exit · plugin · javascript · web · windows · powershell

The power icon comes from Lucide and is used under its ISC license.

One small surface for starting, exiting, and restarting dsh safely.