DDDPG/dsh-plugins--plugins-dsh-tab-complete ↗★ 0
dsh-tab-complete
DSH web plugin: Tab completes the highlighted slash-menu candidate in the composer (commands, skills, subagents, @-file references), without executing anything.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:DDDPG/dsh-plugins#543d4b046af0c67602be6d16cba7f6ed94239247&path:plugins/dsh-tab-complete说明文档
阅读完整 README ↗dsh-tab-complete
A DeepSeek Harness web plugin: Tab completes the highlighted slash-menu candidate in the composer input, without executing anything.
Part of the dsh-plugins collection.
Behavior
| Highlighted candidate | Tab |
|---|---|
Command with input (/goal, /feedback) | Completes /goal via the product's own claim path — the token is colored and the parameter hint shows; keep typing args, then Enter executes. |
Bare command (/compact, …) | Completes /compact as plain text with no trailing space; the menu stays open on the token, so the next Enter executes it exactly like typing it manually. |
popupSelect command (/resume, /model, …) | Completes /resume bare (no trailing space) — the menu stays open and the next Enter opens the command's second-stage selection panel; a trailing space would silently break that panel trigger. |
| Skill / subagent | Completes /skill-name / @subagent (delegated to each source's own pick). |
@-file reference (dsh-at-file) | Completes @relative/path from the candidate's value (not the display name); directory candidates keep their / suffix. |
| Menu closed | Tab keeps its default focus behavior. |
Nothing executes on Tab; popupSelect shells (/model, /resume, …) are never
opened by Tab itself — they stay ready for the user's own Enter (which opens
them via the product menu pick). IME composition is never intercepted, and Tab
with a modifier key (Shift/Ctrl/Alt/Meta) always keeps its default browser
behavior. While the menu is open but candidates are still loading, Tab keeps
focus in the composer for 1.5s, then yields to the browser default.
How it works
- Host half () is empty — it only exists so the package mounts as a loader entry.