DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Chat Offscreen — DSH Plugin for DeepSeek Harness
← Plugins
C

dsh-chat-offscreen

Chat Offscreen

Keep long DSH chat sessions responsive: skip layout/paint for off-screen transcript rows (content-visibility).

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:publieople/dsh-chat-offscreen#5b06af7e04424ce364e7af381e156e4c38b8a216
READMECompatibilityVersions

Compatibility and provenance

Chat Offscreen is published as dsh-chat-offscreen and currently resolves to version 0.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
9/11/2026

Versions

0.1.0stable
9/11/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
9/11/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in ui-customization.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profileExperimental Web profile layer for Agent Teams Remote and UI pluginsRemote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.

README

dsh-chat-offscreen

Keep long DeepSeek Harness (DSH) Web chat sessions responsive.

The problem

The DSH chat transcript is not virtualized upstream: every loaded history page stays in the DOM. Backwards paging pulls 50 messages per loadOlder() page, and the turn rail's jump loader pulls 200-message pages until the window covers the target — with no eviction. On a long session, dragging the transcript width handle, the sidebar divider, or simply scrolling forces layout + paint across thousands of nodes, which makes the UI stutter.

What this plugin does

It is a tiny client-side plugin that installs one stylesheet:

[data-chat-flow-kind="assistant-step"]:not(:has(.md-table-wide)),
[data-chat-flow-kind="tool-call"]:not(:has(.md-table-wide)) {
  content-visibility: auto;
  contain-intrinsic-size: auto 120px;
}
[data-chat-flow-kind="assistant-step"]:has(.md-table-wide),
[data-chat-flow-kind="tool-call"]:has(.md-table-wide) {
  content-visibility: visible !important;
  contain: none !important;
}

content-visibility: auto lets the browser skip layout and paint for off-screen assistant steps and tool calls — a cheap approximation of virtualization — while contain-intrinsic-size: auto 120px keeps the scroll range stable and remembers a row's measured height once seen. Rows containing a wide markdown table opt out so their breakout width is never mis-estimated.

This is a rendering-layer workaround, not a data change: no messages, session events, or host state are touched. It composes with the retired @linxin666/dsh-perf P0 rule of the same shape.

Install

dsh plugin --profile web add github:publieople/dsh-chat-offscreen

Then restart the web profile (dsh web ...) and hard-refresh the page (Ctrl+Shift+R). The lib/ build is committed, so no package build script runs and no allowBuilds entry is required.

The bundle patch inserts the plugin row automatically. If you install by hand:

cd "$DSH_HOME/profiles/web"
pnpm add github:publieople/dsh-chat-offscreen

then add dsh-chat-offscreen to dsh.profile.bundles in that profile's package.json and restart.

Verify

Open a long session and drag the transcript width handle / sidebar divider, or scroll fast. In DevTools → Elements, an off-screen assistant step should carry content-visibility: auto.

Disable / uninstall

dsh plugin --profile web remove dsh-chat-offscreen

then restart. Removing the plugin removes the stylesheet; nothing is persisted.

Compatibility

  • Client platform: web. Host half is intentionally empty.
  • Depends only on the browser content-visibility feature (Chrome/Edge 85+, Firefox 125+, Safari 18+). On older engines the rules are inert and the UI simply stays as before.
  • Built against DSH 0.1.5-rc.1; the plugin uses no DSH runtime imports.

Development

npm install
npm run typecheck
npm run build     # tsdown -> lib/index.js (ESM) + lib/client.js (ModuleLoader)
npm test          # drives the built client bundle against a fake DOM

lib/ is committed on purpose so Git installs need no build step. If you change src/, re-run npm run build and commit the result.

If upstream virtualizes the chat

When the DSH chat surface gains real virtualization, delete this plugin row. The upstream trajectory view (ui-trajectory) is already virtualized; the chat surface is not.