Back to home

FengYangXun123

dsh-opencode-usage

DSH 插件:OpenCode Go 用量 + DeepSeek 余额监控(多 provider,突增/深夜盗刷告警,环境变量管 Key)

Stars
0
Language
JavaScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

dsh-opencode-usage

DSH Web GUI 插件:订阅用量 / 余额监控(多 provider,当前支持 opencode-go 用量 + deepseek 余额)。两个表面共享同一份数据:

  • 侧边栏底部徽标sidebar.footer.action,设置入口上方,全局常驻——首页/空态也可见):显示主 provider(首个 usage 型)5h 0% 周 87% 月 46%,主 provider 为余额型时显示 DS CNY 110.00;侧边栏折叠时退化为小圆点,任一 provider 异常变红+红点;
  • 全局详情卡shell.overlay,点击徽标在左侧弹出,徽标正上方):每个 provider 独立区块(用量三格/余额卡、重置倒计时、趋势、告警)+ 分 provider 的 API Key 配置;Esc 或点遮罩关闭。

用于在额度被他人盗刷/余额异常消耗时第一时间发现异常,不遮挡会话内容

数据来源

provider类型接口
opencode-gousage(5h/周/月)GET https://opencode.ai/zen/go/v1/usage(官方未公开文档化接口,cc-switch #6433 发现)
deepseekbalanceGET https://api.deepseek.com/user/balance

安装

Profile Bundle(推荐)——路径用 Windows 正斜杠:

dsh plugin --profile web add "C:/path/to/dsh-opencode-usage"   # 或发布后: dsh plugin --profile web add dsh-opencode-usage

验证安装

dsh --profile web --dump-config | grep opencode-usage
# → - id: opencode-usage
#     name: 'dsh-opencode-usage'

运行验证(agent 端到端):dsh run "查一下 opencode 用量"(agent 会调用 opencode_usage 工具)。

然后重启 dsh web(Ctrl+C 后重新运行),侧边栏底部(设置入口上方)出现用量徽标。

配置 API Key(分 provider,环境变量优先——key 不落盘)

  • opencode-go:环境变量 OPENCODE_API_KEY > ~/.local/share/opencode/auth.jsonopencode /connect 登录)> 面板手动配置;
  • deepseek:环境变量 DEEPSEEK_API_KEY > 面板手动配置。

手动 Key 明文存 ~/.dsh/dsh-opencode-usage.json(权限 0600;Key 不经模型上下文,浏览器直连本机接口)——仅作兜底,推荐用环境变量。

能力与限制

  • opencode-go:官方用量统计(5h 滚动 / 周 / 月百分比 + 重置时间),写入本地历史(~/.dsh/dsh-opencode-usage-history.json,0600),默认每 5 分钟采样一次;deepseek:余额快照(不写历史);
  • 页面 60 秒自动刷新(全局单轮询)、重置倒计时每秒更新;
  • 告警:用量型单次增幅 ≥5%(6h 内)、深夜时段(23:00–06:59)增长 ≥1%、或 5h 滚动 ≥80% 标红;余额型 ≤20(任意币种)警告、≤0 标红;
  • agent 可用工具 opencode_usage 查询所有已配置 provider 状态。

安全提示:手动填写的 API Key 以明文保存在本机私有文件(0600),仅本机用户可读;请勿在不受信任的环境使用。怀疑 Key 泄露时,请到对应平台立即吊销并更换。

结构

lib/core.js     纯逻辑:Key 解析、/v1/usage 抓取与解析、历史采样、告警推导(可单测)
lib/index.js    宿主插件:/api/dsh-opencode-usage/{status,usage,refresh,config} 路由、
                opencode_usage 工具、systemPrompt 公告(loopback 信任围栏)
lib/client.js   浏览器端:composer.dock 一行 + sidebar.footer.action 徽标 + shell.overlay
                详情卡(React,shell 提供;共享 usage store 单轮询)
test/           自检:node test/selfcheck.mjs

自检(14 项)

npm test   # node test/selfcheck.mjs:解析/抓取/Key 解析/配置迁移/历史/告警(含深夜时段)/DeepSeek 余额/注册契约