dsh-session-timing: DSH Web UI Session and Round Duration Statistics

Preface

When developing agents on DSH, you often encounter a problem: after changing prompts, switching models, or tools, you want to know exactly how long this session took and which step a specific turn got stuck on. While system logs have event records, there is no ready-made view to display session duration and per-turn duration. Relying on external timing tools or manually flipping through logs is quite troublesome.

dsh-session-timing is a client plugin that fills this gap. The maintainer is Neverwocao (GitHub author wzp168) and it is licensed under the MIT protocol. It adds three layers of timing statistics to the DeepSeek Harness Web UI: total duration for each session, duration for each turn, and summary by time period.

What is it

One-sentence positioning: A session wall-clock timing plugin for DSH Web UI that folds turn events from session logs into readable timing numbers.

Problem solved: View “how long this session took”, “how long this turn took”, and “total used today / last 7 days / last 30 days” directly on the interface, without relying on additional log analysis tools.

Core Features

The three points below correspond to the three observation locations of the plugin. All data comes from the two events turn/start and turn/end in the session logs.

  1. Total duration for each session: When opening a session, the right side of the title bar displays a ⏱ Total 12m 10s capsule; each session is represented by a row in the sidebar “Session Duration” panel.
  2. Duration for each turn: After each turn ends in Chat, above the action row it displays Turn 2 · 3m · 08:52:30 → 08:55:30.
  3. Total duration over a period of time: The sidebar “Session Duration” panel provides four options: Today / Last 7 Days / Last 30 Days / All.

Since the data comes from session logs, paging, context compression, or restarting the Harness will not change the numbers; ongoing turns are not included in the total, only accumulated in real-time in the title bar capsule.

Installation and Enablement

Confirm three things before installation: Node.js ≥ 20; pnpm is in the PATH of the DSH process (DSH uses it to install plugins); and your machine has DSH with the dsh plugin command. For the desktop version, you usually replace web in the command with your profile name (usually desktop).

Install in one line:

dsh plugin --profile web add github:Neverwocao/dsh-session-timing#v1.0.0

You can also install without relying on a GitHub tag, using a release package or local directory instead:

# Install from tag tarball
dsh plugin --profile web add https://github.com/Neverwocao/dsh-session-timing/archive/refs/tags/v1.0.0.tar.gz

# Local development: link a checkout directly
dsh plugin --profile web add link:/absolute/path/to/dsh-session-timing

After installation, restart dsh web (plugins and client bundles are scanned at startup), then open the “Plugins” panel to confirm “Session Duration” is enabled. When installing local code using link:, just restart dsh web or refresh the page after changing the Client to load the new bundle.

Uninstall:

dsh plugin --profile web remove dsh-session-timing

Typical Usage

No extra configuration is needed after installation and enablement; just read the values directly on the interface.

  1. Open a session and first look at the total capsule on the right side of the title bar to judge how long this session has been used so far.
  2. After completing a turn, look at the turn duration above the action row to locate the slow turn. If you want to further see model time and tool time, switch to the built-in sessionStats bar in DSH.
  3. Click the “Session Duration” panel icon in the sidebar to switch to Today / Last 7 Days / Last 30 Days / All and compare the total duration across different time periods. The panel does not auto-refresh; recalculation only happens when switching time periods or clicking “Refresh”.

Timing Scope

The plugin defines several terms as follows. This may not be entirely intuitive, so please align your understanding before using it.

Name Meaning
Turn Duration Difference between turn/end time and turn/start time, includes tool execution and waiting
Session Total Duration (Active Duration) Sum of all completed turns
Time Span From the start of the first turn to the end of the last turn; it is greater than the active duration when the session is idle in between
Total Duration for Time Period Sum of active durations of all sessions within the selected time period

Two additional rules: Sessions are archived based on the last activity date, so “Today” refers to sessions that had activity today. If a turn does not have a turn/end recorded (crash, forced kill), the turn/start of the next turn is used as its end time, keeping history monotonic.

Applicability and Notes

Who is it for: Developers and users who run sessions daily in DSH Web UI and need to review duration by session or turn; can also be used when you want to include session duration in statistics.

Pre-installation checklist:

  1. The plugin runs with the permissions of the current dsh process and can access the session logs visible to that process; read the source code and license before installing. The README is marked MIT, © 2026 wzp168.
  2. It only folds turn boundaries and does not subdivide the duration of every step; for model time and tool time, please use the built-in sessionStats bar in DSH.
  3. The panel reads a maximum of 120 sessions at a time; if exceeded, a message will appear at the bottom of the page.
  4. Regarding compatibility, the README states it has been verified on DSH 0.2.1-rc.5, and engines.dsh limits it to >=0.2.1-rc.1 <0.3.0-0.

Summary

The value of this plugin lies in putting the duration, which originally required flipping through logs to calculate, directly into the Web UI, saving manual statistics. There are not many steps for installation and maintenance, but its capability is limited to the turn granularity. When you need step-level data, you still have to fall back to the built-in statistics of DSH.

Directory page: https://www.skillhub.cn/plugins/Neverwocao/dsh-session-timing

GitHub: https://github.com/Neverwocao/dsh-session-timing

One more note on ecosystem background: DSH’s philosophy is “everything is a plugin”. The community directory linked above is an independent site with no official affiliation to DeepSeek / Hyperscience.

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye