把输入框草稿整理成可直接执行的命令
28.3/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Ethereal-ljq/dsh-prompt-toolkit该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · skill
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 45 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 33 处,展示前 31 条)
- 读取本地文件src/host/root.js:30
if (existsSync(join(dir, 'package.json'))) { - 读取本地文件src/host/root.js:31
const pkg = JSON.parse(readFileSync(join(dir, 'package.json'), 'utf8')) - 读取本地文件src/host/settings.js:26
if (existsSync(newFile) || !existsSync(oldFile)) return false - 读取本地文件src/host/settings.js:27
writeFileSync(newFile, readFileSync(oldFile)) - 写入本地文件src/host/settings.js:27
writeFileSync(newFile, readFileSync(oldFile)) - 写入本地文件src/host/settings.js:117
try { writeFileSync(STATE_FILE, JSON.stringify(next, null, 2)) } catch { } - 读取本地文件src/host/util.js:12
try { return JSON.parse(readFileSync(file, 'utf8').replace(/^ FEFF/, '')) } catch { return fallback } - 写入本地文件src/host/favorites.js:76
try { writeFileSync(FAV_FILE, JSON.stringify({ version: 1, updatedAt: Date.now(), items: list }, null, 2)) } catch { } - 读取本地文件src/host/beacon.js:27
try { size = statSync(BEACON_FILE).size } catch { size = 0 } - 读取本地文件src/host/beacon.js:30
const kept = readFileSync(BEACON_FILE, 'utf8').slice(-Math.floor(BEACON_MAX_BYTES / 2)) - 写入本地文件src/host/beacon.js:32
writeFileSync(BEACON_FILE, nl >= 0 ? kept.slice(nl + 1) : kept) - 写入本地文件src/host/beacon.js:34
appendFileSync(BEACON_FILE, String(line == null ? '' : line) + '\n') - 读取本地文件src/host/tools.js:61
try { entries = readdirSync(dir, { withFileTypes: true }) } catch { return } - 读取本地文件src/host/tools.js:77
if (!existsSync(abs)) return '文件不存在:' + args.path - 读取本地文件src/host/tools.js:78
const info = statSync(abs) - 读取本地文件src/host/tools.js:81
const lines = readFileSync(abs, 'utf8').split('\n') - 读取本地文件src/host/tools.js:107
const files = existsSync(scope) && statSync(scope).isDirectory() ? walkFiles(scope, LOOP_MAX_FILES) : [scope] - 读取本地文件src/host/tools.js:107
const files = existsSync(scope) && statSync(scope).isDirectory() ? walkFiles(scope, LOOP_MAX_FILES) : [scope] - 发起网络请求src/client/20-store.js:71
fetch(API + "/state", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify(Object.assign({ tier: store.tier, model: - 发起网络请求src/client/40-dom.js:43
fetch(API + "/beacon", { - 发起网络请求src/client/60-capsule.js:231
store.modelCatalogPromise = fetch(url, { cache: "no-store" }) - 发起网络请求src/client/70-favorites.js:13
fetch(API + "/favorites", { cache: "no-store" }) - 发起网络请求src/client/70-favorites.js:31
return fetch(API + "/favorites", { - 发起网络请求src/client/80-run.js:10
fetch(API + "/run/abort", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ runId: run.runId }) }).catch(() => - 写入剪贴板src/client/80-run.js:40
navigator.clipboard.writeText(text).then( - 发起网络请求src/client/80-run.js:117
fetch(API + "/trace?runId=" + encodeURIComponent(id), { cache: "no-store" }) - 发起网络请求src/client/80-run.js:197
fetch(API + "/run", { - 发起网络请求src/client/90-plugin.js:22
fetch(API + "/state", { cache: "no-store" }).then((r) => r.json()).then((d) => { - 读取本地文件src/host/context.js:21
if (!existsSync(cwd)) { out.degraded = true; out.reason = 'cwd-missing'; out.elapsedMs = Date.now() - started; return out } - 读取本地文件src/host/context.js:24
const info = statSync(join(cwd, name)) - 读取本地文件src/host/context.js:31
try { entries = readdirSync(dir, { withFileTypes: true }) } catch { return }
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-llm@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-client-ui-primitives给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 草稿优化为可执行命令
DSH Web 提示词工作台:把输入框里的草稿优化成一条可直接执行的命令(引擎 fork 自 WestFox-AwA/dsh-prompt-optimizer,BSD-3-Clause,署名保留)
README
由 DeepSeek 最新模型翻译生成dsh-prompt-toolkit
DSH Web 的提示词工作台:把输入框里的草稿按所选档位整理成一条可直接执行的命令。
插件不接管键盘事件,默认不执行任何操作。在输入框左侧胶囊上点击 ✦ 后开始优化,结果写回输入框,是否发送由使用者决定。
安装
DSH 插件安装在某个 profile 中,不提供全局安装。
从 GitHub 安装
dsh plugin --profile web add github:Ethereal-ljq/dsh-prompt-toolkit
本地开发:安装正在修改的工作副本
dsh plugin --profile web add /path/to/dsh-prompt-toolkit
安装会同时完成 dsh.profile.bundles 的注册,无需手工维护该列表。
安装或升级后必须重启该 profile 的 web。 bundle 层在 web 启动时入栈,刷新页面不生效。
本包不需要构建:lib/client.js 是提交进仓库的构建产物,包内也没有 prepare 脚本,因此从 git 来源安装同样可以直接运行。
界面与操作
插件在页面上提供两处内容:输入框所在行的胶囊,以及右侧栏中的两个 tab (优化面板 / 收藏夹)。
展开完整文档(README 剩余 1 节)
dsh-prompt-toolkit DSH Web 的提示词工作台:把输入框里的草稿按所选档位整理成一条可直接执行的命令。 插件不接管键盘事件,默认不执行任何操作。在输入框左侧胶囊上点击 ✦ 后开始优化,结果写回输入框,是否发送由使用者决定。 安装 DSH 插件安装在某个 profile 中,不提供全局安装。 从 GitHub 安装 dsh plugin --profile web add github:Ethereal-ljq/dsh-prompt-toolkit 本地开发:安装正在修改的工作副本 dsh plugin --profile web add /path/to/dsh-prompt-toolkit 安装会同时完成 dsh.profile.bundles 的注册,无需手工维护该列表。 安装或升级后必须重启该 profile 的 web。 bundle 层在 web 启动时入栈,刷新页面不生效。 本包不需要构建:lib/client.js 是提交进仓库的构建产物,包内也没有 prepare 脚本,因此从 git 来源安装同样可以直接运行。 界面与操作 插件在页面上提供两处内容:输入框所在行的胶囊,以及右侧栏中的两个 tab (优化面板 / 收藏夹)。 胶囊分为两段,中间以分隔线区分,悬停时仅高亮指向的一段: - 左侧 ✦:执行优化,读取当前草稿并把结果写回输入框(不发送)。 - 右侧「优化 · 普通 ▾」:显示当前档位;点击展开设置菜单,内容为档位 / 上下文 / 优化模型 / 帮助。存在产出时,菜单中额外出现「查看产出」。 优化完成后,面板提供以下动作。左侧一组的动作不修改输入框,右侧一组会写入输入框: | | 动作 | 说明 | | 左 | 停止 / 丢弃 | 运行中显示「停止」,完成后显示「丢弃」。关闭面板,不修改输入框 | | 左 | 复制 | 将当前产出(含手动编辑过的版本)复制到剪贴板 | | 左 | 收藏本条 / 收藏夹 | 存入本地收藏夹;点击收藏夹中的条目可写回输入框 | | 右 | 重新生成 | 可指定修正方向(例如"更短"),基于上一版产出重跑 | | 右 | 填入输入框 | 仅写入,不发送 | | 右 | 填入并发送 | 唯一的发送入口 | 设置菜单中的上下文控件用于选择优化时读入多少会话历史;「优化模型」与对话模型相互独立,可以单独指定。 与上游的关系 引擎(宿主半边与提示词层)fork 自 WestFox-AwA/dsh-prompt-optimizer,原作者「啃轮胎的西狐」,BSD-3-Clause,署名与许可一并保留(见 LICENSE)。 界面与交互为本项目自有。 包名与上游相同(@dsh-external/dsh-prompt-toolkit),两者不能同时安装。 数据落在哪 | 文件 | 内容 | | $DSH_HOME/prompt-toolkit.json | 设置(档位 / 模型 / 上下文 / 按会话的档位) | | $DSH_HOME/prompt-toolkit-favorites.json | 收藏夹 | | $DSH_HOME/prompt-toolkit-beacon.jsonl | 客户端动作遥测,用于事后排查;上限 512KB,超出后截断 | 运行期文件写入 DSH_HOME,不写入插件目录:安装进 profile 之后插件目录可能只读。 开发 设计约束、模块划分、构建与测试方式见 docs/ARCHITECTURE.md。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Ethereal-ljq/dsh-prompt-toolkit
把输入框草稿整理成可直接执行的命令
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份系统提示词,喂给多个 coding…
★ 931已汉化DSH
73.8
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
Agent 运行时手册Electricitysheep/dsh-handbook
DeepSeek Harness dsh 从 0 到 1 深度手册:安装/插件开发/性能调优/实测案例/同模型多…
★ 827已汉化DSH
68.7