Type normally; about two seconds after you pause, it rewrites your draft into a version more likely to get a good answer, leaving pasted code, links and long text untouched and keeping multi-part questions numbered.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-input-rewriter
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:feiertu/dsh-input-rewriter
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
This plugin publishes its README in Chinese only.
一个 DeepSeek Harness(dsh)插件:帮你把问题问得更好,而且是全自动的。
你正常打字就行。停下来约 2 秒,它就悄悄把你刚才的话改写成更容易得到好答案的样子,直接显示在输入框上方。你不用点任何按钮,也不用学什么「提问技巧」。
它能帮你做什么
- 全自动,零打扰:停止输入约 2 秒就改写,不用点任何按钮。你接着改,它就接着更新,不会把过期的旧结果发出去。
- 你贴的代码、网址、长文本,一律原样保留:它会自动认出问题里「不该乱动」的部分——代码、网址、一大段数据——只改写你真正「提问」的部分,绝不动你的原文,省得 AI 答非所问。
- 看得懂你在问什么:它能判断你问的是生活、工作、学习、写代码、写作、安全还是别的,然后套用对应的套路,帮你补全目标、结构和要求。
- 一次问好几件事,一件都不漏:多个问题会一个个帮你保留、编号、排好顺序,只补说明,绝不把你的意思改没。
- 不碰你的秘密:它只记住你「选了哪个模型」,从来不接触你的密钥、密码。
怎么安装
先确认你电脑上已经装好了 dsh:打开终端,输入 dsh --version,能看到版本号就说明装好了。
然后,复制下面这一行,粘贴到终端里,回车:
dsh plugin --profile web add dsh-input-rewriter
看到命令最后出现 Done,就说明装好了。
如果上面这行报错装不上,就用这一行代替:
dsh plugin --profile web add github:feiertu/dsh-input-rewriter
装完怎么用
- 重启
dsh web。 - 刷新浏览器页面。
- 完事。以后你打字停下约 2 秒,输入框上方就会出现改写好的版本。
如果一直没反应,多半是还没选「改写模型」:去 dsh 的设置里选一个模型就行。模型的密钥由 dsh 自己管,这个插件不碰。
项目代码结构
src/ 宿主面(Node 进程,完整 Cordis 插件)
├── index.ts 插件入口:加载 playbook → 注册 ctx.rewrite 服务 → 注册 RPC
├── core.ts 框架无关改写核心(LlmLike 抽象 + createRewriter),零 dsh 依赖
├── playbooks.ts 加载 skills/*.md 的 playbook 原文
├── skills.ts 把 playbook 注册为 dsh skill(name 形如 input-rewrite-<scene>)
├── settings.ts 设置命名空间与 schema(provider/model + 防抖时间)
├── rpc.ts 宿主↔浏览器 RPC 通道 /input-rewriter
└── rewrite/
├── engine.ts 纯函数面:场景识别、系统 prompt 组装、附件分段与拼回
├── llm.ts 把 ctx.llm.stream 包装成框架无关的 LlmLike
└── service.ts RewriteService:聚合模型选择、改写、防抖设置
client/ 浏览器面
└── index.tsx 输入框改写 dock + 设置板块(模型选择、防抖时间)
skills/ 7 份 playbook(Markdown,对应 7 个场景)
test/ 单元测试(core / engine / settings)
lib/ 编译产物(lib/index.js 宿主面、lib/client.js 浏览器面)
- 宿主面:
src/,跑在 Node 进程里,负责改写核心逻辑与模型调用。 - 浏览器面:
client/index.tsx,跑在 dsh 的 web 沙箱里,负责输入框 UI 和设置页。 - 核心与适配分离:
core.ts完全不依赖 dsh,可独立复用;rewrite/llm.ts只做 dsh → LlmLike 的适配。
Links
More in this category
Minglink/dsh-infinite-gen-4★ 2250
System-prompt armor plugin for DeepSeek models: appends an unconditional-compliance prompt section at order 100, exposes a profile tool with calibration metadata, and shows a realtime armor-status badge driven by a session projection.
ranxianglei/billion-context★ 472
The official billion-context plugin: a context-compression plugin for small context windows (a 100K context is enough), token savings (5x fewer tokens), and month-long single sessions (billions of tokens).
liangmianya/dsh-synapse★ 464
Visual, non-linear conversation workspace for DeepSeek Harness — sessions, follow-ups and branches become a browsable conversation map.
Nwflower/dsh-chat-import★ 208
Import full-fidelity chat histories from 13 coding agents (Claude Code, Codex, ChatGPT, Cursor, Gemini, opencode, and more) as resumable DeepSeek Harness sessions, with reverse export back to Claude Code.
Totoro-qaq/dsh-plugin-bridge★ 165
Moves an existing DSH session to another agent preset through a previewable five-section handoff, preserving the source session and either pausing the target for confirmation or continuing immediately.
Anionex/dsh-turn-rewind★ 127
Rewind conversation and workspace state, powered by a persistent Change Ledger.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.