DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

owenzhao /

owenzhao/dsh-plugin-session-tags

Verified

Session tags for DeepSeek Harness: name a session's state, tint its sidebar title, and see the tag on hover — synced live across windows and devices.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@15bef5dc

dsh-plugin-session-tags

Coloured tags for DeepSeek Harness sessions.

A tag is a named label, not a one-off colour: names and colours are defined together in the settings, the session title is tinted by its tag, and the tag's name shows on the row's hover card — a status vocabulary that follows you across devices, not a stray swatch on one row.

  • Sidebar row menu → 标签 opens a picker; the chosen tag tints that session's sidebar title and shows its label on the row's hover card.
  • The same picker creates a tag on the spot: type a name, pick one of six colours or any custom colour, then 新建并应用 tags the session immediately.
  • Settings → Plugins → 会话标签 renames tags, recolours them (palette or custom), deletes them, or adds an empty one.
  • Assignments and definitions persist to <DSH_HOME>/state/session-tags.json; when the host route is unreachable the browser falls back to localStorage.
  • Every window and device follows the host's event stream, so a tag set on the phone shows up on the desktop without a reload.

A tag colour is either a palette name (green, amber, red, blue, purple, gray — theme tokens, so light/dark follow the app) or an explicit #rrggbb.

Seats used

Seat Purpose
sidebar.workspaces.session.menu.item the 标签 row in a session's ... menu
shell.overlay the picker dialog
sidebar.session.row.hover the tag chip on the hover card
settings.plugins.tab tag definitions

The title colour is a generated stylesheet rule keyed on the row's own data-row-key="session:<id>" attribute; unmounting the plugin removes it and the shipped colours return.

Host route

GET  /session-tags                                          → { tags, assignments }
POST /session-tags { action: 'assign' }                     → snapshot
POST /session-tags { action: 'createAndAssign', sessionId, tag } → snapshot
POST /session-tags { action: 'tags', tags }                 → snapshot
GET  /session-tags/events                                   → that snapshot as a text/event-stream,
                                                              pushed again after every mutation

The stream is what keeps windows and devices together: each accepted mutation is written to every open stream. A page holds that stream only while it is visible — hiding it closes the connection, showing it opens a new one, and the first frame of a new stream is the current snapshot. So a sleeping phone or a hidden window keeps nothing alive, and coming back is the catch-up. A client that cannot establish a stream at all pulls /session-tags on the next reconnect attempt, so a stripped stream degrades to slow polling instead of a stale page.

Install

Desktop: Plugins → Install, then enter the package name dsh-plugin-session-tags. On the web profile:

dsh plugin --profile web add dsh-plugin-session-tags@0.2.3

While developing, point it at a local directory:

plugin_manager install_bundle → /absolute/path/to/dsh-plugin-session-tags
—/ 5

No ratings yet

Verified DSH bundle

Commit 15bef5dc6915

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout