DSH Plugin Store
Back to home

JeremyGuo

dsh-custom-workspace

Per-workspace appearance settings for DeepSeek Harness Web

Stars
1
Language
TypeScript
Created
Aug 14, 2026
Updated
Aug 14, 2026
Runtime
GitHub repo

Introduction

dsh-custom-workspace

English | 中文

An external DeepSeek Harness Web plugin that gives each workspace its own background, chat font size, line height, Markdown block spacing, and font-rendering preference.

Features

  • Background color or image URL for the main workspace surface.
  • Independent Markdown body font size and line height.
  • Markdown block spacing for paragraphs, lists, headings, quotes, and code blocks.
  • Grayscale antialiasing toggle for Retina displays.
  • Per-workspace persistence in $DSH_HOME/settings.yaml.

The active appearance follows the workspace containing the current session and falls back to the most recently selected workspace. Workspaces without an override inherit the active DSH theme.

Examples

Theme defaults (font and spacing inherit from DSH):

Default workspace appearance

Compact reading — 13px font, 20px line height, 4px block spacing, #eef4ff background:

Compact workspace appearance with a blue background

Spacious reading — 20px font, 38px line height, 28px block spacing, #fff3e8 background:

Spacious workspace appearance with a warm background

Requirements

  • DeepSeek Harness 0.1.0-rc.6.
  • Node.js ^22.19.0 or >=24.0.0.
  • A loopback DSH Web session. The settings RPC intentionally rejects non-loopback browsers.

Install

Install the published package into the Web profile, then restart DSH:

dsh plugin --profile web add dsh-custom-workspace
dsh web

Open Settings → General Settings → Workspace Appearance to configure the selected workspace. Changes are saved immediately.

To remove the plugin:

dsh plugin --profile web remove dsh-custom-workspace

Develop

pnpm install
pnpm run verify
dsh plugin --profile web add link:$PWD
pnpm run watch

Host changes in src/index.ts require a DSH restart. Browser changes under src/client/ are rebuilt by the watcher and loaded through DSH client HMR.

Run the optional browser smoke test against a running Web profile after installing Playwright Chromium:

pnpm exec playwright install chromium
pnpm run verify:browser -- http://127.0.0.1:3081

Persistence and security

The Host half owns the custom-workspace settings namespace. DSH does not expose third-party namespaces through its generic settings API, so this plugin registers a dedicated /custom-workspace Connection RPC channel. The channel accepts loopback requests only and exposes no other settings namespace.

The browser half validates every response before publishing it to the presenter. Failed writes reload the Host value; a disconnected or non-loopback browser marks the scope unavailable.

Model Experience

None. Workspace appearance affects only browser presentation and never reaches a model request or session log.

Known Limitations

  • Settings are unavailable to browsers reached through a LAN hostname, even when the DSH Web server trusts that hostname.
  • Background images use the configured URL directly and depend on the browser's network and content-security policy.
  • This release targets DSH 0.1.0-rc.6; pre-release DSH APIs may change without compatibility shims.

License

MIT