预测你的下一条指令,按 Tab 填入输入框
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Dogtiti/dsh-plugin-composer-predict该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 8 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 5 处,展示前 5 条)
- 写入本地文件index.js:70
void appendFile(REPORT_FILE, line, 'utf8').catch(() => {}) - 写入本地文件index.js:82
void appendFile(REPORT_FILE, line, 'utf8').catch(() => {}) - 写入本地文件index.js:101
await appendFile(REPORT_FILE, line, 'utf8') - 发起网络请求client.js:115
await fetch(new URL(REPORT, document.baseURI), { - 发起网络请求client.js:133
const response = await fetch(new URL(ROUTE, document.baseURI), {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
给 DeepSeek Harness 输入框做 Codex 风格的下一条指令预测:按 Tab 采纳建议,建议以输入框占位符的形式显示。
README
由 DeepSeek 最新模型翻译生成dsh-plugin-composer-predict
根据当前对话预测下一条用户指令,直接显示在输入框的占位文字里;按 Tab 采纳为可编辑草稿。
效果
会话空闲且输入框为空时,原生提示文字会换成一条建议:
- 发消息或创建任务, / 调用指令, @ 文件或对话
+ 跑一下测试
按 Tab 或点击即可填入输入框(光标停在末尾),不会自动发送。
建议由当前会话正在使用的模型生成:
| 上下文 | 建议 |
| 刚完成一次代码修改 | 跑一下看看效果 |
| 测试报告显示 3 个失败用例 | 先修掉这三个失败用例 |
安装
市场索引
https://raw.githubusercontent.com/Dogtiti/dsh-plugin-composer-predict/main/market-index.json
设置 → 插件 → 启用实验性市场 bundle → Discover → 添加上面的地址 → 安装 dsh-plugin-composer-predict。
npm
npm i dsh-plugin-composer-predict
在 Plugins 页用「添加」填写包名。
展开完整文档(README 剩余 1 节)
dsh-plugin-composer-predict
根据当前对话预测下一条用户指令,直接显示在输入框的占位文字里;按 Tab 采纳为可编辑草稿。
效果
会话空闲且输入框为空时,原生提示文字会换成一条建议:
- 发消息或创建任务, / 调用指令, @ 文件或对话
+ 跑一下测试
按 Tab 或点击即可填入输入框(光标停在末尾),不会自动发送。
建议由当前会话正在使用的模型生成:
| 上下文 | 建议 |
| 刚完成一次代码修改 | 跑一下看看效果 |
| 测试报告显示 3 个失败用例 | 先修掉这三个失败用例 |
安装
市场索引
https://raw.githubusercontent.com/Dogtiti/dsh-plugin-composer-predict/main/market-index.json
设置 → 插件 → 启用实验性市场 bundle → Discover → 添加上面的地址 → 安装 dsh-plugin-composer-predict。
npm
npm i dsh-plugin-composer-predict
在 Plugins 页用「添加」填写包名。
本地目录
git clone https://github.com/Dogtiti/dsh-plugin-composer-predict
Plugins → 添加 → 选择该目录。
行为
只有以下条件全部满足时,才会请求并显示建议:
- 该会话已完成至少一轮对话
- 会话不在运行中
- 输入框为空、无待发送附件、无已认领的斜杠命令
- 非一次性子会话(只读输入框)
以下情况不接管:
| 条件 | 行为 |
| 输入框非空 | 不请求、不显示 |
| 会话运行中 | 不显示 |
| / 或 @ 菜单弹出 | 不显示 |
配置
- insert:
- id: composer-predict
name: 'dsh-plugin-composer-predict'
config:
model: deepseek-chat
maxSuggestionChars: 24
| 键 | 默认 | 说明 |
| enabled | true | 总开关;关闭后路由返回 503,客户端不再请求 |
| provider / model | '' | 指定模型;留空跟随当前会话 |
| maxContextMessages | 8 | 送入模型的消息条数(取尾部) |
| maxMessageChars | 600 | 单条消息最大字符数(保留头尾) |
| maxSuggestionChars | 32 | 建议的目标长度 |
| maxTokens | 200 | 输出上限 |
| timeoutMs | 20000 | 单次请求超时 |
| cacheTtlMs | 60000 | 相同会话事件序号下的缓存时间 |
| diagnostics | false | 将客户端判定写入 .diagnostics.jsonl,用于排障 |
实现
插件是标准 DSH bundle,包含 Host 与 Client 两部分:
┌──────────────── 浏览器 ────────────────┐ ┌───────────── Host ─────────────┐ │ conversation.composer.dock │ │ POST /api/composer.predict │ │ · 回合结束时请求(running: true→false) │ HTTP │ · sessions.get(id) │ │ · 重绘 [data-composer-placeholder] │ ─────► │ · session.deriveMessages() │ │ · 自检:内容包含建议且字号 ≥ 8px │ ◄───── │ · 当前会话 provider/model │ │ · Tab → inputActions.setDraft() │ JSON │ · 按 seq 缓存 60s │ └────────────────────────────────────────┘ └────────────────────────────────┘
宿主占位元素已提供定位(inset:4px 8px auto 14px)、字号、行高、省略号与 IME 组合期隐藏,插件只改写其内容:
[data-composer-placeholder] { color: transparent }
[data-composer-placeholder]::after {
content: "跑一下测试"; position: absolute; inset: 0; font: inherit; }
不用 font-size: 0 配合变量恢复字号:变量解析失败时字号会退化为 0,文字还在但看不见。font: inherit 不依赖变量。
挂载后读取 getComputedStyle(target, '::after') 自检,若内容不含建议或字号小于 8px,回退为输入框下方一行,并在控制台输出 [composer-predict] 警告。
数据与开销
- 读取本会话日志尾部(用户与助手文本、工具名、工作目录),发送至会话自身配置的模型服务与凭据。
- 每轮发一次独立小请求,默认上限 200 tokens;enabled: false 可关闭。
- 结果不落盘,不写入会话日志。
开发
node --test "test/*.test.mjs"
14 项:提示词拼装、模型路由回退、输出清洗、缓存失效、开关、CSS 转义、门禁条件、兜底渲染。
test/render-proof/ 把插件实际生成的 CSS 应用到宿主占位结构,用无头 Chrome 渲染并截图,用来核对重绘结果,包含字号变量非法的边界环境。
兼容性
- DSH ^0.2.1-0(engines.dsh)。
- 依赖宿主占位元素的 [data-composer-placeholder] 标记;缺失时走回退路径,不影响输入框本身。
相关插件
| 插件 | 说明 |
| dsh-plugin-composer-predict(本仓库) | 预测下一条指令并显示为占位文字,Tab 采纳 |
| dsh-plugin-composer-history | 输入框中按 ↑ / ↓ 回填历史消息 |
| dsh-plugin-subagent-bridge | 让 Codex 通过本机 MCP 把 DSH 当子代理用(spawn / wait / followup),反向也能把任务派给 Codex |
| dsh-plugin-usage-panel | 在模型选择器旁显示服务商套餐额度余量(目前 GLM Coding Plan),点开是明细浮层 |
许可
MIT © Dogtiti预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Dogtiti/dsh-plugin-composer-predict
预测你的下一条指令,按 Tab 填入输入框
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,798已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,327已汉化DSH
71.5
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,021已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 150,724已汉化DSH
71.1