DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-session-tree

m

dsh-session-tree

Manifest valid

Enhanced session tree for the DSH sidebar (fork of ui-workspace): tag chips, group-by-tag, drag-to-move across workspaces, delete with backup.

UI (client)hasBundlePatch

dsh-session-tree

An enhanced session tree for the DSH sidebar: the official ui-workspace tree plus tags, tag grouping, drag-to-move across workspaces, and a delete action that can back sessions up first.

Forked from @deepseek-ai/dsh-client-ui-workspace (0.1.7 tree) and shipped as a separate bundle so the official package stays untouched.

Requirements

DSH0.2.1-rc.2 (developed and tested against it)
@deepseek-ai/cordis~4.0.5
React18.2+
ModeWeb UI (web or desktop profile)
Companiondsh-session-manager — required for tags, moves and deletes

Earlier DSH releases are untested.

Install

Two packages, in this order:

dsh plugin --profile <your-profile> add github:minhaoli/dsh-session-manager
dsh plugin --profile <your-profile> add github:minhaoli/dsh-session-tree

Then disable the official ui-workspace row, because this package registers the same uiWorkspace service:

# ~/.dsh/profiles/<profile>/cordis.patch.yml
- id: ui-workspace
  disabled: true

Reload the page after installing — the client half is served as a separate module.

The session-manager dependency

The browser half does not talk to the host over an IPC bridge. It calls a same-origin REST API under /api/dsh-session-manager/:

CallEndpoint
Read all tagsGET /api/dsh-session-manager/tags
Write one session's tagsPUT /api/dsh-session-manager/tags
Delete sessionsPOST /api/dsh-session-manager/sessions/delete
Move sessionsPOST /api/dsh-session-manager/sessions/move

Those four endpoints are served by dsh-session-manager. Without it, tagRead() catches the failure and returns {} — the tree still renders, but every tag is empty, writes silently do nothing, and drag-to-move / delete fail. If tags look broken, check that dsh-session-manager is installed and that its REST routes registered (webServer present).

What it adds to the official tree

FeatureWhere
Tag chips on session rowssidebar.workspaces.session.row.action
Tag / move / delete menu entriessidebar.workspaces.session.menu.item
Grouping the tree by tagthe tree header
Drag a session onto another workspacethe session row
Archive and unarchivethe row menu (unarchive is the direction the GUI lacks)

The tag data lives in ~/.dsh/session-tags.json, written by dsh-session-manager, so tags survive restarts and ride along when a session moves across workspaces.

The client polls for tag refreshes every 20 seconds. That is the interval a tag written from another window shows up in this one.

Implementation notes

  • lib/index.js is a host-side placeholder — export default function apply() {}. The bundle patch mounts both halves in one row, so the host half has to exist for the package to compose.
  • lib/client.js (≈260 KB, 6015 lines) is the built fork. Its sourceMappingURL still points at @deepseek-ai/dsh-client-ui-workspace and the CSS tag keeps dataset.plugin = "@deepseek-ai/dsh-client-ui-workspace" — that is the upstream provenance, not a bug.
  • client.js defines class UiWorkspaceService extends Service and calls super(ctx, "uiWorkspace"). That is why the official row must be disabled: two registrations of uiWorkspace cannot coexist.
  • The package mounts into sidebar.workspaces.session.menu.item, sidebar.workspaces.session.row.action and shell.overlay, and injects the official client packages it builds on (dsh-api-remotes, dsh-api-session-controller, dsh-api-workspace-controller, dsh-client-connection, dsh-client-locale, dsh-client-shortcuts, dsh-client-ui-conversation, dsh-client-ui-layout, dsh-client-ui-renderer, dsh-client-ui-session, dsh-client-ui-sidebar).

Companion plugins

License

MIT — see LICENSE. The bundled client code derives from @deepseek-ai/dsh-client-ui-workspace; keep the upstream license terms in mind when redistributing.

Comments

Loading…

Similar plugins

dsh_session_folders

by EugeneVl

Session folders for the DSH web sidebar: one-level named folders per workspace, drag-and-drop or context menu to group sessions, server-side persistence. No harness changes.

Sessions & MessagesManifest valid

★ 10

↓ 164/wk

MIT

JavaScript

Oct 22, 2026

dsh plugin --profile web add dsh-session-folders

by lsdt45

DSH web plugin: hierarchical workspace tree + time-bucket view + session pinning. Fork of KannaKuron/dsh-better-workspace

Tools & CapabilitiesUI & ExperienceDevelopment & InfrastructureManifest valid

★ 1

MIT

JavaScript

Oct 23, 2026

dsh plugin --profile web add dsh-workspace-plus

Drag a session onto another workspace in the DSH sidebar and it really moves: the session-log header cwd is rewritten and the log directory is re-homed under the target project, with a progress bar wh

UI & ExperienceManifest valid

★ 0

dsh plugin --profile web add dsh-session-drag-move

by NattoCB

Adds a Workspaces / Recent-sessions switcher above the sidebar list, with a pinned-sessions group, a per-row menu (pin/unpin, copy session id), title filtering, and browser-local pin storage with a on

UI & ExperienceSessions & MessagesManifest valid

★ 1

MIT

JavaScript

Sep 10, 2026

dsh plugin --profile web add dsh-plugin-sidebar-views

by 439436269-ctrl

DSH 插件:侧栏内联的「置顶」会话分组(原生度量 + 就地搜索)。A pinned-session group in the DeepSeek Harness sidebar.

UI & ExperienceTerminal & ClientsSessions & MessagesManifest valid

★ 0

MIT

JavaScript

Oct 7, 2026

dsh plugin --profile web add @vfvrpq/dsh-pinned-sessions

by The-latest-one

DeepSeek Harness (DSH) sidebar plugin: stack-safe fork tree, two-track indentation, marquee title, leading/hover slots, and cascade purge.

UI & ExperienceManifest valid

★ 5

MIT

TypeScript

Oct 3, 2026

dsh plugin --profile web add dsh-branch-workspace-folders