dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Dense translucent-glass Universal Palette for DeepSeek Harness Web — federates Commands, Sessions, Models, Conversation Hits with rich secondary actions and deterministic context/frecency ranking.
Language: English | 简体中文
A command, session, model, and history surface for DeepSeek Harness Web — one keystroke, everything running in the current workspace.
DSH grows capabilities through plugins: each release and each community plugin can add Host commands, client command UIs, models, and reference sources. The native surfaces for these live in different places — the slash menu, the model selector, the sidebar, the composer's @ menu — and none of them answer the one question a keyboard-first user actually has: what can I do right now, in this workspace, and how do I get there?
Universal Palette gives that shared search controller two presentations: contextual Composer Search and a global Floating Palette. It owns no second catalog: every command, session, model, and history hit it shows comes from DSH's public Client APIs at query time, so the Palette is automatically correct as DSH and its ecosystem change.
It is built to stay out of the way: DSH's own design tokens, glass over the native surface, locale-following copy, and zero behavior change for anything it does not have a verified public contract with.
dsh plugin --profile web add @yunmin311/dsh-universal-palette@0.2.1
dsh --profile web
Composer search
/find from the native DSH slash menu, or use the Search button. Bare / remains owned by DSH./find query stays in the Composer, while the Search button opens the same search directly from the current draft without inserting /find.conversation.hero.composer.dock seat — on hosts without it (including stock 0.1.2-rc.1), Composer Search fails closed on the Hero surface instead of falling back upward; see Compatibility.Global search
Alt+Q on Windows/Linux or Cmd+Shift+K on macOS.Existing custom shortcuts are preserved. Esc closes the Palette; outside clicks close a Floating Palette and pass through to DSH.
| Gesture | Result |
|---|---|
/ | Use the native DSH slash menu |
Search button or /find | Open Composer Search from the Composer — downward Morph in a zero-turn Hero session, upward Morph when active |
Alt+Q (Windows/Linux) or Cmd+Shift+K (macOS) | Toggle the Global Floating Palette |
| Type | Fuzzy search across commands, models, sessions, and history |
↑↓ | Move selection |
Enter | Open / run the selected row |
Tab | Action panel (infrastructure; current built-in providers expose primary actions only) |
Esc | Close |
In an active conversation, the Composer stays the only query input and results appear in a compact DSH-native surface directly above it. In a zero-turn Hero session, the same Search button or /find entry opens the same surface directly below the Composer in normal document flow.
The global shortcut always opens the Floating Palette. Zero-turn uses the compact 540px presentation; active conversations use the full 600px presentation shown at the top of this page.
| Surface | Source contract | Action | Needs active session |
|---|---|---|---|
| Commands | ctx.remote.commands.list / execute (official Host catalog) | Execute | Yes |
| Models | ctx.modelDirectories (official model directory) | Select | Yes |
| Sessions | ctx.sessions (official session controller) | Open | No |
| Conversation Hits | ctx.sessions.search (official FTS boundary) | Open | No |
Interoperability is verified against real installed plugins — see the interoperability matrix.
Host command federation: automatic. Host commands from community plugins (e.g. dsh-tui-command-ext's /clear /rename /unarchive /compact-fast, or a /code-review plugin) appear and execute with zero adaptation — the Palette reads the live official catalog.
dsh-keys-palette: optional public bridge. Registers one universal-palette.open action on its public keys.actions registry so you can bind a shortcut to open the Palette. Absent plugin, zero effect.
Tested coexistence: dsh-tui-command-ext, dsh-session-workbench, dsh-reference-anything, dsh-keys-palette, dsh-market — all verified installed together on real DSH boots.
No private coupling. Session Workbench and Reference Anything publish no public handoff API; the Palette integrates nothing beyond coexistence and documents upstream gaps instead of hacking around them.
This is not "supports all plugins" — only the contracts above are consumed, capability-detected, with zero behavior change when absent.
Universal Palette federates DSH's public contracts — you do not integrate with the Palette to become visible in it.
ctx.commands.register) and the Palette discovers you automatically from the live catalog on every query. No Palette dependency, no adapter, no release coordination.keys.actions registry, which the Palette uses to contribute one bindable "open" action.commandUi commands, private registries, DOM state, and internal routes are off the table — the Palette keeps plain coexistence there and waits for a public API (upstream gaps).WAIT_PUBLIC_API.Universal Palette currently has no Provider SDK, and none is planned. The preferred ecosystem path is: register with DSH, and the Palette federates public contracts. Details and verified cases: interoperability matrix.
Verified against:
@deepseek-ai/dsh@0.1.2-rc.1 (baseline, deepseek-ai/deepseek-harness@76fda729799fe9b3848dbe2c211d4b231032b81e)@deepseek-ai/dsh@0.1.5-rc.1 (API drift verified; compatible seams only)Other DSH revisions are unverified. Details: COMPATIBILITY.md, COMMAND_COMPATIBILITY.md.
The Palette consumes only the following public Client seams; these are compatible between 0.1.2-rc.1 and 0.1.5-rc.1:
ctx.remote.commands.list — unchanged array shapectx.sessions.list / binding / search / open — unchanged shapesctx.workspaces.list / create — unchangedctx.modelDirectories.directoryFor / load / select — unchangedctx.inputTriggers.registerSource / sessionOf / adjudicate — envelope field renamed images→attachments (Palette does not submit images)ctx.slots.spec / subscribe / inject / register — unchanged names for shell.overlay, conversation.input.left, conversation.input.overlay, conversation.hero.composer.dock, conversation.composer.dock, sidebar.footer.actionlocale, plugin lifecycle — unchangedBreaking changes in 0.1.5 (e.g. commands.execute 3rd param images→attachments, session format V3, wire seedLength→isSeeded, history events restructure) do not intersect the Palette's call surface.
0.1.2-rc.1 / 0.1.5-rc.1: no conversation.hero.composer.dock → Composer Search fails closed (Search button disabled with reason; /find claimed but answers capability error; no upward fallback).conversation.hero.composer.dock. The verified host is the maintainer's fork (yunmin311/deepseek-harness, branch feat/hero-composer-dock at SHA 321bf88d10e0176674226d02de59d3e0bd79579d). This is not upstream support; the fork is maintained as the long-term enhanced host for the full Hero experience.apps/desktop Electron shell + apps/desktop-host), but no installers are available on https://download.deepseek.com/_/harness/desktop/stable/... (404 at review time).dsh web) exist but are not in the verified matrix.deepseekagent.io / third-party sites are not official DeepSeek products.localStorage under the Palette's own namespace.pnpm run check — typecheck + unit tests (including the Keys Palette bridge lifecycle).pnpm run build — host ESM face + browser CJS bundle with a purity gate.scripts/command-compat.mjs), multi-plugin coexistence probes (scripts/interop-probe.mjs), and recorded evidence under evidence/.0.1.2-rc.1; other revisions are unverified.commandUi commands (e.g. popup pickers) are not discoverable — DSH exposes no public enumeration yet (upstream gaps).pnpm install
pnpm run check
pnpm run build