Introduction

In DSH’s Web GUI, sidebar sessions are usually grouped by workspace. If common sessions are not pinned, searching across workspaces requires repeated scrolling or switching. dsh-pin adds two hover buttons to session rows: 📌 Pin in Workspace and ⌃⌃ Global Pin Area, used to move common sessions to a more prominent position.

What is this

dsh-pin is a DSH plugin maintained by Yu-tao-Li with an MIT license. It adds two levels of pinning to the DeepSeek Harness sidebar sessions: pinning within a workspace or a global pinned area, and supports pinning and unpinning multiple sessions with precise restoration after unpinning.

It is a pure client-side plugin with zero runtime dependencies, does not modify the DSH core, and is only available for the Web GUI.

Core Features

The following introduces several actionable capabilities:

  1. When hovering over a session row, display 📌 Pin in Workspace and ⌃⌃ Global Pin buttons. The buttons appear in the hover menu of the sidebar session row (to the left of ⋯).

  2. Support pinning multiple sessions simultaneously.

  3. Support switching pinning levels between 📌 and ⌃⌃.

  4. When unpinning, precisely restore the session’s position before it was pinned.

  5. Global pinning is purely display-level; it does not change any persistent order; unpinning restores it.

  6. Workspace pinning uses the host’s official order API and is persisted to the DSH workspace registry.

  7. “Ungrouped” sessions support global pinning but do not support workspace pinning.

  8. In flat lists (“In one list”), there is no manual order, so buttons are hidden automatically.

Installation and Enablement

First, execute the installation command to install the plugin into the web profile:

dsh plugin --profile web add github:Yu-tao-Li/dsh-pin

Restart dsh web for the changes to take effect. You can also search for dsh-pin in the Plugins market (dshmarket) in DSH settings.

The --profile web in this command is consistent with the “Web GUI only” limitation. The repository package.json declares Node >=22.

Typical Usage

  1. Hover over any session, click 📌 to pin it to the current workspace.

  2. Click ⌃⌃ to pin it to the Global Pin Area at the top of all workspaces.

  3. Click the row in the pin area to open that session directly.

  4. Click the button again, or click the ✕ in the pin area to unpin and precisely restore the original position.

Applicable Scenarios and Notes

Suitable for people using DSH Web GUI who need to frequently open common sessions across several workspaces. The DSH plugin ecosystem emphasizes “everything is a plugin”; directories like the plugin market (dshmarket) are community directories and are not equivalent to the official DeepSeek app store.

Notes before using or installing:

  • Only available for Web GUI; TUI/Headless do not have a sidebar.
  • Global pinning takes effect locally in the browser; workspace pinning is globally persistent.
  • It only writes to the host workspace/session order and browser local records, does not touch session content or credentials, and does not add new network endpoints.
  • Restoration of workspace pinning depends on the original adjacent sessions still existing; if adjacent sessions are missing, it is placed according to fallback rules.
  • Depends on internal application structures (React Fiber identity, view storage key name dsh.workspace.view.v5); after a major DSH version upgrade, if the structure changes, buttons may fail.
  • Corrupted storage automatically degrades to empty; RPC failures provide red feedback.
  • DSH plugins run with the current dsh process permissions; you should check the source code and license before installing.

Conclusion

The value of dsh-pin lies in not modifying the DSH core, but adding two levels of session pinning to the Web sidebar: workspace pinning is suitable for persistent order, and the global pin area is suitable for quickly opening sessions across workspaces; unpinning restores the original position.

GitHub Repository: https://github.com/Yu-tao-Li/dsh-pin