把一句话小问题甩给网页版,不占上下文
29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add DanZai233/dsh-webask该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 41 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)
查看扫描证据(共 7 处,展示前 7 条)
- 写入剪贴板lib/client.js:424
navigator.clipboard.writeText(text).catch(() => {}); - 读取本地文件build.mjs:21
const manifest = JSON.parse(await readFile(join(root, 'package.json'), 'utf8')); - 读取本地文件build.mjs:22
const code = await readFile(join(root, 'src/client.js'), 'utf8'); - 读取本地文件build.mjs:23
const css = await readFile(join(root, 'src/style.css'), 'utf8'); - 写入本地文件build.mjs:40
await mkdir(join(root, 'lib'), { recursive: true }); - 写入本地文件build.mjs:41
await writeFile(join(root, 'lib/client.js'), bundle); - 写入剪贴板src/client.js:417
navigator.clipboard.writeText(text).catch(() => {});
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 发送一句话问题
- 全局热键面板
- 历史记录
把一句话问题发给 DeepSeek 网页版聊天,别再烧你的 DSH 上下文。输入框按钮 + 全局热键面板,带历史记录。
README
由 DeepSeek 最新模型翻译生成WebAsk
把「一句话就能问完」的问题甩给 DeepSeek 网页版 —— 不占上下文,不花 token。
输入框按钮 · 全局快捷键浮层 · 本地历史
DeepSeek Harness 每一轮都会重发整段对话。所以一个 20 token 的小问题 —— 那种你早就知道很短的问题 —— 真实成本并不是 20 token,而是它所搭乘的整个上下文窗口。
WebAsk 把这类问题送去免费的网页版,并且从一开始就不让它进入对话。
你得到什么
输入框旁的按钮
你已经在 DSH 输入框里打好了问题。与其发送它,不如点一下 WebAsk 按钮:这段文字会被从草稿里抽走(通过官方 input actions 清空,因此它绝不会到达模型),同时复制到剪贴板,并在新标签页中打开。
按钮只在「确实有草稿可抽」且输入框处于普通可发送状态时才可用,所以它不可能在提交流程中途误触发。
全局快捷键浮层
任意位置按 mod+shift+k 呼出居中输入框。打字,回车,完事。Shift+Enter 换行,Esc 关闭。
浮层下方是你的本地历史。
展开完整文档(README 剩余 1 节)
WebAsk
把「一句话就能问完」的问题甩给 DeepSeek 网页版 —— 不占上下文,不花 token。
输入框按钮 · 全局快捷键浮层 · 本地历史
DeepSeek Harness 每一轮都会重发整段对话。所以一个 20 token 的小问题 —— 那种你早就知道很短的问题 —— 真实成本并不是 20 token,而是它所搭乘的整个上下文窗口。
WebAsk 把这类问题送去免费的网页版,并且从一开始就不让它进入对话。
你得到什么
输入框旁的按钮
你已经在 DSH 输入框里打好了问题。与其发送它,不如点一下 WebAsk 按钮:这段文字会被从草稿里抽走(通过官方 input actions 清空,因此它绝不会到达模型),同时复制到剪贴板,并在新标签页中打开。
按钮只在「确实有草稿可抽」且输入框处于普通可发送状态时才可用,所以它不可能在提交流程中途误触发。
全局快捷键浮层
任意位置按 mod+shift+k 呼出居中输入框。打字,回车,完事。Shift+Enter 换行,Esc 关闭。
浮层下方是你的本地历史。每一条都可以:
- 重新打开(回到网页版继续问)
- 再次复制
- 回填到输入框 —— 闭环所在:当某个问题的答案值得在真正的会话里追问时
设置页
设置 → 插件 → WebAsk:目标站点、URL 模板、全局快捷键、是否复制到剪贴板、是否记录历史、历史上限。
关于 ?q= 的一句实话
https://chat.deepseek.com/?q=… 是社区约定,不是官网功能。chat.deepseek.com 自己并不读这个参数 —— 社区专门写了油猴脚本去「补」这个能力。假装它原生支持,只会让这个插件对没有装脚本的人静默失效。
所以 WebAsk 每次都同时做两件事:
1. 总是把问题复制到剪贴板;
2. 打开模板 URL。
如果你装了那类脚本,全流程自动完成;没装的话,在刚打开的标签页里按一次 ⌘V 即可。无论哪种情况,这个问题都花 0 token —— 而这正是它的全部意义。
安装
dsh plugin --profile web add dsh-webask
然后重启该 profile。安装插件会改变包图,而包清单与客户端模块元数据在进程生命周期内是有缓存的 —— 重启才会重新读取。
想先确认一下再重启也行:
dsh --profile web --dump-config | grep -A2 webask
支持的站点
以下预设都遵循同一套 ?q= 约定:
| 站点 | 模板 |
| DeepSeek | https://chat.deepseek.com/?q={q} |
| Kimi | https://www.kimi.com/?q={q} |
| Qwen | https://chat.qwen.ai/?q={q} |
| 豆包 | https://www.doubao.com/?q={q} |
| 腾讯元宝 | https://yuanbao.tencent.com/?q={q} |
| 智谱 GLM | https://chatglm.cn/?q={q} |
| Gemini | https://gemini.google.com/?q={q} |
模板可编辑,所以 WebAsk 从没听说过的站点也能用。用 {q} 表示问题的位置;如果一个 {q} 都没有,问题会作为 q= 查询参数追加到末尾,并保留 URL 上原有的其他参数。
隐私
除了你主动向网页版提的那个问题之外,没有任何东西离开你的机器;标签页也是你自己打开的。历史与设置只存在于本浏览器的 localStorage,不会上传。WebAsk 不向模型发送任何内容,它的 host 半只是一个空的挂载行 —— 没有 service、没有 tool、没有路由。
实现说明
WebAsk 是一个纯展示层的客户端插件。它占用三个有文档的槽位,并且只通过公开的 action face 访问输入框 —— 从不靠改 DOM 去读写你的草稿。
| 槽位 | 界面 | 用到的接口 |
| conversation.input.right | 输入框按钮 | useInput 读草稿与 phase,inputActions.setDraft 抽走草稿 |
| shell.overlay | 浮层 + Toast | useSessions(s => s.current) 取当前会话,配合按钮发布的桥接做回填 |
| settings.plugins.tab | 配置页 | useResource / useWorkspaces 标准套件 |
给读源码的人的几点:
- 没有构建链。 build.mjs 约 40 行、零依赖:把样式内联成字符串,再把 src/client.js 包进浏览器模块加载器要求的 CJS closure-factory。没有打包器、没有 TypeScript、没有 CSS 管线。
- 客户端工厂里 require("react") 是可解析的,所以 UI 直接用 React.createElement 写,不需要 JSX 转换。
- 文案通过 ctx.locale 注册,并内置中英回退表;即使 locale 服务不可用,界面也不会退化成 key。
- 浮层是 root scope,而草稿是按会话存的。与其按 id 去戳 input hub,不如让输入框按钮把它自己的官方 action face 发布到一个极小的共享 store —— 这样「有没有地方可以回填」就有了诚实的答案,没有时回填按钮直接禁用。
开发
npm run build # src/ -> lib/client.js
npm run verify # 37 项离线检查:槽位接线、点击路径、持久化
verify 会把构建产物放进 VM、配上假浏览器与极简 React stub 跑起来,并驱动真实的点击路径。槽位名写错或属性读错,会在这里就失败,而不是在界面上变成一个「点了没反应」的按钮。
许可
MIT © DanZai233预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
DanZai233/dsh-webask
把一句话小问题甩给网页版,不占上下文
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目