npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-input-rewriter

v0.3.0

Published

DeepSeek Harness 插件:发送前用提示词工程 playbook 自动改写用户输入为更优 prompt。官方 bundle 插件,dsh plugin --profile web add

Readme

dsh-input-rewriter

一个 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

装完怎么用

  1. 重启 dsh web。
  2. 刷新浏览器页面。
  3. 完事。以后你打字停下约 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 的适配。