Back to home@KeS1Ke

dsh-exit

A focused DeepSeek Harness web plugin that adds a safe, confirmed host-exit control.

Stars
0
Language
JavaScript
Created
Aug 24, 2026
Updated
Aug 25, 2026
GitHub repo

Introduction

dsh-exit

A focused exit control for the DeepSeek Harness web interface.

dsh web plugin npm Platform Version Dependencies

简体中文

> [!IMPORTANT] > Confirming the action terminates the dsh host process and releases its ports. The host terminal window and the current browser tab are intentionally left open.

✨ What it does

dsh-exit adds a dedicated Exit 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 Exit section at the bottom of the settings navigation.
  • 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-exit flow generated by Archify

Download the exit-flow video

📸 Real dsh UI

The capture below is a current dsh settings view with dsh-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-exit Exit entry at the bottom of Settings navigation

🧱 npm package contents

LayerFileResponsibility
Hostlib/index.jsRegisters the dshExit Cordis service and the typed exit() Remote method.
Clientlib/client.jsSelf-contained browser bundle: settings section, exit button, CSS, modal, keyboard handling, and Remote mounting.
Bundle patchcordis.patch.ymlInserts the plugin row into the dsh profile.
Package metadatapackage.jsonDeclares the host entry, web client, and bundle patch.

The package stays focused on the runtime files and package metadata. 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-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-exit
dsh plugin --profile web remove @kesike/dsh-exit

🖥️ UI behavior

InteractionResult
Click the red Exit item at the bottom of Settings navigationOpens the exit section and confirmation action.
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: dshExit
method:    exit
result:    true
gateway:   /api/dshExit/exit

The client-side dsh gateway returns the standard envelope { ok: true, value: true } on success. The service guards repeated calls with an exiting flag and schedules process.exit(0) after the response has a chance to settle.

🧪 Development checks

Run the lightweight syntax checks from the project root:

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

🗺️ Quick reference

  • Target: DeepSeek Harness web profile
  • Install mode: npm package
  • Surface: final section in the Settings navigation
  • Action: terminate the dsh host process
  • Runtime port: read from the current dsh Web address in the settings page
  • Repository topics: dsh · deepseek-harness · dsh-plugin · plugin · javascript · web

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

Small surface, explicit confirmation, predictable exit behavior.