实时拉取 OpenRouter 模型与价格并统计花费
29.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Boomerangz/dsh-openrouter-live该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 39 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/5) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
- 发起网络请求client/client.js:57
const response = await fetch(ROUTE + '?session=' + encodeURIComponent(sessionId), { headers: { accept: 'application/json' } }) - 发起网络请求lib/adapter.js:156
response = await this.fetch(`${settings.baseURL}/chat/completions`, { - 读取本地文件lib/ledger.js:96
text = await readFile(this.path, 'utf8') - 写入本地文件lib/ledger.js:136
await mkdir(dirname(path), { recursive: true }) - 写入本地文件lib/ledger.js:137
await appendFile(path, `${JSON.stringify(record)}\n`, 'utf8') - 发起网络请求lib/catalog.js:224
const response = await this.deps.fetch(`${baseURL}/models`, {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-attachment@deepseek-ai/dsh-commands@deepseek-ai/dsh-credentials@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 实时拉取模型列表
- 查询模型价格
- 统计花费
DeepSeek Harness 的 OpenRouter 服务商,带实时模型列表、价格和花费追踪
README
由 DeepSeek 最新模型翻译生成dsh-openrouter-live
一个用于 DeepSeek Harness(dsh)的 OpenRouter 提供程序,它读取 OpenRouter 的实时模型列表,因此只要 OpenRouter 提供某个模型,它就会出现在选择器中。
该 harness 内置的 openrouter 路由从每个版本捆绑的目录中列出模型。在该快照之后发布的模型(例如 deepseek/deepseek-v4.1-flash)在下一个 harness 版本发布之前不会出现在选择器中。此插件添加了第二条路由,OpenRouter (live)。它读取 OpenRouter 的 /models 端点,并从那里获取每个模型的元数据。
它的功能
- 实时模型列表。 它列出所有接受工具的 OpenRouter 模型,按名称排序,因此来自同一供应商的模型会保持在一起。每个名称末尾都带有每百万 token 的输入/输出价格。该列表每 10 分钟刷新一次。如果刷新失败,则继续使用之前的列表。
带价格的模型选择器
- 每个模型的元数据。 上下文窗口和输出上限来自 OpenRouter。推理级别来自模型自身的 reasoning.supported_efforts,因此编辑器只提供该模型接受的级别,当推理为可选时还包括 Off。
- 图像输入。
展开完整文档(README 剩余 1 节)
dsh-openrouter-live
一个用于 DeepSeek Harness(dsh)的 OpenRouter 提供程序,它读取 OpenRouter 的实时模型列表,因此只要 OpenRouter 提供某个模型,它就会出现在选择器中。
该 harness 内置的 openrouter 路由从每个版本捆绑的目录中列出模型。在该快照之后发布的模型(例如 deepseek/deepseek-v4.1-flash)在下一个 harness 版本发布之前不会出现在选择器中。此插件添加了第二条路由,OpenRouter (live)。它读取 OpenRouter 的 /models 端点,并从那里获取每个模型的元数据。
它的功能
- 实时模型列表。 它列出所有接受工具的 OpenRouter 模型,按名称排序,因此来自同一供应商的模型会保持在一起。每个名称末尾都带有每百万 token 的输入/输出价格。该列表每 10 分钟刷新一次。如果刷新失败,则继续使用之前的列表。
带价格的模型选择器
- 每个模型的元数据。 上下文窗口和输出上限来自 OpenRouter。推理级别来自模型自身的 reasoning.supported_efforts,因此编辑器只提供该模型接受的级别,当推理为可选时还包括 Off。
- 图像输入。 对于其 /models 条目中列出 image 输入的模型,它会内联图像。它遵循 harness 的图像预算:图像会被缩小,当请求变得过大时,最旧的图像会被卸载。
- 推理连续性。 它在后续请求中回传 reasoning_details,包括已签名和加密的条目。这让 Claude 和 DeepSeek 等模型能够在工具调用之间保持其推理。
- 提示缓存。
- Anthropic 模型会在系统提示和最新消息上获得缓存断点。在一次实时检查中,第二个请求从缓存中读取了 7223 个提示 token 中的 7209 个。
- 其他提供程序会自动缓存。x-session-id 头会将每个对话保持在一个上游提供程序上,因此其缓存保持温热。
- 分类失败。 错误会映射到 harness 的失败代码,因此 harness 重试插件只会重试值得重试的内容:
- 重试:速率限制,并遵循 OpenRouter 的 Retry-After;上游 5xx 错误;空闲流;截断的流;空响应。
- 不重试:错误的密钥、耗尽的额度和上下文溢出。
- 实际支出,包括子代理。 该插件记录 OpenRouter 为每个响应报告的收费(usage.cost),因此这些是真实收费,而不是 token 估算。每笔收费都归属于发出请求的会话以及它被委托自的每个会话。在 CLI 或 Web UI 中输入 /cost:
OpenRouter spend in this session: $0.0022 (5 requests)
this agent: $0.0011 (3 requests)
subagents: $0.0011 (2 requests in 1 session)
All recorded sessions: $0.0022 (5 requests).
在 Web UI 中,会话总计始终显示在输入框下方,紧挨着内置统计信息和上下文计量器。它会在回合进行期间更新,包括子代理产生的费用,其工具提示会将总计拆分为代理及其子代理两部分。在没有 OpenRouter 费用的会话中,它会被隐藏。
输入框下方的支出
费用会追加到 ~/.dsh/openrouter-live/costs.jsonl,每个响应一行 JSON,因此总计在重启后依然保留。每一行都带有 OpenRouter 生成 id,因此任何费用都可以与你的 OpenRouter 活动页面进行匹配。
- 共享凭据。 默认情况下,该路由读取与内置 openrouter 路由相同的 OPENROUTER_API_KEY 凭据,因此你已存储的密钥无需额外设置即可使用。
要求
- DeepSeek Harness 0.1.6-alpha.2 至 0.1.7。它已在 0.1.6-alpha.2 和 0.1.7-alpha.2 上测试过。harness API 处于预稳定阶段,因此后续 harness 版本在测试后才会加入 peer 范围。
- Node.js ^22.19 || >=24。
- 一个 OpenRouter API 密钥。
安装
从 npm 安装:
dsh plugin --profile web add dsh-openrouter-live
从本地检出安装:
git clone https://github.com/Boomerangz/dsh-openrouter-live.git
cd dsh-openrouter-live
npm install
npm pack --pack-destination dist # runs typecheck and tests first
dsh plugin --profile web add "$PWD/dist/dsh-openrouter-live-0.2.0.tgz"
[!IMPORTANT]
安装打包好的 .tgz,而不是目录。当你添加目录时,pnpm 会链接它,Node 会将链接解析到 profile 之外的真实路径,而 harness 包(@deepseek-ai/)在那里无法找到。整个 profile 随后将无法启动。
安装后重启 profile。OpenRouter (live) 随后会出现在模型选择器中。如果你还没有存储密钥,请选择以下方式之一:
- 在 设置 → 模型 下的内置 OpenRouter 卡片中输入它。它会被存储为 OPENROUTER_API_KEY,两个路由都会读取它。
- 在启动 dsh 之前导出 OPENROUTER_API_KEY。
要将其选为默认模型,请在输入框的模型选择器中选择它。你也可以在 ~/.dsh/settings.yaml 中设置:
agent-default-model:
provider: openrouter-live
model: deepseek/deepseek-v4.1-flash
配置
每个字段都是可选的。在 profile 的补丁层 ~/.dsh/profiles//cordis.patch.yml 中,在插件的条目 id openrouter-live 下设置字段:
- id: openrouter-live
config:
models: ['deepseek/', 'anthropic/claude-', 'openai/gpt-5']
extraBody:
provider:
sort: throughput
| 字段 | 默认值 | 含义 |
| models | [] | 针对模型 id 的 glob 模式。空列表会列出所有模型。过滤器之外的 id 在手动输入时仍然可用。 |
| toolsOnly | true | 仅列出其 OpenRouter 条目接受 tools 的模型。代理回合需要工具。 |
| priceInName | true | 将每 1M token 的输入/输出价格追加到模型名称后,例如 DeepSeek: DeepSeek V4.1 Flash ($0.15/$0.60),因为选择器只显示名称而不显示描述。价格随后也会出现在编辑器的模型按钮中。 |
| apiKeyEnv | OPENROUTER_API_KEY | 凭据引用:凭据存储条目或环境变量。 |
| provider | openrouter-live | 路由 id。为每个实例指定各自的 id,以便并行运行多个实例,例如一个带有 :free 过滤器的实例。 |
| displayName | OpenRouter (live) | 选择器中的提供方名称。 |
| baseURL | https://openrouter.ai/api/v1 | API 根地址。 |
| modelListTtlMs | 600000 | 一次获取的模型列表被复用的时长。 |
| maxTokens | 32768 | 未设置输出上限的请求的输出上限。较低的模型限制优先。 |
| defaultContextWindow | 262144 | 列表未描述的 id 所假定的上下文大小。 |
| streamIdleTimeoutMs | 300000 | 响应流中最长的静默时间,超过则以 TIMEOUT 失败。 |
| maxRequestImageBytes | 20971520 | 每个请求的 Base64 图像预算。超过后,较旧的图像会被卸载。 |
| requestImagePixelBudget | 4194304 | 单个请求图像的像素预算。 |
| requestImageMaxBytes | 1048576 | 单个请求图像的编码字节目标。 |
| appTitle / appUrl | DeepSeek Harness / 未设置 | OpenRouter 应用归属 标头(X-OpenRouter-Title、HTTP-Referer)。 |
| extraBody | {} | 合并到每个请求体中的字段,例如 提供方路由。插件设置的字段优先。 |
| costLedgerPath | $DSH_HOME/openrouter-live/costs.jsonl | 支出账本文件。空字符串则仅将支出保留在当前进程的内存中。 |
| costCommand | cost | 报告支出的斜杠命令。在共享账本的第二个实例上将其留空,这样该命令只注册一次。 |
| costIndicator | true | 提供 Web UI 支出指示器的数据路由(/openrouter-live/spend)。在第二个实例上禁用它,否则会占用同一路由。 |
| retryPolicy | harness 默认值 | 此路由的 harness 提供方重试策略:{mode: normal, maxRetries, retryableCodes, backoff} 或 {mode: always}。 |
它如何映射到 OpenRouter
| Harness | OpenRouter 聊天补全 |
| 系统提示、用户和助手文本 | system、user 和 assistant 消息 |
| 工具定义和工具调用 | tools(函数类型)和 tool_calls |
| 工具结果 | tool 消息。工具返回的图像随后放在 user 消息中,因为 tool 消息只携带文本。 |
| 图像 | image_url 数据 URL,每个前面都有 harness 的图像句柄行 |
| 推理强度 | reasoning.effort |
| 推理输出 | reasoning 流变为推理块。reasoning_details 保留用于重放。 |
| 用法 | prompt_tokens 被拆分为未缓存输入、缓存读取和缓存写入。推理 token 单独报告。 |
开发
npm install
npm run check # tsc --checkJs (strict) + node:test suite
OPENROUTER_API_KEY=... npm run smoke # live checks against OpenRouter; costs a few cents
该插件是带有 JSDoc 类型的纯 ESM JavaScript,因此无需构建步骤即可运行。npm pack 会在 types/ 中生成 .d.ts 文件。测试套件包含一个组合测试,它在 Cordis 上下文中从 @deepseek-ai/dsh-llm 启动真实的 LlmRuntime 并通过它进行流式传输。
已知限制
- 支出仅涵盖通过此插件路由的请求。内置的 openrouter 和 deepseek-official 路由不计入。
- 当 OpenRouter 在响应结束时报告费用时,会记录一笔扣费。被取消或在流式传输中途失败的请求仍可能被 OpenRouter 计费,但不会出现在 /cost 中。
- Web UI 指示器读取的路由仅响应发往回环地址(127.0.0.1、localhost)的同源请求,因为 harness Web 服务器不会对插件路由进行身份验证。当通过网络打开 Web UI 时,指示器保持隐藏;/cost 仍然可用。
- /cost 需要 harness 命令服务,CLI 和 Web 配置文件会挂载该服务。无头运行仍会写入账本。
- 仅使用 OpenRouter 的文本输出。图像生成和音频模型仅在它们也接受工具时才会列出,并且它们的非文本输出会被忽略。
- 选择器中的价格是 OpenRouter 的基础价格。不显示分时段价格覆盖。
- 显式缓存断点仅针对 anthropic/ 模型发送。其他所有模型依赖其提供商的自动缓存。
- 一个会进行推理但未发布 supported_efforts 的模型不会获得推理选择器,因此会应用 OpenRouter 的默认值。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Boomerangz/dsh-openrouter-live
实时拉取 OpenRouter 模型与价格并统计花费
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1