Introduction

In DSH, if a model calls a tool to ask a single question at a time, it creates multiple rounds of interaction when multiple items need to be confirmed before a task begins. dsh-survey consolidates these questions into a survey: the model calls do_a_survey once to submit a list of questions, users fill them out and submit within the same interface, and the answers are returned as structured data.

What is this

dsh-survey is a DeepSeek Harness (DSH) plugin, repository jinhuang712/dsh-survey, with an MIT license. It provides the do_a_survey tool, which allows submitting 1 to 10 or more questions to the user at once. After installation, the do_a_survey tool and the survey UI are permanently available in the Web profile.

Core Capabilities

Question Types

dsh-survey supports five question types:

  • single
  • multi
  • yes-no
  • compare
  • open

Rendering Modes

The Web UI renders the survey based on the mode:

  • compact: Single question card, used for exactly 1 question.
  • inline: Embedded in the conversation column, used for multiple questions and without compare.
  • overlay: Full screen 1180px display, used for compare or wide canvases.
  • grid: Full screen grid matrix, used for large amounts of simple questions.

Answers and Skipping

Skipping is supported for each question. When submitted, skipped questions are marked as skipped: true. Answers are returned in the following data format:

{ id, selected, custom?, skipped? }

If no one submits within 30 minutes, the survey will time out and fail, rather than hanging indefinitely.

Rendering and Accessibility

  • Supports full Markdown rendering and color syntax {color:red}text{/color}.
  • Displays a two-column question → answer recap after submission.
  • Supports English and Chinese interfaces and follows the Web UI language settings.
  • Supports keyboard focus and radio/checkbox accessibility semantics.

Installation and Enablement

Install to web profile:

dsh plugin --profile web add "github:jinhuang712/dsh-survey#v1.1.0"

After installation, restart dsh web and refresh the page.

If the dsh profile directory is a pnpm workspace, you need to pass the -w parameter:

dsh plugin --profile web add -w "github:jinhuang712/dsh-survey#v1.1.0"

peerDependencies required by package dependencies:

@deepseek-ai/dsh-tools ^0.1.0-rc.6
cordis ^4.0.0-rc.7
react ^18.2.0

The accompanying skill dsh-survey is registered upon installation, including usage guides for the four modes, five question types, and the dynamic-plugin fallback recipe.

Typical Usage

Tell the model what to collect, and the model will subsequently call:

do_a_survey(mode, questions)

Where mode is required. Common choices are:

  • Exactly 1 question: use compact.
  • Multiple questions without compare: use inline.
  • Has compare or needs wide canvas: use overlay.
  • Large number of simple questions: use grid.

An inline example would include questions of types single, multi, boolean, and open. After submission, the model receives structured answers for each question, rather than a paragraph of natural language that needs to be parsed by itself.

Use Cases and Notes

Suitable for scenarios requiring confirmation of multiple options, ranges, boolean flags, or notes all at once. Since answers are returned as data and each question can be skipped, it is well-suited to concentrate the decisions required by the model into a single user interaction.

Notes before use:

  • No explicit permission declaration is provided in the source; the plugin runs with the current dsh process permissions. You should check the source code and MIT license before installing.
  • If not submitted within 30 minutes, the survey will timeout and fail.
  • The installation command is fixed to the Web profile; if the profile directory is a pnpm workspace, you must add -w.

Links

  • GitHub: https://github.com/jinhuang712/dsh-survey
  • Plugin Directory Page: https://www.skillhub.cn/plugins/jinhuang712/dsh-survey