Introduction

When running long sessions with DeepSeek Harness (hereinafter referred to as DSH), you often need to go back to an earlier round. With many rounds, scrolling up and down in Chat is easy to get lost in, and switching to the Trajectory tab requires finding the location again. Moreover, old rounds may not have been loaded into Chat yet, so scrolling won’t reach them. DSH’s philosophy is “everything is a plugin,” and this kind of interface layer supplementation is perfect for community plugins to handle.

Below is an introduction to karmiy/dsh-session-nav, a DSH Web plugin that provides Codex-style navigation on the left side of the session.

What is it

Maintained by karmiy and licensed under MIT, dsh-session-nav positions itself as a “Codex-style session navigation plugin for DeepSeek Harness Web.” It adds a navigation bar to the left of the session: each user / steering / slash command round corresponds to a dash, and clicking it jumps to that specific round.

It is a pure overlay plugin: it does not replace the Chat, sidebar, or Trajectory tab; it simply overlays display on the left edge of the session column.

Core Features

Idle State

When idle, a compact stack of dashes appears on the left edge of the session column, with each corresponding to a user / steering / slash command round.

Hover Preview

On hover, neighboring dashes elongate in the form of a delayed wave, while displaying a tooltip bubble, optional “Worked for” duration, and optional “Edited N files +X -Y” file cards.

Jump

Clicking a dash, or using ↑ / ↓ on the navigation bar, scrolls the corresponding round into view.

Full Logs

Even if Chat hasn’t loaded old rounds yet, they are listed in session.history. When clicking an old round, the plugin calls loadOlder page by page until that entry exists, then scrolls to it.

Toggle

There is a checkmark button in the session header to toggle the navigation bar, and the preference is stored in localStorage as dsh-session-nav:enabled.

Layout

The navigation bar is vertically centered and takes up a maximum of 66% of the session column height; if the stack is too long, it scrolls internally within the navigation bar.

Data Source

  • “Worked for” is based on turn/startturn/end, displayed in real-time during the round.
  • File cards come from Diff / edit tool cards within the round, counted by locations plus the line counts of oldText / newText.

Installation and Enablement

  1. Confirm DSH is idle. Adding a plugin rebuilds the web profile and interrupts running tasks; do not run dsh plugin add on a profile with a running task.

  2. Execute the installation command:

dsh plugin --profile web add github:karmiy/dsh-session-nav
  1. If the first add fails with an allowBuilds prompt—Git-hosted plugins are built during installation, and pnpm ≥10 blocks this prepare script—write the key from the prompt into ~/.dsh/profiles/web/pnpm-workspace.yaml:
allowBuilds:
  dsh-session-nav: true
  1. Repeat the same add command, then restart the web profile.

After the steps above, the navigation bar will appear on the left edge of the session column.

Fixed Versions and Local Installation

If you don’t want future pushes to change the actual running content, you can install with a fixed version:

dsh plugin --profile web add github:karmiy/dsh-session-nav#v0.1.0

When using a local checkout, first run pnpm install in the checkout directory, then install using link: with an absolute path:

dsh plugin --profile web add link:/absolute/path/to/dsh-session-nav

Development

The development environment requires Node ^22.19 || >=24 (engines is ^22.19.0 || >=24.0.0), and packageManager is fixed to pnpm@10.15.0. Common commands:

pnpm install
pnpm test
pnpm typecheck
pnpm build

Here, typecheck and build require DeepSeek Harness to be checked out in the sibling directory ../deepseek-harness. The prepare script only runs tsdown and does not perform typecheck, so dsh plugin add github:… can complete the build even on machines without the harness source code.

Applicable Scenarios and Notes

Suitable for people running multi-round long sessions in DSH Web who need to frequently review or jump to a specific round; the benefits are limited if only running a few short rounds.

Two points to note before installation:

  1. The plugin runs with the permissions of the current dsh process; you should check the plugin source code and license yourself before installing (this plugin is MIT).
  2. Confirm again that DSH is idle to avoid interrupting running tasks when rebuilding the web profile.

Conclusion

dsh-session-nav is very restrained in its approach: it doesn’t move the existing interface, just adds a jumpable round navigation to the left edge of the session, and uses session.history to fill in unloaded old rounds, solving the problem of “not being able to go back to a specific round” in long sessions.

  • Community directory: https://www.skillhub.cn/plugins/karmiy/dsh-session-nav
  • GitHub repository: https://github.com/karmiy/dsh-session-nav

The directory is an independent community site with no official affiliation to DeepSeek / Hyperbolic.