Bundle
dsh-plugin-cmdk
Command palette for DeepSeek Harness (Cmd+K) — new chat, jump to session, switch model and reasoning effort, permissions, slash commands, theme, language and settings, all from one fuzzy-searchable bar.
- Source
- ivanearisty
- License
- MIT
- Updated
- Updated 20 hours ago
Readme
# dsh-plugin-cmdk A command palette for DeepSeek Harness. Press `⌘K` (`Ctrl+K`), type a few letters, hit enter — new chat, jump to a session, switch model, change permissions, run a slash command, flip the theme, open any settings page. The same bar ChatGPT, Slack, Linear and Notion put on `⌘K`, for the Harness. ## Install ```sh dsh plugin --profile web add dsh-plugin-cmdk ``` Not on npm yet — until it is, install straight from GitHub: ```sh dsh plugin --profile web add github:ivanearisty/dsh-plugin-cmdk ``` Client-only — it takes effect as soon as the page reloads. ## Use | Key | Action | |---|---| | `⌘K` / `Ctrl+K` | Open the palette | | `⌘⇧P`, `⌘/` | Same thing (VS Code / Firefox-safe aliases) | | `↑` `↓` (or `Ctrl+N` / `Ctrl+P`) | Move | | `↵` | Run, or open a sub-page | | `⌫` on an empty query | Back out of a sub-page | | `Esc` | Close | ## What's in it Everything is fuzzy-matched, so `swm` finds **Sw**itch **m**odel. - **Chats** — New chat (and per-workspace), Jump to session (shows running state and age), rename the current chat - **Session** — Switch model, with a sub-page for reasoning effort where the model exposes one; change permissions; run any slash command the host offers - **Views** — jump to any tab the current conversation shows - **Appearance** — theme, language, sidebar - **Settings** — open settings, plus a row for every settings page installed Recently used commands surface first on an empty query. ## How it works The catalog is **rebuilt on every open** from the harness's live services, so it can never show a stale session list or an outdated model set. Anything another plugin adds — a new view tab, a new settings page, a new slash command — shows up automatically without this plugin knowing about it. The palette UI is hand-rolled on React and the harness's own design tokens. It deliberately does **not** depend on `cmdk` or `kbar`: both pull a dialog library, and a command bar does not justify that weight in the boot bundle. ~30 kB minified, ~9 kB gzipped. ## Permissions and data Reads and drives only in-page harness services (sessions, workspaces, theme, locale, model directory, commands). **No network calls, no telemetry, nothing leaves the browser.** Registers one overlay and one `keydown` listener. Where the harness keeps a feature's state private, the palette clicks the same accessible control you would (`role="tab"`, `aria-label`), so an action takes exactly the path a mouse takes. ## Optional companion With [`dsh-session-search`](https://github.com/ivanearisty/dsh-session-search) installed, a **Search messages…** row opens full-text search over every conversation. Detected at runtime; not required. ## Settings The plugin registers a `dsh-plugin-cmdk` settings namespace, so it appears as a card under **Settings → Plugins** like any other installed plugin, and its section lives in `settings.yaml`: ```yaml dsh-plugin-cmdk: aliasChords: true # keep the Cmd+Shift+P and Cmd+/ aliases bound extraChords: [] # additional KeyboardEvent.code chords, e.g. ["Shift+KeyP"] ``` ## Compatibility - DeepSeek Harness `0.1.x` (developed against `0.1.1-rc.2`), `web` profile. - Node `^22.19 || >=24`. - Harness packages are **optional peer dependencies**, resolved from the host installation. ## Known limitations - Chords are fixed in this version (`⌘K`, `⌘⇧P`, `⌘/`) and not yet rebindable. - Firefox reserves `⌘⇧P` for a private window; `⌘K` is the primary chord for exactly that reason, and `⌘/` is the always-safe fallback. - Model and slash-command pages need an active session; on a blank session those rows are correctly absent. ## License MIT
Install
dsh plugin --profile web add github:ivanearisty/dsh-plugin-cmdk
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-plugin-cmdk from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.