DSH Plugins Marketplace

DSH Plugins

Plugins

/

UI & Experience

/

dsh-step-clock

W

dsh-step-clock

Manifest valid

Shows the running agent step above the web composer as a Chinese sentence: its step number, the tools it is running, and how long it has been going. A finished step keeps its duration on screen until

UI (client)hasBundlePatch

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

Comments

Loading…

Similar plugins

dsh-task-progress

by chen8923

Live progress for long-running DSH tasks: scripts report structured progress, the Web UI shows it in a floating overlay, a sidebar tab, and a settings page.

Development & InfrastructureUI & ExperienceTerminal & ClientsManifest valid

★ 0

MIT

TypeScript

Sep 24, 2026

dsh plugin --profile web add dsh-task-progress

by KelaoHu

Time-shifting task delegation for DeepSeek Harness (dsh): plan tasks at leisure, they run unattended off-peak, come back to a report. Human-adjudicated, desktop + web.

Workflow & AutomationManifest valid

★ 170

↓ 364/wk

MIT

TypeScript

Sep 16, 2026

dsh plugin --profile web add dsh-lowtide

by lion231226

Verified-progress ledger for long-running DSH work: an independent verifier certifies each claimed step, and a fingerprint check voids any verdict whose verifier mutated the workspace.

Manifest valid

★ 0

MIT

JavaScript

Oct 9, 2026

dsh plugin --profile web add dsh-verified-progress

by yunxiyang

Resumes an agent turn that ended after narrating its next action without calling a tool: the guard replays the turn log on agent/turn-stopping, asks a judge model one true/false question, and steers t

Development & InfrastructureMemory & ContextManifest valid

★ 2

↓ 344/wk

MIT

JavaScript

Sep 29, 2026

dsh plugin --profile web add dsh-loop-continue

by ardesp0630

工作进度面板:在输入框下方的带区常驻显示当前会话的任务清单完成度与运行状态,展开可见任务明细、轮次步骤、模型/工具耗时与上下文占用。

Terminal & ClientsUI & ExperienceManifest valid

★ 0

MIT

JavaScript

Sep 26, 2026

dsh plugin --profile web add dsh-work-progress

by xiyuepcl

DSH审批汉化 — approval dialogs translated to Chinese before they render: DeepSeek-powered, host-side, nothing for React to revert.

UI & ExperienceSecurity & AuditManifest valid

★ 1

↓ 15/wk

MIT

JavaScript

Aug 20, 2026

dsh plugin --profile web add dsh-translator