Bundle
@lovstudio/dsh-better-command
Separator-transparent, abbreviation-aware slash-menu matching for the DeepSeek Harness web surface: provides the slashMatcher service the ui-commands and ui-skill sources consult, so `dshp` matches `dsh-plugin-creator` and `dbc` matches `dsh-better-command`.
- Source
- lovstudio
- License
- MIT
- Updated
- Updated 15 hours ago
Readme
# dsh-better-command Lovstudio's slash-menu matching upgrade for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) web surface. The plugin provides the `slashMatcher` service — a separator-transparent, abbreviation-aware candidate ranker — that the `/` menu sources (ui-commands and ui-skill) consult at candidate time. With the plugin mounted, `dshp` matches `dsh-plugin-creator`, `dbc` matches `dsh-better-command`, and `dsh-p` matches `dsh-plugin-creator`. This is a **Lovstudio** plugin, not a DeepSeek-AI package, distributed under the `@lovstudio` scope. ## What it does The slash pipeline asks each `/` source for menu candidates per keystroke. The harness command source filters by ordered-subsequence matching; the skill source filters by literal name prefix — so a skill like `dsh-plugin-creator` is unreachable by typing `dshp`. Official harness builds expose no matcher extension point, so this plugin attaches itself at runtime: it reaches the `inputTriggers` registry, and for the `command` and `skill` sources replaces `candidates` with a wrapper that fetches the source's full list and ranks it with the plugin's matcher. Pick, space and enter adjudication are untouched. The matcher is also published as the `slashMatcher` service for sources that want to consult it directly. - `-`, `_`, `.`, and whitespace are transparent in names and queries (`dshp` matches `dsh-plugin-creator`). - Word-initial abbreviations score at boundaries (`dbc` matches `dsh-better-command`). - Matching is case-insensitive and name-only; descriptions never match. - Ranking tiers: literal prefix > separator-stripped prefix > boundary-weighted subsequence score; equal scores keep source order. The plugin is fully self-contained: it imports no `@deepseek-ai` runtime symbols (the service contract is a structural mirror), and its browser half is served to the page by the client module system once composed. ## Install Prerequisites: Node.js 22.19+ or 24+, pnpm 11 (`corepack enable` or `npm i -g pnpm`) — `dsh plugin` forwards to pnpm inside the profile directory. **From a DeepSeek Harness source checkout (recommended — you get the harness source too):** ```sh git clone --depth 1 --branch dsh-v0.1.2-rc.1 https://github.com/deepseek-ai/deepseek-harness.git cd deepseek-harness && pnpm install && pnpm run build pnpm dsh plugin --profile web add -w github:lovstudio/dsh-better-command#v0.1.2 pnpm dsh web ``` **Without a checkout (npx; compiled harness only):** ```sh npx @deepseek-ai/dsh plugin --profile web add -w github:lovstudio/dsh-better-command#v0.1.2 npx @deepseek-ai/dsh web ``` `web` is the profile `dsh web` boots. The tag pins a commit whose `lib/` is prebuilt and committed, so nothing is compiled on your machine. Verified on 2026-09-04 against `dsh-v0.1.2-rc.1`. Remove with `dsh plugin --profile web remove @lovstudio/dsh-better-command`. ## Use 1. Start the web UI: `dsh web`. 2. Type `/` in the composer and start an abbreviation: `/dshp`, `/dbc`, `/dsh-p`. 3. The menu surfaces the hyphenated commands and skills the default filters would miss. ## Local development Keep this checkout outside the DeepSeek Harness repository. Install and build it here, then link the package into an isolated development profile: ```sh pnpm install pnpm run watch DSH_HOME=/Users/mark/.dsh-lov-dev pnpm --dir /path/to/deepseek-harness dsh plugin --profile web add -w link:/path/to/dsh-better-command ``` The browser module system consumes the generated `lib/client.js`, and the Harness Client HMR watcher detects rebuilds. Package-manifest, patch, and bundle-membership changes require a profile restart. The package build does not import a Harness tsconfig or workspace source path. ## Notes - The attachment reads `InputTriggerService.live.sources`, a TypeScript-private field of dsh-client-ui-input-trigger. It is feature-detected: on a harness build where that shape changed, the plugin logs one console warning and stays inert. Verified against `dsh-v0.1.2-rc.1`. - Uninstalling (or disposing) the plugin restores the built-in filters exactly. - Matching is a per-keystroke browser computation; it never reaches a model request or the session log. ## License [MIT](LICENSE)
Install
dsh plugin --profile web add github:lovstudio/dsh-better-command
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 lovstudio-dsh-better-command 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.