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 (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):
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 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 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 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