dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
OpenCode Go 额度悬浮窗 —— DeepSeek Harness (DSH) Web GUI 插件。
本插件由 DeepSeek V4 Flash(
deepseek-v4-flash)开发,全程在 DSH 会话中完成设计、实现、调试与发布。
页面右下角圆形悬浮按钮(opencode 官方图标,可鼠标拖动),点击展开弹窗 展示当前所选 OpenCode Go 账号套餐各周期额度(5 小时滚动 / 每周 / 每月)的已用 百分比、限额与重置时间;再点按钮或 × 收起。弹窗打开期间每 5 分钟自动刷新。
核心行为:仅当当前会话选中的模型属于 opencode go 系 provider 时才显示按钮, 切换到其他模型(如 deepseek-official)自动隐藏;多 opencode go 账号(含自定义 路由)按所选 provider 自动对应各自的 API key 与额度。

dsh plugin --profile web add github:haipisao/dsh-plugin-opencode-go-quota
# npm pack 产物(本地 `npm pack` 生成,或从 GitHub Releases 下载)
dsh plugin --profile web add ./dsh-plugin-opencode-go-quota-0.1.1.tgz
dsh plugin --profile web add ./packages/dsh-plugin-opencode-go-quota
在 ~/.dsh/profiles/web/cordis.patch.yml 追加(HMR 注册即生效,无需重启):
- insert:
- id: opencode-go-quota
name: dsh-plugin-opencode-go-quota
config:
timeoutMs: 15000
visibleProviders: [opencode-go, opencode-go-2]
providers:
opencode-go:
usageUrl: https://opencode.ai/zen/go/v1/usage
keyRef: OPENCODE_GO_API_KEY
opencode-go-2:
usageUrl: https://opencode.ai/zen/go/v1/usage
keyRef: OPENCODE_GO_API_KEY_2
首次安装新 bundle 后,若 HMR 未生效,重启一次
dsh web即可。
把下面整段复制给任意 AI agent(DSH 会话或其他助手),即可由它完成安装与验证:
请帮我安装 DSH 插件 dsh-plugin-opencode-go-quota(OpenCode Go 额度悬浮窗,GitHub: haipisao/dsh-plugin-opencode-go-quota)。
执行步骤:
1. 安装插件包(二选一):
- dsh plugin --profile web add github:haipisao/dsh-plugin-opencode-go-quota
- 或本地 tarball:dsh plugin --profile web add ./dsh-plugin-opencode-go-quota-0.1.1.tgz
2. 在 ~/.dsh/profiles/web/cordis.patch.yml 追加注册行(若已存在相同 id 则跳过,不要重复插入):
- insert:
- id: opencode-go-quota
name: dsh-plugin-opencode-go-quota
config:
timeoutMs: 15000
visibleProviders: [opencode-go, opencode-go-2]
providers:
opencode-go:
usageUrl: https://opencode.ai/zen/go/v1/usage
keyRef: OPENCODE_GO_API_KEY
opencode-go-2:
usageUrl: https://opencode.ai/zen/go/v1/usage
keyRef: OPENCODE_GO_API_KEY_2
3. 确认 API key 已配置在 DSH credentials seam(~/.dsh/.credentials.yaml 或进程环境变量):
OPENCODE_GO_API_KEY(账号 1)、OPENCODE_GO_API_KEY_2(账号 2,可选);
auth.json 兜底仅在未显式配置 keyRef 时(默认 opencode-go 场景)生效,按平台探测路径。
4. 验证(全部通过才算完成):
- dsh --profile web --dump-config | grep opencode-go-quota # 注册行已挂载
- curl "http://127.0.0.1:3080/opencode-go-quota/api/usage?provider=opencode-go-2"
→ 返回 visible:true 且 usage 含 rolling/weekly/monthly 三个窗口
- curl "http://127.0.0.1:3080/opencode-go-quota/api/usage?provider=deepseek-official"
→ 返回 visible:false(其他模型必须隐藏)
- curl "http://127.0.0.1:3080/plugins/dsh-plugin-opencode-go-quota/client.js" → 200
- 刷新页面,选中 opencode go 系模型后右下角出现可拖动的图标按钮;切到其他模型自动隐藏
5. 注意:
- 首次安装新 bundle 若路由 404(HMR 未生效),重启一次 dsh web;
- 不要修改插件源码;config 覆盖请通过注册行 config 完成;
- 若页面未出现按钮,优先检查第 3 步 key 与第 4 步 visible 判定。
OPENCODE_GO_API_KEY(credentials seam:~/.dsh/.credentials.yaml 或环境变量)OPENCODE_GO_API_KEY_2(如需)opencode-go 场景),host 会回退读 OpenCode CLI
的 auth.json(按平台探测:Windows %LOCALAPPDATA%/opencode、macOS
~/Library/Application Support/opencode、Linux ~/.local/share/opencode,
可用 OPENCODE_GO_AUTH_PATH 覆盖);其余 provider 缺 key 会明确提示
「未找到 API Key」,绝不静默串用其他账号的 keyopencode-go/deepseek-v4-flash)——
右下角出现 opencode 图标按钮(可拖动)。dsh plugin --profile web remove dsh-plugin-opencode-go-quota
并删除 ~/.dsh/profiles/web/cordis.patch.yml 里 opencode-go-quota 的 insert 注册行。
(实测:依赖、bundle 清单、node_modules 与注册行全部清除后,重启实例无任何残留。)
官方用量端点(接口未公开,解析为防御式),返回 usage.rolling / usage.weekly / usage.monthly
三个窗口的 percent(0–100)与 resetsAt(ISO-8601)。限额($12 / $30 / $60)为
套餐静态值,仅作参考,可在配置里覆盖。
GET /opencode-go-quota/api/usage?provider=<llm-pi-ai 路由 id>
visible: true/false:provider 是否在可见名单;未知 provider / 缺 key 返回
结构化原因(unknown-provider / no-api-key),不抛错。config.providers 显式优先,否则从
Settings → Models(llm-pi-ai)的 apiKeyEnv / baseURL 推导。| Key | 默认 | 含义 |
|---|---|---|
timeoutMs |
15000 |
拉取超时(毫秒) |
visibleProviders |
providers 的键;缺省 [opencode-go, opencode-go-2] |
显示悬浮窗的 provider 名单 |
providers.<id>.usageUrl |
设置推导(baseURL + /usage)或官方默认 |
该路由的用量端点 |
providers.<id>.keyRef |
设置推导(apiKeyEnv) | 该路由的凭据引用(credentials seam / env) |
limits |
$12/$30/$60 |
三周期限额显示文本 |
以下命令中的
3080为默认端口,实际端口以你的dsh web为准。
node --check lib/index.js && node --check lib/client.js
curl "http://127.0.0.1:3080/opencode-go-quota/api/usage?provider=opencode-go-2" # visible:true + 该账号额度
curl "http://127.0.0.1:3080/opencode-go-quota/api/usage?provider=deepseek-official" # visible:false
dsh --profile web --dump-config | grep opencode-go-quota # 注册行已挂载
| 文件 | 角色 |
|---|---|
lib/index.js |
host 端:同源 API(读 key → 拉官方端点 → 按 provider 归一化返回) |
lib/client.js |
client 端 bundle:shell.overlay 槽位注入图标按钮 + 弹窗(手写 window.__ModuleLoader__.load 格式,免构建);拖动、按选中模型显隐 |
cordis.patch.yml |
空 patch(注册统一走 profile 层,避免重启后 duplicate loader entry id) |
index.js |
兼容转发 shim,仅开发热更场景用,不随 npm 包发布(新进程直接按 main 加载 lib/index.js) |
觉得好用的话,求个 ⭐ 支持一下,也欢迎分享给需要的朋友:
DSH 插件推荐:OpenCode Go 额度悬浮窗 —— 右下角可拖动的图标按钮,随时查看 5 小时/每周/每月额度,多账号自动对应,仅选中 opencode go 模型时显示。GitHub:https://github.com/haipisao/dsh-plugin-opencode-go-quota
favicon-v3.svg)shell.overlay)体系💡 互推:以上参考项目都很优秀,觉得有用也请顺手 ⭐ 支持一下。
License
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。