- Home
- Plugins
- UI Enhancements
- dsh-better-command
dsh-better-command
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-comman
Install
dsh plugin --profile web add github:lovstudio/dsh-better-commandREADME
dsh-better-command
Lovstudio's slash-menu matching upgrade for the 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 (dshpmatchesdsh-plugin-creator).- Word-initial abbreviations score at boundaries (
dbcmatchesdsh-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):
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):
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
- Start the web UI:
dsh web. - Type
/in the composer and start an abbreviation:/dshp,/dbc,/dsh-p. - 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:
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 againstdsh-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
Related plugins
dsh-web (dsh-task-board)
zhu1090093659/dsh-web
dsh-web (dsh-web-all)
zhu1090093659/dsh-web
dsh-web-ui (dsh-task-board)
zhu1090093659/dsh-web-ui
dsh-web-ui (dsh-web-ui-all)
zhu1090093659/dsh-web-ui