DeepSeek Harness plugin

dsh-question-composer

Enhanced ask_user_question composer for DeepSeek Harness: batch tabs, number-key answers, and a confirm summary on top of the stock question flow

Jump to install

Source facts

Repository
1479650473/dsh-question-composer
Latest update
Aug 16, 2026
Category
Security & Permissions
GitHub stars
0
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/1479650473/dsh-question-composer
Plugin: dsh-question-composer
Author: 1479650473

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

dsh-question-composer

An enhanced ask_user_question composer for DeepSeek Harness: batch question tabs, number-key answers, a confirm summary, and a dedicated plan-review decision card — layered on the stock question flow.

When this plugin is mounted, it replaces the stock @deepseek-ai/dsh-client-ui-user-questions composer: the composer chain renders the first entry whose selector matches, so every pending question interaction hands the question seat to the enhanced flow. A request that declares the plan-review presentation intent renders its own decision surface; every other request takes the generic flow.

Features

  • Batch tabs — multiple pending questions render as a tab strip; answers on each tab are collected before a single batch submit.
  • Number-key answers19 pick the Nth option of the visible question, Enter confirms.
  • Confirm summary — the final submit shows a summary of all answers (single-choice, custom, multi-select) before sending.
  • Plan-review routing — a question whose intent declares plan-review renders a decision card (approve / reject with reason) instead of the question flow.
  • Bilingualzh / en dictionaries on its own question-composer locale namespace.

Requirements

  • DeepSeek Harness >= 0.1.0-rc.6 (installed through the harness's package manager or a profile that resolves @deepseek-ai/* packages).

Installation

dsh plugin add dsh-question-composer

The dsh.bundle manifest (cordis.patch.yml) mounts the server-side plugin entry and the dsh.client declaration injects the browser half immediately (platform: web), so a profile restart is enough to enable it.

> If you want to keep the stock composer as a fallback, keep @deepseek-ai/dsh-client-ui-user-questions mounted too — the chain order decides which composer renders first.

Screenshots

(TBD — added after the first tagged release.)

Development

npm install        # or pnpm install
npm run typecheck  # tsc --noEmit
npm run test       # vitest (jsdom-free, node environment + __ModuleLoader__ harness)
npm run build      # tsc declarations + esbuild browser bundle → lib/

Architecture

  • src/client/index.ts — client plugin body: registers the question-composer dictionaries and injects the composer into the conversation.composer slot chain (selector-routed on the question interaction carrier).
  • src/client/QuestionComposer.tsx — the enhanced flow (tabs, number keys, confirm summary).
  • src/client/PlanReviewPanel.tsx — the plan-review decision surface.
  • src/client/locales.tszh / en dictionaries.
  • scripts/build.mjs — esbuild bundle with the harness's window.__ModuleLoader__.load wrapper and CSS Modules compiled to an injected <style> tag.
  • tests/ — keyless unit tests; official client artifacts load through native-require wrappers (tests/aliases/) because their __ModuleLoader__ CJS bundles shadow Node's module variable.

License

Apache-2.0 — see [LICENSE](LICENSE).