deepseek-time
一款Agent插件,能够实时直观显示DeepSeek当前收费时段状态。DeepSeek pricing-period status indicator with Hermes, DSH, and Codex adapters.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 18, 2026
- Updated
- Aug 24, 2026
Introduction
DeepSeek Time
DeepSeek Time 是一个开源的 DeepSeek 定价时段状态指示器。程序始终使用北京时间(Asia/Shanghai),在空闲时段显示蓝色图标,在高峰时段显示红色图标,并实时倒计时到下一个时段边界。
适用于DeepSeek Harness、Hermes、Codex。(但Codex端无法实现常驻显示,故不推荐在Codex中使用)
当前规则:
- 高峰时段:北京时间周一至周五
09:00-12:00、14:00-18:00 - 空闲时段:其余时间,周六、周日全天为空闲时段
DeepSeek 的价格和时段可能调整,使用前请查看官方页面:https://api-docs.deepseek.com/zh-cn/quick_start/pricing/。
更新说明
V10(2026-08-21)
- DSH 图标支持自由拖拽,并记忆用户最后的位置。
- DSH 每次重新悬停图标时刷新查询 DeepSeek API 余额,不再缓存已完成的余额结果;并发查询会合并,保留超时、失败和无凭据处理。
- DSH 余额查询在 Host 侧使用凭据服务完成,API Key 不进入浏览器或 GitHub。
- Codex 在调用
show_deepseek_time时查询余额(需要 MCP 进程显式提供DEEPSEEK_API_KEY)。 - Hermes 继续保持仅显示时段和倒计时,因为其磁盘插件 SDK 未提供安全读取内部凭据的接口。
V11(2026-08-23)
- 根据 DeepSeek 官方最新规则,峰值定价仅适用于北京时间周一至周五的
09:00-12:00、14:00-18:00。 - 周六、周日全天显示为空闲时段,并倒计时至下一个周一
09:00。
三端适配器
三端共享 packages/core/ 中经过测试的时间逻辑,但安装方式分别遵循宿主产品的插件规范:
adapters/hermes/:Hermes Desktop 单文件磁盘插件,显示在原生左侧状态栏,不影响输入框;当前只显示时段和倒计时,不读取 Hermes 内部 API 凭据。adapters/dsh/:DeepSeek Harness(DSH)Web 客户端包,使用原生会话输入插槽,默认位于侧边栏外侧靠近底部,支持拖拽记忆位置;悬停时可通过 DSH 凭据服务查询余额。adapters/codex/deepseek-time/:Codex 插件,提供show_deepseek_timeMCP 工具和实时状态卡;画中画是否显示由 Codex 宿主决定。
构建与验证
要求 Node.js 20 或更高版本和 npm;Hermes、DSH 安装还需要各自支持的包管理器。
npm run build
npm run verify
npm run build 会生成共享模块、图标路径、Hermes 单文件插件和 DSH 客户端包。不要手动编辑适配器 lib/ 或生成的 src/ 文件;修改源模板或共享核心后重新构建。
安装 Hermes Desktop
- 克隆仓库并运行
npm run build。 - 将
adapters/hermes/plugin.js复制为 Hermes 桌面插件目录中的deepseek-time/plugin.js:
$ErrorActionPreference = 'Stop'
if ([string]::IsNullOrWhiteSpace($env:HERMES_HOME)) { throw '请先设置 HERMES_HOME,或使用 Hermes 文档指定的插件目录。' }
$pluginDir = Join-Path $env:HERMES_HOME 'desktop-plugins\deepseek-time'
New-Item -ItemType Directory -Force $pluginDir | Out-Null
Copy-Item -LiteralPath 'adapters\hermes\plugin.js' -Destination (Join-Path $pluginDir 'plugin.js') -Force
- 重新加载 Hermes 插件或重启 Hermes。如果没有设置
HERMES_HOME,请使用 Hermes 安装文档指定的插件目录。
更新时重新构建并覆盖 plugin.js,再重新加载 Hermes。卸载时删除 deepseek-time 目录并重新加载。因为这是本地磁盘插件,所以可能不会出现在 Hermes 的可搜索 marketplace 列表中。
安装 DeepSeek Harness(DSH)
- 克隆仓库并运行
npm run build。 - 在 DSH Web profile 目录执行以下命令,将
<仓库路径>替换为实际克隆路径:
pnpm add "file:<仓库路径>\adapters\dsh"
pnpm install
- 编辑 DSH Web profile 目录下的
package.json,在现有dsh.profile.bundles数组中加入一次deepseek-time,并保留数组中的其他 bundle。pnpm add只会添加依赖,不会自动把 bundle 加入该数组。确认依赖和 bundle 同时存在后,再运行pnpm install并重启 DSH。包内的dsh.client和dsh.bundle元数据会提供客户端和 Loader 注册。
配置结构应类似下面这样;只添加条目,不要覆盖 profile 原有内容:
{
"dsh": { "profile": { "bundles": ["已有 bundle", "deepseek-time"] } },
"dependencies": { "deepseek-time": "file:<仓库路径>/adapters/dsh" }
}
从旧版本升级时,将 profile package.json 中依赖值里的 adapters/harness 改为 adapters/dsh,不要保留旧路径,然后运行 pnpm install。更新时重新运行 npm run build,重复上述安装命令并重启 DSH。必须保留 adapters/dsh/lib/index.js、包根导出、main 和 cordis.patch.yml,它们用于保证 DSH 安全加载。
卸载时先从 dsh.profile.bundles 数组删除 deepseek-time,再执行 pnpm remove deepseek-time 和 pnpm install,最后重启 DSH;不要留下指向已删除包的 bundle 条目。
DSH 适配器要求宿主提供原生 conversation.input.dock 插槽,不会修改 DSH 源码或注入全局 CSS。余额功能要求 DSH 中配置 DEEPSEEK_API_KEY;Key 只在 Host 侧使用,不进入浏览器。
安装 Codex
仓库包含本地 marketplace:.agents/plugins/marketplace.json。从仓库根目录执行:
codex plugin marketplace add '<仓库路径>'
codex plugin add deepseek-time@deepseek-time
安装后新建 Codex 任务并调用 show_deepseek_time。更新时从同一个本地 marketplace 重新安装,并新建任务测试;卸载时使用当前 Codex 版本支持的移除命令,或在 Codex 设置中禁用/移除该 marketplace。
Codex 宿主决定 MCP App 是否获得画中画展示。插件会请求画中画,但不支持的宿主可能以内嵌状态卡显示。Codex 没有 Hermes/DSH 那样的永久全局 UI 插槽,因此该适配器由工具调用触发,不是应用启动时自动悬浮。调用工具时,如果 MCP 进程显式提供 DEEPSEEK_API_KEY,会查询并返回余额;Codex 插件不能读取宿主内部保存的凭据。
故障排查
- 源码修改后插件不更新:先运行
npm run build,再重新安装对应适配器。 - DSH 启动失败:检查
main、根导出、lib/index.js和dsh.bundle是否完整;lib/index.js同时注册余额 Host 路由,不能省略或改成仅客户端空入口。 - 应用内搜索不到插件:按照本 README 的本地安装方式操作。放到 GitHub 或本地 marketplace 不会自动加入产品官方插件目录。
- DeepSeek 调整定价规则后:以官方页面为准,并同步更新共享核心及测试。
开发
共享逻辑位于 packages/core/src/time-state.mjs,边界和倒计时测试位于 tests/:
npm run verify
提交代码时应包含重新生成的适配器产物,不要提交密钥、机器专属 profile 路径或已安装产品目录。
开源协议
本项目采用 MIT 开源协议,详见根目录 LICENSE。