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.

Step Clock — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
S

@climber47/dsh-step-clock

Step Clock

Live per-step elapsed-time clock for the DeepSeek Harness web GUI: shows which step is running, which tools it is running, and how long it has been going.

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

npx -y @deepseek-ai/dsh plugin --profile web add github:WsTe47/dsh-step-clock#b0a304325b032560713ca6365f8155e74bc41744
READMECompatibilityVersions

Compatibility and provenance

Step Clock is published as @climber47/dsh-step-clock and currently resolves to version 0.1.1. 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/12/2026

Versions

0.1.1stable
9/12/2026

Related plugins

Loading related plugins…

Latest
0.1.1
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/12/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

Related plugins

More verified plugins in ui-customization.

Better Sidebardsh-better-sidebarDSH web plugin: a VSCode-like right sidebar (explorer / editor / terminal / git / browser), isolated per conversation session. Exposes a service for other plugins to register sidebar tabs and file viewers.Whale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editinCodex Ui@michengai/dsh-codex-uiDSH Codex UI — 为 DeepSeek Harness Web 提供 Codex 风格侧栏、工作区会话树、全局搜索和轮次导航 · A Codex-style sidebar, workspace session tree, global search, and turn navigation for DSH WebDeepseek Ipptdeepseek-ipptiPolloWork PPT Studio and its curated slide templates as a native DeepSeek Harness conversation view.

README

dsh-step-clock

中文 | English

A live per-step elapsed-time bar for the DeepSeek Harness web GUI. It answers one question the built-in turn timer does not: how long has the step that is running right now been running?

● 正在执行 bash,已运行 1 分 12 秒    第 12 步   [bash]        1:12

and, once that step finishes, keeps the result on screen:

● 上一步(第 12 步)已完成,用时 3 分 45 秒                    3:45

The bar sits in the composer dock — the strip just above the input box, where the todo and goal bars live — with a second seat below the composer so a tall goal bar cannot push it out of view.

Why

The harness already shows a turn-level clock at the bottom of the conversation, but it only appears after 15 seconds and it measures the whole turn. When you are watching a long bash call you cannot tell whether it started two seconds ago or has been stuck for four minutes, and the turn clock cannot tell you either.

This plugin measures the current step, from the instant its activity actually started:

  • Tool steps are anchored to the tool call's own start time. An in-flight call exists in the live snapshot only while it is in flight, so 0:47 means the call itself has been running 47 seconds — not an estimate derived from the turn.
  • Thinking steps fall back to the step boundary, the closest honest anchor for model time.
  • The clock ticks from 0:00 with no delay threshold.

What it says

The bar states the situation in plain language rather than showing a bare number:

StateWording
Running a tool正在执行 <tool>,已运行 47 秒
Several tools at once正在执行 bash,另有 2 个工具并行,本步已运行 5 秒
Model streaming模型正在思考,本步已耗时 23 秒
Submitted, no output yet已提交,正在等待模型响应,已等待 3 秒
Finished step上一步(第 12 步)已完成,用时 3 分 45 秒
Nothing running空闲,等待下一步

Alongside it: the step number, a chip of the running tool names (up to 4, then +N, hover for all), and a compact m:ss clock at the right edge.

Durations read naturally — 47 秒, 1 分 12 秒, 2 分钟, 1 小时 3 分 — so 0:03 is never ambiguous. The wording is Chinese, matching the language of the session this was built for.

Why the finished step stays

A step is frequently over in well under a second, so a bar that exists only during a step is easy to miss. Holding the last step's duration until the next step replaces it means a slow step — a bash call that ran for four minutes, say — can be identified after the fact. The record is kept only when the step's own start and end timestamps are both present; when they are not, the bar reports itself idle rather than inventing a duration.

Install

dsh plugin --profile web add @climber47/dsh-step-clock

Then restart dsh web. The bar appears above the composer during the next running step.

How it works

A dsh bundle, mounted as one inserted row:

  • package.json declares dsh.bundle.patch, which is what makes the package installable, and dsh.client (platform: web), which is what serves the browser half.
  • cordis.patch.yml inserts the step-clock row.
  • lib/index.js is the (intentionally empty) host half. A bundle's row resolves the package root, so the package must be importable; this plugin has no host behaviour.
  • lib/client.js is the browser half, in the window.__ModuleLoader__.load({ id, factory }) registration shape a client bundle must have. React is taken from the module loader via require('react') rather than bundled.
  • It registers one additive entry in conversation.input.dock (replaceRisk: none, so every shipped todo / goal / queue entry is untouched) and injects its stylesheet by creating a tagged <style> element, removed when the plugin unloads.
  • The shipped bundle is generated from src/client/ by npm run build, so the readable source and the artifact cannot drift; npm test rebuilds and drives the bundle through its real loader contract.

It reads only facts the engine already publishes — the Chat timeline snapshot and the live running-call list — and polls nothing itself.

Requirements

  • dsh >=0.1.5-rc.1
  • React 18 (a peer dependency, provided by the harness shell)

Contributing

contrib/awesome-dsh-plugin-entry.yml is the single registry entry this package submits to the curated list, kept here so the entry and the code stay in one place. It is not part of the npm package.

License

MIT