Preface

DeepSeek Harness (referred to as dsh for short) is an agent runtime open-sourced by DeepSeek AI. The official repository summarizes it in one sentence: Everything is a Plugin. The framework is still in developer preview, and the documentation notes that there will be breaking changes. In daily use, sessions, tools, sub-agents, and model routing are mostly assembled using plugins.

When running long tasks, what really tortures users is not “how smart the Agent is”, but several more mundane issues: Is it still running? Which model and Provider is it using this round? How much context is left? Is time spent on model inference or tool calls? How many Jobs and sub-Agents are running in the background? Claude Code answers these questions with /statusline, /context, /usage, and /tasks; Codex also emphasizes that when collaborating on long tasks and multi-Agent scenarios, you can grasp the running status without leaving the current session. In the DeepSeek Harness Web UI, this data already exists in session snapshots and projections, but it is not displayed by default at all times.

dsh-hud connects this runtime visibility to the session title bar. This article introduces what it is, what you can see after installation, and the boundaries to note when using it, based on cross-verification from the community plugin directory, GitHub repository README, package.json, and client source code. The community plugin directory (https://deepseek-harness-plugin.com) is an independent site and has no official affiliation with DeepSeek / HyperGAN. Do not treat it as an official app store.

What It Is

dsh-hud is a read-only Agent runtime observation plugin for the DeepSeek Harness Web UI, maintained by GitHub user zexuanw958-svg, with the repository address at https://github.com/zexuanw958-svg/dsh-hud. The community directory categorizes it under the “Sessions & Messages” category, with a MIT license, main language TypeScript, and current version number 0.1.0. At the time of writing this article, the GitHub repository has 12 stars.

It does not solve the problem of “making the Agent smarter”, but rather the set of operational issues in long tasks: without leaving the current session, you can know what the Agent has done, what resources it has consumed, and how much longer the context can last. The implementation method is to inject a compact status bar into the official slot conversation.session.header.actions: by default, it displays the model used in the most recent Assistant request, the context pressure percentage, and the cumulative number of steps; when clicked, it expands to show Tokens, time spent, Jobs, sub-Agents, Provider, workspace name, and Session ID.

It directly consumes the existing snapshot/projection from Harness, with no scheduled polling, no additional Host requests, no extra model calls, and no statistical information written into the prompt. The repository README clearly states: it is not a 1:1复刻 of Codex / Claude Code, nor is it a console — it cannot switch models, stop tasks, or estimate dollar costs.

There is another GitHub repository with the same name a903067276-rgb/dsh-hud, which adds input bar buttons and a floating sidebar (Git / MCP / Skills, etc.), which is not the same project as the top-bar HUD introduced in this article. When installing, please verify that the maintainer is zexuanw958-svg, and the repository path in the command must be github:zexuanw958-svg/dsh-hud.

Core Features

Based on cross-checking the README and src/client/index.tsx, the current version will display the following information in the session top bar:

  1. Running Status. A dynamic status dot is displayed when the session snapshot.running is true, and it goes static when idle; when expanding the panel, a Live tag will be added when running. The ARIA copy for screen readers is Agent running / Agent idle.
  2. Model Routing. The Host side folds the existing request/context events into a read-only projection dshHudModelRoute (see src/projection.ts), displaying the Model and Provider used in the most recent main session request. If no model call has occurred yet, the compact bar will show No model yet.
  3. Context Pressure. It reads the contextPressure projection from Harness, prioritizes projectedTokens, otherwise falls back to pressureTokens, divides by contextWindow to get the occupancy percentage, and displays “Used Tokens / Window Size” with a progress bar. The percentage is clamped between 0–100 and is only for display, not involved in policy judgment.
  4. Token Statistics. Expanded to show Input and Output. According to the repository implementation, Input is the sum of three categories: uncached input, cache read, and cache write (uncachedInputTokens + cacheReadTokens + cacheWriteTokens), corresponding to the “input tokens including cache reads and writes” mentioned in the README.
  5. Session Progress and Time Spent. sessionStats provides Turns / Steps, as well as model time spent (llmMs) and tool time spent (toolMs). The number of steps on the compact bar comes from stats.steps.
  6. Parallel Tasks. Jobs counts the number of background tasks in the current session with a status of running or stopping; Agents counts the number of sub-Agents attached to this parent session.
  7. Session Location. The detail area shows Workspace (taken from the last segment of the session cwd path) and the full Session ID.
  8. Native Look and Feel and Accessibility. Styles reuse Harness theme variables. The README notes support for light/dark themes, narrow screens, and reduced motion preferences; the detail panel can be closed by clicking outside, or closed with Esc and return focus to the trigger button.

The working principle can be summarized into two lines: The Host plugin (src/index.ts) only registers a read-only projection, without intercepting or modifying the Agent process; the Client plugin subscribes to session snapshots and existing projections such as dshHudModelRoute, contextPressure, tokenUsage, and sessionStats, and data changes are triggered by Harness pushes to render the interface.

Installation and Activation

The original installation command given on the community directory page is as follows, which can be run in the DeepSeek Harness terminal:

dsh plugin add github:zexuanw958-svg/dsh-hud

For reproducible installations, the directory page recommends pinning the commit hash:

dsh plugin add github:zexuanw958-svg/dsh-hud#commit

Replace the commit above with the actual commit hash from the repository. The directory page also reminds users that the plugin runs with the permissions of the current dsh process, and may execute code during installation. Please check the source code repository and license before installing.

This plugin marks the client platform as web in package.json, so the installation method recommended by the README is more specific — pin to the verified Harness version and explicitly write the web profile:

Environment requirements (from the README):
- DeepSeek Harness 0.1.0-rc.6
- Node.js 22.19+ or 24+
- pnpm 11.x

One-line installation:

npx --yes @deepseek-ai/dsh@0.1.0-rc.6 plugin --profile web add github:zexuanw958-svg/dsh-hud

Install from source code (suitable for modifying code or local debugging):

git clone https://github.com/zexuanw958-svg/dsh-hud.git
cd dsh-hud
pnpm install
pnpm build

npx --yes @deepseek-ai/dsh@0.1.0-rc.6 plugin --profile web add "$(pwd)"

Then restart the Web UI:

npx --yes @deepseek-ai/dsh@0.1.0-rc.6 web

The default startup command for the Harness official repository is npx @deepseek-ai/dsh web, and the local default address is http://127.0.0.1:3080. The plugin README uses the versioned npx command to align with the currently verified 0.1.0-rc.6.

The source code installation uses the local link: method. The README notes that moving or deleting the repository directory will invalidate the link; the uninstall command is:

npx --yes @deepseek-ai/dsh@0.1.0-rc.6 plugin --profile web remove dsh-hud

The compatibility table currently has only one row: dsh-hud 0.1.x is marked as verified for DeepSeek Harness 0.1.0-rc.6. Harness is still in RC / developer preview, and if the official slot or projection API changes, this plugin may also need to follow up with an upgrade.

Typical Usage

After installing and restarting the Web UI, you can see the HUD following the steps in the README.

  1. Open or create a new session. The HUD is attached to the conversation.session.header.actions slot on the session title bar, and will not appear when there is no session on the homepage.
  2. View the compact status bar. From left to right, it roughly includes: running/idle status dot, most recent model name, ctx N% (or ctx — when there is no data), and N steps.
  3. Click the status bar to expand the details. The panel title is DeepSeek Harness Session HUD, with a context pressure progress bar at the top, and six metrics in the middle:
    - Input / Output
    - Turns / steps
    - Model time / Tool time
    - Jobs / agents
    Four lines of details below: Model, Provider, Workspace, Session.
  4. Click again, or click outside the panel, or press Esc to collapse it.
  5. Before the first model call in a new session, the model name, context, and Tokens may be empty. This is expected behavior: there is no collapsible request/context event yet, and no token meter data. It will automatically update after sending the first message.

The repository provides pnpm check, which runs strict type checking, Host/Client build, and Vitest in sequence. The README badge shows 8 passing tests, and the tests/ directory currently contains format.test.ts, projection.test.ts, and artifact.test.ts, covering Token/time formatting, model routing projection, and build artifact contracts respectively. You do not need to run these commands for daily use.

Applicable Scenarios and Notes

It is more suitable for the following situations:
- Running long tasks in the DeepSeek Harness Web UI and needing to confirm at any time whether the Agent is still running and whether the context is approaching the window limit.
- Having background Jobs or sub-Agents running at the same time, and wanting to see the parallel count in the current session instead of switching to another panel.
- Caring about whether time is spent on models or tools this round, as well as the cumulative number of input (including cache reads and writes) and output Tokens.
- Needing to quickly verify “which model / Provider is actually being used this round”, as well as which Workspace and Session you are currently in.

It is recommended to review these restrictions before use:
- Read-only, only for display. It cannot change models, stop tasks, estimate costs, or act as a debug console.
- Currently only promises support for the Web profile. The dsh.client.platform in package.json is web, and the README notes that compatibility with other platforms has not yet been promised.
- No additional model overhead. There are no extra model calls, and statistics are not written into the prompt context; the tradeoff is that it completely relies on the existing projections of Harness, and if the Host side has not produced the corresponding events, the interface can only display placeholders.
- Permissions and supply chain. The plugin runs with the permissions of the current dsh process, and may execute build scripts during installation. Please read the repository source code and MIT license before installing; for production or reproducible environments, please pin the commit instead of always tracking the default branch.
- Same-name repository. Do not treat github:a903067276-rgb/dsh-hud as the plugin introduced in this article.
- Version binding. The currently publicly verified scope is DeepSeek Harness 0.1.0-rc.6. The official repository is still iterating rapidly, and if the top bar is blank or the projections do not match after upgrading Harness, first check whether this plugin has been updated to follow the changes.

The README’s Roadmap also lists configurable segments, Git/CI status, context threshold alerts, third-party segment protocols, etc. These are planned items, not capabilities delivered in the current version.

Summary

dsh-hud brings the runtime visibility of “what the Agent is doing and how much context is left” seen in Codex / Claude Code to the DeepSeek Harness session title bar. It does not change Agent behavior, but only exposes the existing snapshots and projections maintained by Harness continuously: model routing, context pressure, Tokens, time spent, background tasks, and sub-Agents, all of which can be viewed in full with one click.

Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-hud/

GitHub: https://github.com/zexuanw958-svg/dsh-hud