DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
S

dsh-session-palette

Session Palette

Spotlight-style session switcher for DeepSeek Harness: one hotkey, search every session, Enter to switch.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:alexmaze/dsh-session-palette#ce38b5d6682dd0b152e2ce1b4e08bc86e4f0f91e
READMECompatibilityVersions

Compatibility and provenance

Session Palette is published as dsh-session-palette and currently resolves to version 0.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/26/2026

Versions

0.1.0stable
10/26/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/26/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Client Ui Skill Explorer@linxin666/dsh-client-ui-skill-explorerDSH skill center: browse loaded skills by source (bundled / project / user / custom / runtime), enable or disable, create and delete, in a web GUI panel.Better Sidebardsh-better-sidebarBetter Sidebar for DSH — file tree, editor, changes, tasks and side chat in one column, separate for every conversation. Also exposes a service other plugins use to register sidebar tabs and file viewers.Client Ui Git Graph@linxin666/dsh-client-ui-git-graphExternal dsh web GUI plugin: a blank-session git branch selector + Git graph, with real host-side git operations and guards, as a dsh profile bundleClient Ui Market@linxin666/dsh-client-ui-marketWorkshop browser card: browse skins, pets and community plugins from dsh-market.com and install them in the GUI (assets into the DSH home directories, plugins through the optional plugin manager).

README

dsh-session-palette

English | 简体中文

A Spotlight / Alfred-style session switcher for DeepSeek Harness.

Press ⌘⇧P (Ctrl+Shift+P on Windows/Linux), type a keyword, and jump to any session across every workspace. Nothing to type? The panel lists all sessions, newest first. ↑ / ↓ to select, Enter to switch.

Session Palette — light theme Session Palette — dark theme

┌────────────────────────────────────────────────────────────┐
│  🔍  Search sessions or workspaces…                  esc   │
├────────────────────────────────────────────────────────────┤
│  ▢  Fix the expired login state                      ↵     │
│     default-workspace · 3h ago · 1.2M tokens                │
│  ▢  Refactor the plugin loader                              │
│     dsh-core · yesterday · 86.4K tokens                     │
│  …                                                          │
├────────────────────────────────────────────────────────────┤
│  15 sessions                  ↑↓ select  ↵ open  esc close  │
└────────────────────────────────────────────────────────────┘

Features

  • One global shortcut — ⌘⇧P / Ctrl+Shift+P; rebind it in Settings → Keyboard Shortcuts.
  • All sessions by default — an empty query lists every session, ordered by the latest conversation.
  • Search across everything — session title, workspace name, working directory, and session ID; multiple space-separated terms are ANDed and matching is case-insensitive.
  • Keyboard-first — ↑ / ↓ to move, PageUp / PageDown to page, Home / End to jump, Enter to switch, Esc to close. Press the shortcut again to dismiss the panel.
  • At most 10 rows visible — longer results scroll inside the panel and the active row is kept in view.
  • Useful metadata per row — session title, workspace, relative time of the latest conversation, and total token consumption.
  • Token breakdown — hover the consumption figure to see input, output, cache-read, and cache-write totals.
  • Sensible filtering — subagent sessions, blank "New Session" rows, and archived sessions are hidden, because they cannot be switched to directly.
  • Live data — the list follows session list and projection updates while the panel is open; missing tokenUsage projections are loaded on demand for the visible rows.
  • Bilingual UI — follows the DSH locale (English / 简体中文).

Install

Requirements: DSH 0.2.x with UI plugin support (tested with 0.2.1-rc.2), on Desktop or Web.

Install the tagged release directly from GitHub:

# Desktop
dsh plugin --profile desktop add "github:alexmaze/dsh-session-palette#v0.1.0"

# Web
dsh plugin --profile web add "github:alexmaze/dsh-session-palette#v0.1.0"

The CLI installs the package and appends its bundle layer to the profile's dsh.profile.bundles. If the bundle is not enabled automatically, enable Session Palette on the Plugins page. If the running window has not picked the plugin up yet, refresh the page (⌘R) or restart the app.

