一键把输入草稿润色成结构清晰的高质量提示词
31.8/100
综合分
4
GitHub 星标
481
npm 周下载
—/5
用户评分
数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-prompt-optimizernpm 源 · dsh-prompt-optimizer 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 58 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-prompt-optimizer @ 2.0.3
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/10 15:48:06
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 8 处,展示前 8 条)
- 写入本地文件lib/index.js:33
await appendFile(DEBUG_LOG, `[${new Date().toISOString()}] ${args.map(String).join(' ')} - 读取本地文件lib/index.js:46
return JSON.parse(await readFile(CONFIG_PATH, 'utf8')); - 写入本地文件lib/index.js:53
await mkdir(dirname(CONFIG_PATH), { recursive: true }); - 写入本地文件lib/index.js:54
await writeFile(CONFIG_PATH, JSON.stringify(config, null, 2), 'utf8'); - 发起网络请求dist/client.js:151
res = await fetch(`${normalizeBaseUrl(config.baseUrl)}/chat/completions`, { - 发起网络请求dist/client.js:315
const response = await fetch(`/dsh-prompt-optimizer/api/${encodeURIComponent(method)}`, { - 发起网络请求dist/client.js:395
const response = await fetch("/dsh-prompt-optimizer/api/optimize.stream", { - 写入剪贴板dist/client.js:908
await navigator.clipboard.writeText(result);
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-group@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/cordis-plugin-timer@deepseek-ai/dsh@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-default-model@deepseek-ai/dsh-agent-presets@deepseek-ai/dsh-anonymous-user-id@deepseek-ai/dsh-api-gateway@deepseek-ai/dsh-api-remotes给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 润色草稿为提示词
README
由 DeepSeek 最新模型翻译生成dsh-prompt-optimizer
License: MIT
Node
npm
DSH 输入框 prompt 优化插件:无需选中任何内容,直接输入草稿然后按 ✨(或 Alt+O),插件会把它润色成更清晰、更结构化的高质量 prompt。默认零配置:直接经宿主服务复用当前会话模型,无需任何 API Key;也支持自配任意 OpenAI 兼容接口。
✨ 功能
- 一键优化:输入栏右侧 ✨ 按钮,Alt+O(焦点在输入框内)等效触发
- 真·流式预览:经宿主 webServer 的 SSE 推送(llm.stream 每个 text-delta 即时到达、逐 token 呈现);推理过程(reasoning)先出,等待阶段就能看到模型思考
- 零配置默认:复用当前会话/agent 默认模型(宿主 agentDefaultModel + llm 服务),无需 API Key
- 自配接口模式:取消「使用当前会话模型」后,可填任意 OpenAI 兼容 /chat/completions 端点(地址 + Key + 模型名)
- 完成操作行:替换草稿 / 一键复制 / 重新优化 / 放弃
- 双语界面:跟随 DSH 语言(中文 / English)实时切换,无需刷新
展开完整文档(README 剩余 1 节)
dsh-prompt-optimizer
License: MIT
Node
npm
DSH 输入框 prompt 优化插件:无需选中任何内容,直接输入草稿然后按 ✨(或 Alt+O),插件会把它润色成更清晰、更结构化的高质量 prompt。默认零配置:直接经宿主服务复用当前会话模型,无需任何 API Key;也支持自配任意 OpenAI 兼容接口。
✨ 功能
- 一键优化:输入栏右侧 ✨ 按钮,Alt+O(焦点在输入框内)等效触发
- 真·流式预览:经宿主 webServer 的 SSE 推送(llm.stream 每个 text-delta 即时到达、逐 token 呈现);推理过程(reasoning)先出,等待阶段就能看到模型思考
- 零配置默认:复用当前会话/agent 默认模型(宿主 agentDefaultModel + llm 服务),无需 API Key
- 自配接口模式:取消「使用当前会话模型」后,可填任意 OpenAI 兼容 /chat/completions 端点(地址 + Key + 模型名)
- 完成操作行:替换草稿 / 一键复制 / 重新优化 / 放弃
- 双语界面:跟随 DSH 语言(中文 / English)实时切换,无需刷新
- 配置自持持久化:~/.dsh/prompt-optimizer-config.json(loopback RPC 读写,不依赖宿主 settings 注册表)
- 深色模式:配色跟随 DSH 主题变量,深夜模式固定品牌蓝 + 白字保证可读
- 纯本地凭据:API Key(仅自配模式)只存本地配置文件,只发往你配置的接口
截图
环境要求
- DSH,web 或 desktop profile
- Node.js ^22.19.0 或 >=24.0.0(仅源码构建需要)
- 装入 profile 时推荐 pnpm
📦 安装
Bundle 入口(id: prompt-optimizer)由本包的 cordis.patch.yml 自声明,无需手工补丁文件。
从 GitHub 安装(推荐)
按仓库身份安装,市场即可唯一匹配到 winditer/dsh-prompt-optimizer(npm 上有多个互不相关的插件共用 dsh-prompt-optimizer 这个名字;裸 npm 安装会让 dshmarket 无法区分,Installed 页不显示 GitHub 链接与描述):
dsh plugin --profile desktop add github:winditer/dsh-prompt-optimizer
Web profile 用 --profile web。安装后重启 DSH(完全退出再打开),输入栏右侧会出现 ✨ 按钮。
从 npm 安装
dsh plugin --profile desktop add dsh-prompt-optimizer
Web profile 用 --profile web。安装后重启 DSH(完全退出再打开),输入栏右侧会出现 ✨ 按钮。
⚠️ npm 名 dsh-prompt-optimizer 被多个互不相关的插件共用。由于 spec 不带仓库身份,dshmarket 无法区分同名条目,Installed 页不显示 GitHub 链接与描述。推荐使用上面的 github: 安装方式。
源码开发方式
git clone https://github.com/winditer/dsh-prompt-optimizer.git && cd dsh-prompt-optimizer
npm install
npm run build # 生成 dist/client.js
dsh plugin --profile desktop add . # 按包名把工作区 link 进 profile
手工安装:在目标 profile 的 package.json(如 ~/.dsh/profiles/desktop/package.json)中:
{
"dependencies": {
"dsh-prompt-optimizer": "link:/absolute/path/to/dsh-prompt-optimizer"
// ...
},
"dsh": {
"profile": {
"bundles": [ /* ... /, "dsh-prompt-optimizer" ]
}
}
}
然后在 profile 目录执行 pnpm install 并重启 DSH。
卸载
从 profile 的 dependencies 与 dsh.profile.bundles 移除 dsh-prompt-optimizer,清理安装目录,如不再需要可删除配置文件 ~/.dsh/prompt-optimizer-config.json。
使用
- 在输入框输入草稿,点 ✨(或 Alt+O)——输入区上方出现预览卡片
- 优化中:先是灰色小字实时滚动推理过程,随后润色结果逐 token 流入
- 完成:替换草稿 把结果写回输入框 · 复制 复制到剪贴板 · 重新优化 再来一次 · 放弃 关闭
- 预览卡片绑定发起会话:切到别的会话自动隐藏,切回恢复
⚙️ 配置
打开 设置 → 通用设置 → Prompt 优化:
| 设置项 | 默认 | 说明 |
| 使用当前会话模型 | 开 | 复用会话/agent 默认模型(零配置)。关闭后启用下列字段 |
| 接口地址 | https://api.deepseek.com | 任意 OpenAI 兼容 /chat/completions 端点 |
| API Key | — | 自配模式的密钥(跟随模式忽略) |
| 模型名 | deepseek-v4-flash | 模型名(跟随模式忽略) |
配置保存于 ~/.dsh/prompt-optimizer-config.json(与 DSH 其他配置同目录,卸载插件时一并清理)。
自配接口需支持 CORS 与 SSE 流式(官方 DeepSeek / OneAPI 类网关均可)。
🏗️ 架构
一个包、两半:
- server half(lib/index.js):经 loopback RPC 通道(/dsh-prompt-optimizer,get/set)持久化配置;并经宿主 webServer 服务注册 HTTP JSON API(/dsh-prompt-optimizer/api)。经 llm.stream 跑会话默认优化;后台流存于内存 Map,插件卸载即清。
- client half(src/.ts,esbuild 打包为 dist/client.js,包 __ModuleLoader__.load({ id: "dsh-prompt-optimizer", … })——id 必须等于安装包名)。渲染进 conversation.input.right(按钮)、conversation.input.overlay(预览卡)与 settings.general.item(设置行);与 host 用 fetch POST 通信。
Host API
全部为 POST /dsh-prompt-optimizer/api/;响应均为 { ok: true, value } 或 { ok: false, error }。
| 方法 | Body | 返回 |
| sessionModel | {} | { provider, model, reasoningEffort? } — 会话默认模型 |
| optimize.stream | { provider, model, text, system?, reasoningEffort? } | text/event-stream — 先 event: reasoning 帧,再逐 token event: delta,结束 event: done |
| optimize.start | { provider, model, text, system?, reasoningEffort? } | { taskId } — 后台累积(降级路径) |
| optimize.poll | { taskId } | { done, text, error? } — 流式过程中的累积文本 |
| optimize.abort | { taskId } | { ok } |
协议细节:仅接受 POST(否则 405);body 为 JSON,上限 1 MB;未知方法返回 404。
🔒 安全说明
- 默认通道不发送任何凭据——直接复用 harness 配置的 provider。
- 自配模式的 API Key 只留本地(~/.dsh/prompt-optimizer-config.json),只发往你配置的接口。
- 优化内容只出现在预览卡片;只有按 替换草稿 才会写入会话。
🔧 开发
npm run build # esbuild:src/index.ts → dist/client.js(__ModuleLoader__ bundle)
npm test # node 运行 tests/entry.ts(状态机、通道、SSE 解析)
目录结构
src/index.ts 客户端入口 — 槽位接续、RPC/配置胶水、宿主探针 src/OptimizeButton.tsx / PreviewCard.tsx / SettingsRow.tsx src/optimizer.ts 配置默认值、系统提示词、OpenAI 兼容 fetch/SSE 客户端 src/session-optimizer.ts 宿主通道:sessionModel + SSE 流 + 降级轮询 src/preview-state.ts 预览卡片状态机(纯 reducer) src/preview-bus.ts 模块级事件总线(按钮/卡片/编排共享) lib/index.js server half — 配置持久化 + HTTP JSON API(makeHandler + createApiRoute) dist/client.js 构建产物(__ModuleLoader__ 格式,load id = dsh-prompt-optimizer) cordis.patch.yml bundle 入口声明(insert: { id: prompt-optimizer, name: dsh-prompt-optimizer }) scripts/build.mjs 构建脚本(esbuild + bundle 包装) tests/entry.ts 单元 + 集成测试(61) assets/ 截图
踩过的坑
- Bundle id 必须等于包名——否则 arrive() 抛 bundle loaded without registering 。scripts/build.mjs 写死了正确 id。
- Profile bundle 拿不到 cordis timer 服务——用浏览器原生 setInterval/setTimeout(在 React effect 清理中释放),与姊妹包 dsh-elf 一致。
- 不要用 session.create/fork 做生成——后台会话不会执行(渲染进程自编 id 被静默拒绝、fork 子会话不在前台不触发模型),实测表现是「永远正在优化」。改为由 server half 经 llm.stream 驱动模型。
- 不要把流式协议跑在 connection.rpc.call 上——desktop 渲染进程的 rpc.call 在同一流程第二次调用挂死(实测 sessionModel 成功、下一次调用永不达)。宿主通道走 HTTP(webServer)。
- 优先 link: 而非 file: 安装工作区副本——file: 是拷贝,改动/重构建后会过期。
- client 改动刷新即生效;host(lib)改动需完整重启 DSH。
- 构建脚本坏了会静默保留旧 bundle——npm run build 必须打印 ✓ Built;若只打印 Node 版本号就是脚本失败(曾有一次回归留下看起来「最新」的过期 dist/client.js)。
- 新发布可能触发 profile 的 minimumReleaseAge 策略——若 profile 启用了 pnpm 的上架时效检查,发布于 ~24 小时内的版本执行 dsh plugin … add 会报 ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION。把精确的 name@version 加进 profile 的 pnpm-workspace.yaml 的 minimumReleaseAgeExclude(每次发新版本记得更新):
minimumReleaseAgeExclude:
- dsh-prompt-optimizer@2.0.0
📄 License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
winditer/dsh-prompt-optimizer
一键把输入草稿润色成结构清晰的高质量提示词
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目