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.

Scope — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

dsh-scope

Scope

Codex-style context visibility for DeepSeek Harness: live context-window occupancy, composition breakdown, KV-cache hit rate, and a GitHub-style 53-week usage heatmap

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-scope@0.1.0
READMECompatibilityVersions

Compatibility and provenance

Scope is published as dsh-scope 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
npm
Registry updated
9/20/2026

Versions

0.1.0stable
8/17/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
259.7 kB
Files
12
Surface
web
License
MIT
Source
npm
GitHub
★ 0
Weekly downloads
102
Security scan
✓ v0.1.0 scan passed
View source ↗Project homepage ↗
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

Related plugins

More verified plugins in developer-tools.

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)Sdk Minimal@deepseek-ai/dsh-sdk-minimalThe standalone minimal SDK profile bundle: JSON-RPC, one DeepSeek adapter, persistent shell, and JSONL sessionsSdk App@deepseek-ai/dsh-sdk-appThe dsh SDK profile bundle: stdio JSON-RPC serving and process lifecycle over dsh-baseSubagent Codex@deepseek-ai/dsh-subagent-codexOne-shot Codex subagent provider over the official app-server protocol

README

dsh-scope

English · 简体中文

Context visibility for DeepSeek Harness (dsh) — a Codex-style /context lens for every session, plus a GitHub-style usage heatmap for your whole history.

Two UI contributions, one plugin:

  1. Context Lens (session header) — live context-window occupancy with a segmented system / tools / messages composition bar, per-bucket session totals, and KV-cache hit rate. All data flows through the official token-meter session projections via useProjection — no RPC, no custom wire protocol.
  2. Usage Heatmap (sidebar footer) — a GitHub-contribution-graph-style rolling 53-week token-usage grid. Click any day for the four token buckets, cache hit rate, session count, and per-model ranking. Fed by this plugin's own loopback-only aggregation endpoint.

Screenshots

usage heatmap

Why

DeepSeek Harness treats wording and context as first-class engineering concerns, yet the stock Web UI shows no context occupancy and no usage history. dsh-scope fills both gaps the harness-native way: reading the projections the platform already computes, styling with the platform's design tokens (--dsw-alias-*), and mounting through the platform's slot registry — light/dark themes both correct with zero media queries.

Install

Requires dsh ≥ 0.1.0-rc.6 on your PATH.

dsh plugin --profile web add dsh-scope
dsh web                             # restart dsh to load the plugin
Install from source
git clone https://github.com/helloxkk/dsh-scope.git
cd dsh-scope
npm install && npm run build
node scripts/install.mjs web        # or: node scripts/install.mjs <profile>
dsh web                             # restart dsh to load the plugin

The installer copies lib/, cordis.patch.yml, and package.json into the profile's node_modules and appends the bundle insert to the profile's cordis.patch.yml (idempotent — safe to re-run after every rebuild).

Uninstall

rm -rf ~/.dsh/profiles/web/node_modules/dsh-scope
# then remove the "# dsh-scope" block from ~/.dsh/profiles/web/cordis.patch.yml
rm -f ~/.dsh/storages/dsh-scope-cache.json   # optional: drop the fold cache

How it works

Client half (lib/client.js, loaded via the package's dsh.client declaration):

  • conversation.session.header.actions (order 30, after the job list) renders the lens trigger: an occupancy ring with the live percentage. The popover reads three official projections — tokenUsage (four buckets accumulated over the whole durable log), contextPressure (input-side window pressure + the route's context window), and contextBreakdown (heuristic system/tools/message composition of the next request).
  • sidebar.footer.action renders the heatmap trigger (label when the sidebar is wide, icon on the rail). The popover fetches GET /api/dsh-scope/days same-origin.

Host half (lib/index.js): one read-only, loopback-fenced endpoint (/api/dsh-scope/days). Aggregation is incremental: per-session fold state is cached in memory and persisted to ~/.dsh/storages/dsh-scope-cache.json; each request folds only events added since the last fold. Live sessions fold their in-memory tail; persisted sessions use the storage backend's opaque revision and readFrom(id, fromSeq), with contiguity checks and a full refold on log rewrites. Steady-state cost stays O(new events) no matter how large the logs grow.

Fold semantics mirror dsh-token-meter's tokenUsage projection: a usage sample rides an assistant/chunk (data.chunk.type === "usage") or assistant/message (data.usage); a repeated sample for the same (turn, step) replaces the earlier value instead of double counting, re-attributed to the later event's day and model. Model attribution follows assistant/message's data.message.source, falling back to the last request/header config.

Nothing is sent anywhere: the endpoint refuses non-loopback callers and non-GET methods before any work, and no provider credentials are read.

Development

npm run build                          # tsdown: host ESM + browser ModuleLoader bundle
node scripts/fixture-session.mjs       # optional: write a demo session log with usage events
node scripts/install.mjs web && dsh web

Compatibility

Built and verified against dsh 0.1.0-rc.6 (@deepseek-ai/dsh-base / dsh-web-app bundles). The harness is in developer preview and iterates quickly — expect compatibility-breaking changes.

License

MIT