You can also install it through the UI: Plugins → Add plugin and paste

github:alexmaze/dsh-session-palette#v0.1.0

Git installs are pinned to the ref you pass. To update, remove the package and add a newer tag or commit. To uninstall:

dsh plugin --profile desktop remove dsh-session-palette

If the plugin's row remains in dsh.profile.bundles, remove it there or disable it on the Plugins page.

Usage

KeyAction
⌘⇧P / Ctrl+Shift+POpen / close the palette
↑ / ↓Move the selection
PageUp / PageDownMove by 10 rows
Home / EndFirst / last row
EnterSwitch to the selected session
EscClose the palette
Click a rowSwitch to that session
Click the backdropClose the palette

Notes:

  • The shortcut is a normal DSH command: it appears in Settings → Keyboard Shortcuts, participates in conflict detection, and can be rebound per device/platform.
  • On Linux Web the default is intentionally unbound because browser key restrictions differ; assign a key in the settings page.
  • Some browsers reserve ⌘⇧P / Ctrl+Shift+P for printing or other actions. The Desktop app is the recommended way to use this plugin; if the Web binding is swallowed by the browser, pick another key.

What "total consumption" means

The figure comes from the tokenUsage session projection, summing four provider-reported buckets:

uncachedInputTokens + outputTokens + cacheReadTokens + cacheWriteTokens

This is a token total, not money. Cache hits are included, so the number is usually much larger than input + output alone. Hover the figure for the four-way breakdown.

How it works

  • The host half is a nearly empty Loader row. Its job is to make @deepseek-ai/dsh-client-modules discover the package's browser half through the dsh.client declaration.
  • The browser half is shipped as a lazy-CJS bundle (window.__ModuleLoader__.load({ id, factory })) and only depends on shell platform modules: react and @deepseek-ai/dsh-client-store.
  • Session data comes from the global ctx.sessions.list; workspace ownership comes from ctx.workspaces.list (sessionIds is authoritative); switching calls ctx.uiWorkspace.openSession(sessionId).
  • The shortcut is registered with ctx.shortcuts.register(); the panel is registered into the shell.overlay slot and marked with data-shortcut-modal="session-palette", so background shortcuts are blocked while it is open, while the palette's own shortcut toggles it closed.
  • Rows without a cached tokenUsage value trigger ctx.sessions.refreshProjections() for the visible window and update live when the projection arrives.

Package layout:

dsh-session-palette/
├── package.json          # dsh.bundle + dsh.client declarations
├── cordis.patch.yml      # inserts the single Loader row
├── lib/index.js          # host half (no host behavior)
├── lib/client.js         # browser half: shortcut, overlay, search, switch
├── locale/{en,zh}.json   # Plugins page display metadata
├── icon.svg              # Plugins page icon
├── test/client.test.mjs  # pure row/search/format + registration tests
└── .github/workflows/    # CI: syntax check + unit tests

Development

No build step is required: the host entry is plain ESM and the browser entry is a self-contained lazy-CJS bundle.

git clone https://github.com/alexmaze/dsh-session-palette.git
cd dsh-session-palette

# Link the working copy into a development profile
dsh plugin --profile web add "link:$PWD"

node test/client.test.mjs

Edit lib/client.js, then refresh the DSH page (or rely on HMR if it is enabled). The test suite covers row filtering (archived / subagent / blank), multi-term search, workspace ownership, token totals (including the legacy totals wrapper), time formatting, and shortcut/slot registration.

Compatibility and limitations

  • Tested with DSH 0.2.1-rc.2 on macOS. The plugin uses the public client plugin, shortcut, session, workspace, and overlay APIs. DSH's plugin API is still evolving; if a future release changes these surfaces, the plugin may need an update.
  • Archived sessions are hidden because DSH requires unarchiving before they can be opened. Subagent sessions and blank New Session rows are hidden as well.
  • Token usage can lag for cold sessions without a projection cache. The row shows — until the lazy projection load completes.
  • No monetary cost is shown because DSH does not expose per-model pricing to the client.

License

MIT © Alex Yan