← 返回列表
需源码安装
一个可直接使用的 dsh-plugin,用于
暂不能直接安装(需源码编译或环境不满足):缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。 · 最近上游提交 2026/8/25 · 已提供中文文档
实时 DeepSeek V4 API 高峰/低谷状态小组件——可直接用于 deepseek-ai/deepseek-harness 的 dsh-plugin,另附独立浏览器小组件。
综合分
37.6
GitHub 分
37.6
用户评分
—
★ Stars
15
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add YMRYMR/deepseek-peak缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装,改用 GitHub 源安装
信任档位:已验证本站已于 4 天前真实安装成功(L4 · 真实安装)
- 是什么
- dsh 原生插件 · browser
- 装得上吗
- 本站已真实安装成功(L4 · 真实安装,非静态推断)
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 更新放缓:最近一次提交在 32 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
🟢实装验证通过· 2026/9/21
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/21(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包deepseek-peak(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=18 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/21 20:15:24
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成deepseek-peak 一个可直接使用的 dsh-plugin,用于 deepseek-ai/deepseek-harness Web UI,显示 DeepSeek V4 API 当前的峰时 / 谷时定价 状态,让你可以在峰时暂停 LLM,并通过一个会自动清空的队列进行排队,监控你的账户余额,并在 余额低于你设置的阈值时发出警告。 峰时插件显示 PEAK 胶囊标签,下方展开队列和 余额卡片 会话标题栏中的 PEAK 胶囊标签、带有 REFRESH 和 TOP UP 操作的 BALANCE 行,以及按模型展示的 30 天峰时/谷时 柱状图(v4-pro 和 v4-flash)。当 余额低于配置的 lowBalanceWarningUsd 阈值时,胶囊标签会变为琥珀色。 功能 - 胶囊标签(始终可见,位于会话标题栏中 Session log 按钮旁边)。根据浏览器时钟对照内置的 UTC 时间表 读取当前阶段: - 谷时窗口内为绿色 - 峰时窗口内为红色(费率为谷时的 2 倍) - 在预览新时间表时显示 PRE-CUTOVER 徽章 - 显示到下一个阶段边界的实时倒计时 - 在切换前显示 → live 目标箭头,切换后显示 → next phase HH:MM 箭头 - 胶囊标签右边缘有一个暂停开关:当开启且阶段 为峰时时,LLM 流会被门控,用户消息会排队而不是 运行 - 当账户余额低于 配置的 lowBalanceWarningUsd 阈值时,显示琥珀色边框 + 圆点 + 标签(默认 $1.00)。 会覆盖阶段颜色,以便低余额 一目了然。 - 工具提示(悬停时,在胶囊标签打开时)。在 胶囊标签下方展开: - 一个 BALANCE 行,显示当前 DeepSeek 账户余额 (通过 /api/peak-hours/balance 由宿主路由,因此 API 密钥永远不会 离开 harness 进程)。右侧有两个操作胶囊: - REFRESH — 绕过 5 分钟的宿主缓存以及浏览器缓存, 这样刚刚充值过的用户无需等待 自然刷新周期就能看到新数字。 - TOP UP — 在新标签页中打开 https://platform.deepseek.com/top_up。 - 针对用户在最近 30 天内运行过的每个模型(v4-pro、v4-flash), 各显示一个按模型的图表卡片。每张卡片都有一个很小的内联 SVG 每日柱状图,宽度为 30 天,峰时(红色)叠加在 谷时(绿色)之上。该拆分是根据每个事件的 UTC 时间戳对照时间表计算得出的。 - 一个小图例,使峰时/谷时拆分无需 工具提示也能看懂。 - 当 LLM 被门控且队列中有项目时,图表下方会出现一个队列卡片, 其中每条排队消息占一行,并且每行都有一个发送箭头, 可立即发送该条消息(绕过全局暂停)。 - 设置(注册在宿主设置平面中现有的 peak-hours 命名空间上, 通过 Settings → Plugins → Plugin configuration → Peak hours 暴露): - paused —— 布尔值,与 pill 开关写入的值相同。两条 写入路径写入同一字段;后写入者胜出。 - lowBalanceWarningUsd —— 数字,低于该阈值时 pill 切换为琥珀色。默认 $1.00。允许为零(始终 警告);负数会被 schema 拒绝。 - 后台刷新: - 状态轮询在浏览器上每 2 秒运行一次(Pill 的 usePeakHoursState 钩子),因此开关 / 阈值 / 队列 / 余额变化会在两个 轮询周期内传播。 - 余额在服务端获取并缓存 5 分钟,对瞬时错误 进行 30 秒快速重试,这样短暂的抖动不会污染 缓存。 - 图表的每日分桶来自宿主机的 /api/peak-hours/usage 路由,该路由会遍历会话持久化 日志。浏览器内的轨迹遍历是 harness 未运行时的回退方案。 事实来源:api-docs.deepseek.com/quick_start/pricing/。 时间窗口和切换日期作为常量硬编码 在 src/client/domain.ts 中。PRE-CUTOVER 窗口是 “新时间表公布”与“新时间表 生效”之间的时期;pill 会在该期间显示它,并且只要 paused && peak,无论切换状态如何,门控都会启用。 本仓库包含两样东西: 1. harness-plugin/ —— 一个用于 harness Web UI 的 dsh-plugin Cordis 客户端包。这是真正的集成。 2. widget.html + serve.js —— 一个自包含的浏览器小部件, 你可以将其固定为任何浏览器中的标签页,无需 harness。对于 不运行 harness 的用户来说,这是一个有用的回退方案。它不包含 暂停 / 队列 / 余额功能;它只是一个阶段 + 倒计时显示。 harness 插件是功能丰富的那个。独立小部件是一个 “第二显示器上的时间表”显示。 安装(harness 插件) 需要: - 一个已检出的 deepseek-harness 工作树(任意近期提交) - node ≥ 22.19 - pnpm ≥ 11(用 npm i -g pnpm 安装一次) Clone this repo git clone https://github.com/YMRYMR/deepseek-peak.git cd deepseek-peak One-liner installer: takes your harness clone as the argument ./install.sh /path/to/deepseek-harness 安装程序会做什么(每一步都是幂等的,如果已完成则跳过): 1. 将 harness-plugin/ 复制到 /packages/client/ui-peak-hours/ 2. 将 ui-peak-hours 行添加到 packages/bundle/web-app/cordis.patch.yml 3. 将工作区依赖添加到 packages/bundle/web-app/package.json 4. 将项目引用添加到 tsconfig.client.json 5. 将路径映射添加到 tsconfig.base.json 6. 在 harness 中运行 pnpm install 7. 运行 pnpm run build:lib:host(生成的 Typert 契约所必需) 8. 运行 pnpm --filter @deepseek-ai/dsh-client-ui-peak-hours run bundle 9. 运行 harness 验证门控(仅警告) 然后启动 harness: cd /path/to/deepseek-harness pnpm dsh web 打开 http://127.0.0.1:3080/。该胶囊会出现在会话标题栏的右上角,位于 Session log 按钮的左侧。 首次使用时请硬刷新浏览器(Ctrl+Shift+R),以便加载新的 __DSH_BOOT__ 名单。 你应该看到的内容 一个紧凑的胶囊,宽约 180 px,形状如下(从左到右): [●] PEAK PRE-CUTOVER 08h 11m → live [pause-switch] - [●] 是彩色圆点——非高峰为绿色,高峰为红色,当余额低于配置的阈值时为琥珀色(覆盖阶段颜色) - 阶段标签和 PRE-CUTOVER 徽章(仅在切换前窗口期间显示) - 到下一个阶段边界的倒计时(1 Hz 跳动) - 目标箭头:切换前显示 → live,切换后显示 → next phase HH:MM - 右边缘的暂停开关(开启时为红色,关闭时为灰色) 悬停胶囊 卡片会在胶囊下方展开: - BALANCE 行——你的 DeepSeek 账户余额,右侧有 REFRESH 和 TOP UP 操作 - 针对你在过去 30 天内使用过的每个模型(通常是 v4-pro 和 v4-flash)的按模型图表卡片。微型内联 SVG 每日柱状图,宽 30 天,高峰(红色)叠加在非高峰(绿色)之上。每日总量显示在每个卡片的右上角。 - 图表下方的小型图例:红色 = 高峰,绿色 = 非高峰 - 如果队列中有项目,会显示一个队列卡片,每个排队消息一行,并带有用于手动派发的逐行发送箭头 高峰期间暂停工作流 1. 点击胶囊中倒计时右侧的暂停开关。 2. 当开关开启且阶段为高峰时,下一个 LLM 流(用户消息或子代理工具调用)会被门控。harness 会将请求显示为已排队,工具提示会展开以显示队列卡片。 3. 队列为 FIFO。每个项目会在开关关闭或阶段离开高峰的那一刻被派发。 4. 若要在不切换全局暂停的情况下派发单个项目,请点击队列卡片中该行的逐行发送箭头。 低余额警告 打开 Settings → Plugins → Plugin configuration → Peak hours,将 lowBalanceWarningUsd 设置为你偏好的下限(默认 1.00)。当实时账户余额低于该值时,胶囊会立即变为琥珀色。也可以直接在 ~/.dsh/settings.yaml 中覆盖同一字段: peak-hours: paused: false lowBalanceWarningUsd: 1.5 下一次 2 秒的状态轮询会自动获取新值。 卸载 ./uninstall.sh /path/to/deepseek-harness 该脚本会删除插件目录,并打印出你需要手动删除的四个小型接线条目(分别在 cordis.patch.yml、package.json 和两个 tsconfig 文件中各一行)。 安装(独立小部件) 无需 harness。只需要一个提供静态 HTML 页面的 Node 服务器。 cd deepseek-peak node serve.js 会在你的默认浏览器中打开 http://127.0.0.1:3737/。固定该标签页。在终端中按 Ctrl+C 停止。 独立小部件包含一个 24 小时高峰时段的时间线,一个 V4-Flash / V4-Pro 模型选择器,以及每个档位实际的 $/1M-token 费率。在没有打开 harness 的屏幕上很有用。 暂停 / 队列 / 余额功能不在独立小组件中——它们只存在于 harness 插件里。 为什么既有插件又有独立版本 harness 药丸在 harness 内部是正确答案。独立版本在其他所有地方都是正确答案(第二台显示器、平板、手机浏览器)。两者都根据同一份权威时间表计算相同的数字,因此它们永远不会不一致。 插件暴露的宿主路由 | 路由 | 方法 | 用途 | | --- | --- | --- | | /api/peak-hours/state | GET | 当前暂停 / 阶段 / 队列 / 余额 / 阈值(浏览器每 2 秒轮询一次) | | /api/peak-hours/state | POST | 切换全局暂停(通过宿主的设置服务写入) | | /api/peak-hours/balance | GET | 实时 DeepSeek 账户余额(宿主缓存 5 分钟) | | /api/peak-hours/balance?fresh=1 | GET | 强制从上游重新获取(绕过宿主缓存和浏览器缓存;工具提示中的 REFRESH 按钮会调用此接口) | | /api/peak-hours/usage?rangeDays=N | GET | 最近 N 天的按天、按模型的 token / 成本分桶(默认 30,最大 365;宿主缓存 5 分钟) | | /api/peak-hours/usage?fresh=1&rangeDays=N | GET | 强制宿主重新遍历会话持久化日志 | | /api/peak-hours/queue/dispatch | POST | 手动派发队列中最前面的项目(队列卡片中每行的发送箭头会调用此接口) | API 密钥由宿主的凭据接缝持有,永远不会到达浏览器——宿主路由读取密钥,从 api.deepseek.com 获取数据,并返回解析后的 JSON 信封。 已验证 该插件通过了我在 Windows 开发树上能运行的所有 harness 门禁: | 检查 | 结果 | | --- | --- | | pnpm run constraints | 220/220 个包符合规范 | | pnpm run verify-cordis-config | 120/120 个配置文件通过 | | pnpm run verify-package-invariants | 220/220 个手工维护的伴随包符合规范 | | tsc -b tsconfig.client.json | 干净 | | pnpm --filter ... run bundle | 约 78 kB 的 client.js | | pnpm run build(宿主 + 客户端 + Web) | 干净 | | 实时运行时冒烟测试(curl /plugins/.../client.js) | 200,约 78 kB,插槽已注册 | 源码布局是什么样的 deepseek-peak/ ├── README.md # 本文件 ├── LICENSE # MIT ├── .gitignore ├── install.sh # harness 插件的一行安装脚本 ├── uninstall.sh # 回滚辅助脚本 ├── package.json # 独立小组件的包 ├── serve.js # 独立小组件的 Node 服务器 ├── smoke.js # 独立小组件的自测(5/5 通过) ├── widget.html # 独立小组件 ├── docs/ │ └── pill-preview.png # 本 README 顶部的截图 └── harness-plugin/ # harness 内插件(由 install.sh 复制到 harness 克隆目录) ├── package.json ├── tsconfig.json ├── tsdown.config.ts ├── README.md └── src/ ├── index.ts # 宿主端 — 路由、设置、 │ # LLM 网关、1 Hz 阶段计时器 ├── invariant.ts ├── css-modules.d.ts └── client/ ├── index.ts # 浏览器 apply() — 注册胶囊组件 ├── domain.ts # 纯高峰/非高峰计算、时间表、 │ # 切换前计算 ├── phase.ts # 阶段类型、currentPhase()、标签 ├── peakHoursState.ts # 状态钩子 — 2 秒轮询、暂停开关 ├── balance.ts # 余额获取 + 5 分钟缓存、支持 REFRESH ├── usage.ts # 宿主用量获取,带宿主端回退 ├── pricing.ts # 模型显示名称 ├── PeakHoursPill.tsx # 始终可见的 React 组件 ├── PeakHoursPill.module.css ├── PeakHoursHost.tsx # 悬停状态宿主;渲染工具提示 + 队列 ├── PeakHoursHost.module.css ├── UsageTooltip.tsx # 工具提示卡片(余额 + 图表 + 队列) ├── UsageTooltip.module.css ├── QueueCard.tsx # 每行调度卡片 ├── QueueCard.module.css ├── PauseSwitch.tsx # 胶囊组件的右边缘开关 ├── PauseSwitch.module.css ├── PeakHoursDock.tsx # 旧版 input.dock 变体,保留以供 │ # 参考;当前胶囊组件位于 │ # 会话头部 └── PeakHoursDock.module.css 说明 - 时间表和切换前日期以常量形式内置在 src/client/domain.ts 中。如果 DeepSeek 更改了时间窗口或 切换日期,请编辑那里的常量并重新打包。 - 所有时间均以 UTC 计算;仅显示时本地化为 浏览器的 IANA 时区。 - 胶囊组件依据内置的 UTC 时间表信任浏览器时钟。 系统时钟设置错误的用户将看到误导性的 状态。未来的迭代可以通过 worldtimeapi.org 进行合理性检查。 - 胶囊组件上的暂停开关和插件配置页面中的 paused 字段是写入同一持久化设置的 两条写入路径。2 秒状态轮询会协调 最后写入的一方。 - 胶囊组件的 REFRESH 按钮会使浏览器缓存失效(因此 快速第二次点击仍能到达宿主),并以 ?fresh=1 调用宿主(因此宿主会绕过自己的 5 分钟缓存并 从 api.deepseek.com 重新获取)。两者都必须运行最新代码, REFRESH 才能端到端工作;宿主更改需要重启 dsh web。 许可证 MIT。参见 LICENSE。