gaowei-AFK/dsh-prompt-polish0

dsh-prompt-polish

Prompt polish ✨ — a DeepSeek Harness WebUI plugin that adds a one-click button to rewrite rough input into a structured, professional prompt, written back into the input box.

AI 분석

核心用途是在输入框工具栏添加“润色”按钮,调用 LLM 将碎片化的草稿自动重写为结构化、专业的提示词并写回输入框。适合希望提升提问质量和模型回复效果的用户。

패키지
dsh-prompt-polish
버전
0.1.0
라이선스
MIT
최근 업데이트
2026. 8. 26.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:gaowei-AFK/dsh-prompt-polish

dsh-prompt-polish

A DeepSeek Harness WebUI plugin that adds a one-click Prompt Polish ✨ button to the input toolbar. Rewrite a rough, fragmented request into a structured, professional prompt — written straight back into the input box.

GitHub topic: dsh-plugin

What it does

  1. You type a rough request into the input box.
  2. Click ✨ 润色 at the right end of the toolbar.
  3. The plugin calls your configured LLM (DeepSeek by default) to rewrite the request into a clear, actionable prompt.
  4. The polished text replaces your draft. Review it, then send normally.

Polish is non-destructive and reviewable — nothing is sent automatically.

Install

If your profile uses dshmarket, install from the marketplace UI. Otherwise:

dsh plugin --profile web add dsh-prompt-polish

Then restart the WebUI so the bundle is loaded.

Building from source (e.g. while developing): the published package ships pre-built lib/ artifacts. If you must build yourself, run pnpm install && pnpm build (uses tsdown).

Configure

The plugin is mounted via its cordis.patch.yml. Override defaults by supplying config in the patch, or pass provider/model per request from the client:

- insert:
    - id: prompt-polish
      name: 'dsh-prompt-polish'
      config:
        provider: openrouter
        model: deepseek/deepseek-v4-flash-0731
        maxTokens: 2000
SettingDefaultDescription
provider(from request or unset)LLM provider to use for polish
model(from request or unset)Model id to use for polish
maxTokens2000Output token cap per polish pass

If neither the config nor the request supplies provider/model, the request is rejected (no model route available) — configure one of the two so polish is always routable.

Endpoint

POST /dsh-prompt-polish/polish (WebUI server, same-origin only)

{ "text": "..." }

Response:

{ "ok": true, "text": "the rewritten prompt", "truncated": false, "provider": "...", "model": "..." }
  • text — the polished prompt.
  • truncatedtrue when the model hit the token cap; the text is still usable and is written back into the box.
  • On failure: { "error": "..." } with 4xx.

The endpoint enforces same-origin (Origin must match Host) to prevent cross-site abuse.

Architecture

  • Server (src/index.ts) — registers the HTTP route, streams the LLM via ctx.llm.stream + BlockAssembler, and returns the rewritten text. Peer deps: @deepseek-ai/cordis, @deepseek-ai/dsh-llm.
  • Client (src/client/index.tsx) — registers a button on the conversation.input.right slot, fetches the endpoint, and writes back via inputActions.setDraft. CSS is self-contained (one injected `` tag) so the browser bundle builds with a plain tsdown config.

Both halves build with tsdown. The client bundle is emitted in DSH's window.__ModuleLoader__.load({ id, factory }) format and externalizes react / react/jsx-runtime to the browser module table.

License

MIT. See LICENSE.