dsh-provider-usage

DSH PLUGIN模型与账号接入

仓库 lizhouai/dsh-provider-usage · npm dsh-provider-usage

模型与账号接入 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-provider-usage 是 DeepSeek Harness 插件,在 Web 界面悬浮可拖拽小球,实时展示各 LLM 提供商的余额与配额,无需登录控制台即可掌握用量。

一句话选型结论

按资料字段整理

dsh-provider-usage 是模型与账号接入类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 4 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类模型与账号接入 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 3 复刻 1 · 未关闭 issue 1
最近更新 2026-09-29 创建于 2026-08-18
README 21.4 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add dsh-provider-usage@0.3.16
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.0-rc.2 等 7 个,Node.js 要求 ^22.19.0 || >=24;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.0-rc.2 等 7 个版本版本不匹配时安装会报错
Node.js 要求^22.19.0 || >=24来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/cordis@^4.0.1、@deepseek-ai/dsh-credentials@>=0.1.2-alpha.3 等 7 个需要同时安装的同级依赖
npm 包名dsh-provider-usage可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-provider-usage:DeepSeek Harness 的 LLM 提供商余额与配额监控插件

  • 自动检测提供商路由
  • 多提供商余额查询
  • 悬浮球健康指示
  • 双语界面与刷新

上游标签

balancecordisdeepseekdeepseek-harnessdshdsh-pluginfloating-widgetkimillmmoonshotpluginusageusage-tracking

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.0-rc.2 等 7 个),按版本装不容易报错。
  • 列出了 4 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 需要同时装好同级依赖,漏装会启动失败。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在模型与账号接入场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-provider-usage当前 L5 · 运行验证通过 低风险 3 0.2.0-rc.2 等 7 个 有
archify L4 · 沙盒安装通过 低风险 8.0 万 未标注 有
DeepSeek-Reasonix L4 · 沙盒安装通过 低风险 3.6 万 未标注 有
nocobase L3 · 安装规范通过 低风险 2.5 万 0.1.1-rc.2 无
learn-harness-engineering L4 · 沙盒安装通过 低风险 2.0 万 未标注 有
dsh-our-free-model 未做沙盒验证 未标注 8,064 未标注 无

仓库档案

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方lizhouai仓库 dsh-provider-usage · 默认分支 master
分类模型与账号接入ai
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue3 / 1 / 1收录时的数值,非实时
创建 / 更新2026-08-18 · 2026-09-29最后推送 2026-09-29
本站收录2026-08-22首次进入本站目录的时间

README 全文

21.4 KB
作者原文,中文版优先;只做安全转义,不改内容

English · 简体中文

dsh-provider-usage

Every provider's balance, one glance away. A DeepSeek Harness plugin that floats a small draggable usage ball over the Web GUI — no more logging into each provider console to check whether you are about to run out of credit mid-session.

Features

  • Auto-detection — enumerates the provider routes registered in the current profile (ctx.llm); zero configuration for well-known routes.
  • Per-kind wire adapters — routes with no public balance/usage API (Google, Mistral, Groq, Bedrock, Azure, Qwen Token Plan, …) are listed as unsupported instead of being silently dropped:
kind routes query shows
deepseek deepseek-official, deepseek GET {baseURL}/user/balance total / granted / topped-up balance
deepseek-account deepseek-account (dsh ≥ 0.1.7) GET {platformOrigin}/api/v0/users/get_user_summary account wallet balance (recharge + bonus merged; reads the harness's built-in DeepSeek Account sign-in, zero config). The harness composes this route unconditionally, so the card is omitted while no sign-in is stored — it appears on the next poll after you sign in
moonshot moonshotai-cn, moonshotai GET {baseURL}/users/me/balance available / voucher / cash balance
kimi-coding kimi-coding GET {baseURL}/v1/usages weekly usage + rate-limit windows, reset countdown
openrouter openrouter GET {origin}/api/v1/credits credits used / total
github-copilot github-copilot GET api.github.com/copilot_internal/user plan usage snapshots (paid) or monthly usage (free)
openai-codex openai-codex GET {baseURL}/wham/usage ChatGPT subscription 5h / weekly windows + credits + spend control (OAuth login, not an API key — see OpenAI Codex via OAuth)
openai openai GET {origin}/v1/organization/costs current-month spend (admin key required; a regular key fails with 403)
anthropic anthropic GET {baseURL}/v1/organizations/cost_report current-month spend (admin key required, x-api-key auth)
minimax minimax, minimax-cn GET {origin}/v1/api/openplatform/coding_plan/remains Coding Plan 5h / weekly remaining %
zai zai, zai-coding-cn GET {origin}/api/monitor/usage/quota/limit GLM Coding Plan windows (raw key in Authorization, no Bearer)
opencode opencode, opencode-go GET {baseURL}/usage Zen Go rolling / weekly / monthly windows
vercel-ai-gateway vercel-ai-gateway GET {baseURL}/v1/credits team credit balance
xai xai GET {baseURL}/billing/credits prepaid balance (USD)
volcengine-ark-agent ark-agent-plan, ark-agent-plan-cn POST open.volcengineapi.com GetAFPUsage Volcengine Ark Agent Plan 5h / weekly / monthly windows (needs IAM AK/SK signing, not the inference key — see Volcengine Ark Agent Plan / Coding Plan)
volcengine-ark-coding ark-coding-plan, ark-coding-plan-cn POST open.volcengineapi.com GetCodingPlanUsage Volcengine Ark Coding Plan session / weekly / monthly windows (same AK/SK pair)
- Credentials stay safe — API keys are resolved per request through the harness credentials service (environment variables / ~/.dsh/.credentials.yaml); never cached, never written to disk. For OAuth providers (OpenAI Codex) the plugin reads the grant record the sign-in flow stored, and refreshes it transparently when it is about to expire. The Volcengine Ark plan routes are the one case where a query needs more than the route's own key: plan usage is a signed control-plane call, so those two kinds read an IAM AK/SK pair instead (see Volcengine Ark Agent Plan / Coding Plan).
- Floating ball widget — a draggable floating ball opens the usage panel. Drop it anywhere in the viewport (position persisted); it docks by default at the bottom-left of the chat area with equal margins, and the panel-header home button sends it back. The panel scrolls when the provider list grows past its height, and its top edge is draggable to resize it taller or shorter (height persisted). The halo around the ball encodes the health of the provider in use — the focused session's own selection (its composer's model seat), tracked live on the client, so switching sessions re-highlights that session's provider immediately without re-selecting a model: green all good, amber when a usage window has under 30% left or a balance below the yellow threshold, red on query failure / missing key / usage ≥90% / balance below the red threshold. Idle providers running low do not color the ball — switch to another provider with enough headroom and the ball turns green again; the panel marks the in-use provider and still lists every provider's numbers.
- Version badge — the panel header shows the running plugin version next to the title, so it is obvious which release is loaded.
- Bilingual panel — built-in Chinese/English UI; follows the harness language by default, with a one-click toggle in the panel header (persisted in localStorage).
- Configurable refresh — adjustable in the panel (15s–30min, persisted in localStorage); the default comes from the plugin config.
- Configurable balance thresholds — balance-type providers (DeepSeek, Moonshot, Vercel AI Gateway, xAI) and the credits rows of usage-type providers (OpenRouter, OpenAI Codex) turn red below the red threshold and yellow below the yellow threshold, compared in the balance's own currency (defaults: red < 10, yellow < 30, whether CNY or USD). Both values are editable directly in the panel footer (persisted in localStorage); the defaults come from the plugin config. For providers reporting both a subscription plan and credits (e.g. OpenAI Codex), the two are OR'ed: the ball stays green while either one has enough left, and when both are running low the lighter warning wins (the plan is normally consumed before credits).
- Manual providers — add arbitrary gateways (e.g. a self-hosted DeepSeek-compatible endpoint) via config.

Screenshots

The floating ball (bottom-left, with the green healthy halo) and the open usage panel:

DeepSeek in use OpenAI Codex in use

OpenAI Codex via OAuth

OpenAI Codex is a ChatGPT-subscription provider: it authenticates with an OAuth access token, not an API key, so there is nothing to paste into a key field. dsh itself has no OAuth button for this route — but this plugin can still query its usage, because it reads the OAuth grant out of the harness credential store. Set the provider up once, and the usage panel shows your real 5-hour / weekly Codex windows.

1. Make sure the route exists

The sign-in writes a grant record addressed llm-pi-ai/openai-codex, and the route has to be configured for ctx.llm to list it. With the stock llm-pi-ai adapter mounted (default in the web profile), an empty profile is enough — e.g. in ~/.dsh/settings.yaml:

llm-pi-ai:
providers:
openai-codex: {}

2. Sign in through the harness authorization seam

dsh-llm-pi-ai registers an "OpenAI (ChatGPT Plus/Pro)" OAuth flow for openai-codex on the harness authorization seam (ctx.authorization, credential key llm-pi-ai/openai-codex). Complete it from any surface that runs that flow — a sign-in entry on the harness model/authorization UI, or any pi-ai client whose login persists through the harness credential store. Finish the browser (or device-code) flow with your ChatGPT account. The harness then stores the grant under ~/.dsh/.credentials.yaml as llm-pi-ai/openai-codex:

records:
llm-pi-ai/openai-codex:
kind: grant
payload:
type: oauth
access:
refresh:
expires:
accountId:

> The grant must land in the harness credential store (the record above). Codex clients that keep their own credential file (e.g. dsh-codex's $DSH_HOME/.openai-codex-auth.json, or the Codex CLI's ~/.codex/auth.json) do not write this record, so this plugin cannot see them.

3. Watch the usage

That's it. The route is auto-detected (ctx.llm lists openai-codex), and the plugin:

  1. reads the grant record from the credential store on every poll (no caching),
  2. refreshes the OAuth token automatically when it is within 30 s of expiry, deciding and rotating inside the store's exclusive lock — so a concurrent process that already rotated the grant is adopted instead of spending the same single-use refresh token twice, and a write that fails is reported rather than swallowed,
  3. calls GET https://chatgpt.com/backend-api/wham/usage with Authorization: Bearer and the ChatGPT-Account-Id header derived from the token's own JWT claim, retrying once after a refresh if the endpoint answers 401.

The panel then shows your subscription's 5h limit, weekly windows (used %, reset countdown) plus credits and spend control balances when the plan reports them. If the grant is missing the card reads "OAuth authorization missing (llm-pi-ai/openai-codex)" — sign in again with step 2. If upstream instead rejects the stored refresh token (refresh_token_reused / invalid_grant, i.e. the token was already spent or revoked and the rotation never landed here), the card reads "OAuth authorization expired — sign in to Codex again" with the raw upstream detail on hover, and the plugin stops calling the token endpoint for ten minutes instead of once per poll.

4. Troubleshooting: intermittent "Our servers are currently overloaded"

The Codex backend occasionally answers with Codex error: Our servers are currently overloaded. Please try again later., and the harness fails the round with PI_AI_ERROR. This is transient overload on OpenAI's side (account, quota, and network are usually fine — GET /wham/usage confirms window headroom), yet the default configuration never retries, for two reasons:

  1. pi-ai's Codex client recognizes overloaded as retryable, but its default retry count is 0 (dsh-llm-pi-ai explicitly passes maxRetries: 0);
  2. once the error bubbles up, its text contains no 5xx / rate limit / timeout keyword, so it is classified as the catch-all PI_AI_ERROR — which is not among dsh-llm-retry's default retryable codes (EMPTY_RESPONSE / RATE_LIMIT / SERVER / TIMEOUT / TRANSPORT), so the round fails immediately.

Add a retryPolicy for this provider in ~/.dsh/settings.yaml that includes PI_AI_ERROR in the retryable codes (takes effect on a new session):

llm-pi-ai:
providers:
openai-codex:
retryPolicy:
mode: normal
maxRetries: 10
retryableCodes:
- EMPTY_RESPONSE
- RATE_LIMIT
- SERVER
- TIMEOUT
- TRANSPORT
- PI_AI_ERROR
backoff:
initialDelayMs: 2000   # first retry delay, doubled each attempt
maxDelayMs: 60000      # per-attempt delay cap
jitterRatio: 0.2       # ±20% jitter

Do not confuse this with the other, deterministic failure: some models are unavailable to ChatGPT-subscription accounts, and the backend answers 400 The &#x27;&#x27; model is not supported when using Codex with a ChatGPT account. (observed with e.g. gpt-5.3-codex-spark, gpt-5-codex). That is a permanent error — retrying won't help; switch to a model your account supports (e.g. the gpt-5.4 / gpt-5.5 / gpt-5.6 families).

Volcengine Ark Agent Plan / Coding Plan

Volcengine Ark's subscription plans (Agent Plan / Coding Plan) do not expose their quota on the inference endpoint. It lives on Volcengine's control plane (OpenTOP OpenAPI) and has to be signed with an IAM AK/SK pair (V4 HMAC-SHA256). The plan key on the route (ARK_AGENT_PLAN_API_KEY, …) is a data-plane key that only authorizes model calls — quoting it for usage is refused upstream (observed: GetAFPUsage requires Volcengine Ark SSO STS), so those routes need the AK/SK pair in addition to the inference key.

1. The route

The baseURL picks the adapter: a path containing /api/plan is an Agent Plan, /api/coding a Coding Plan.

llm-pi-ai:
providers:
ark-agent-plan:
displayName: Volcengine Ark - Agent Plan
apiKeyEnv: ARK_AGENT_PLAN_API_KEY
api: openai-responses
baseURL: https://ark.cn-beijing.volces.com/api/plan/v3
ark-coding-plan:
displayName: Volcengine Ark - Coding Plan
apiKeyEnv: ARK_CODING_PLAN_API_KEY
baseURL: https://ark.cn-beijing.volces.com/api/coding   # Anthropic wire; use /api/coding/v3 for the OpenAI-compatible endpoint

The route id is arbitrary; the well-known ids ark-agent-plan, ark-coding-plan, ark-agent-plan-cn and ark-coding-plan-cn are recognized even when the profile omits baseURL.

2. Configure the AK/SK pair

Create or read an Access Key ID / Secret Access Key in the Volcengine console under Access Control (IAM) → Access keys (read access is enough for quota), then supply it either way:

# ~/.dsh/.credentials.yaml (a process environment variable or a project .env of the same name works too)
refs:
VOLC_ARK_ACCESS_KEY_ID: AKLT...
VOLC_ARK_ACCESS_KEY_SECRET: ...

Each half takes the first ref that resolves: VOLC_ARK_ACCESS_KEY_ID → VOLC_ACCESS_KEY_ID → VOLC_ACCESSKEY, and VOLC_ARK_ACCESS_KEY_SECRET → VOLC_ACCESS_KEY_SECRET → VOLC_SECRETKEY → VOLC_SECRET_KEY.

Until the pair is configured the card reads "missing key (VOLC_ARK_ACCESS_KEY_ID + VOLC_ARK_ACCESS_KEY_SECRET)"; a wrong pair surfaces the control-plane error verbatim (e.g. HTTP 401: InvalidAccessKey: The security token[...] is invalid.).

3. What it shows

  • Agent Plan — the 5h, weekly and monthly windows, with the used percentage derived from the absolute Used/Quota pair and a reset countdown (AFPDaily is omitted, matching the Ark console and arkcli).
  • Coding Plan — the session (5h), weekly and monthly windows, using the backend's own used percentage. A plan that is unsubscribed or reclaimed reports no rows.

Install

> [!NOTE]
> Requires an existing DeepSeek Harness installation.

npm

dsh plugin --profile web add dsh-provider-usage@latest

Build from source

git clone https://github.com/lizhouai/dsh-provider-usage.git
cd dsh-provider-usage
pnpm install
pnpm build
pnpm pack   # produces dsh-provider-usage-.tgz
dsh plugin --profile web add ./dsh-provider-usage-.tgz

Install the tarball, not the repo directory: dsh plugin --profile web add . links the repo, whose own node_modules then shadows the harness's shared @deepseek-ai/cordis instance and the host half never registers (RPC 404). The link form is still handy for client-only UI iteration — the browser bundle is self-contained, so a rebuild + page refresh picks it up — but switch to the tarball (or the npm release) whenever you need the host half. If pnpm fails with EPERM ... symlink while replacing a linked install, delete the stale node_modules/dsh-provider-usage junction in the profile directory and retry.

Restart dsh web after changing the plugin set (a plugin add/remove requires a restart; afterwards, code changes only need a rebuild + re-add + page refresh).

Upgrade

dsh plugin --profile web add dsh-provider-usage@latest

Then restart dsh web and refresh the page. If the release you want was published very recently, your profile's supply-chain cooldown (minimumReleaseAge) may silently keep the older version — pin the exact version instead (dsh plugin --profile web add dsh-provider-usage@0.3.10) and dsh will exempt it automatically. The version badge in the panel header confirms which release is actually loaded.

Host compatibility

The host packages this plugin imports (@deepseek-ai/dsh-credentials, -settings, -typert-protocol, -launch-environment) are not installed from npm: a profile resolves them through $DSH_HOME/profiles/node_modules into the running dsh's own single copy. dsh's peer gate compares those declared ranges against the runtime version, so a narrow range such as ^0.1.2-alpha.3 makes every dsh minor release skip the plugin with skipping profile bundle.

This plugin therefore declares an open lower bound — &gt;=0.1.2-alpha.3 — which the gate accepts for any runtime, prereleases included. The field itself stays: a peer name is also what makes dsh's loader bind that import to the harness's copy instead of to whatever the profile's node_modules happens to hold.

Two consequences worth knowing:

  • A dsh release that renames a seam this plugin reads is not blocked; it degrades instead, and provider-usage: this dsh provides no … in the harness log names what is missing (src/host-seams.ts). The compat workflow replays the gate and drives a live usage/list against the latest and next release lines daily, so drift surfaces in CI rather than in your panel.
  • npm install is stricter than the gate: standard semver never matches a prerelease (0.2.0-rc.1) against an open range, so npm answers ERESOLVE. Install through dsh — dsh plugin --profile web add … uses pnpm, which is what the harness itself installs plugins with.

Configuration

Defaults work out of the box: the plugin auto-detects every provider route of the active profile. A trusted profile can tune behavior in ~/.dsh/profiles/web/cordis.patch.yml — override the bundle's row by id (the package's own bundle patch already inserts it; a second insert of the same id fails the boot with duplicate loader entry id):

- id: provider-usage
name: dsh-provider-usage
config:
refreshSeconds: 60          # suggested panel refresh interval (5–86400)
balanceRedThreshold: 10     # balance below this turns red (per the balance&#x27;s own currency)
balanceYellowThreshold: 30  # balance below this turns yellow (per the balance&#x27;s own currency)
autoDetect: true            # enumerate provider routes from the llm registry
queryTimeoutMs: 20000       # per-attempt query timeout; each retry gets a fresh timeout
queryRetries: 2             # retries for transient errors (timeout/network/HTTP 408/425/429/5xx)
queryRetryDelayMs: 2000     # base retry delay, doubled per attempt, capped at 10s
providers: []               # manual specs; an id matching a detected route overrides it
Field Type Default Description
refreshSeconds number 60 Suggested widget refresh interval in seconds (5–86400)
balanceRedThreshold number 10 Balance below this amount turns red, compared in the balance's own currency
balanceYellowThreshold number 30 Balance below this amount turns yellow, compared in the balance's own currency
autoDetect boolean true Enumerate live provider routes from the llm registry
queryTimeoutMs number 20000 Per-attempt query timeout (1000–120000); each retry gets a fresh timeout
queryRetries number 2 Retries for transient errors — timeout / network / HTTP 408, 425, 429, 5xx (0–10); permanent 4xx errors fail immediately
queryRetryDelayMs number 2000 Base delay between retries (100–60000), doubled per attempt, capped at 10s
providers array [] Manual provider specs: {id, kind, baseURL, apiKeyEnv, displayName?, enabled?}; kind is one of the adapter table above

The same fields can be hot-updated under the provider-usage: namespace in ~/.dsh/settings.yaml.

Adding a manual provider

config:
providers:
- id: my-deepseek-gateway
kind: deepseek
baseURL: https://my-gateway.example.com
apiKeyEnv: MY_GATEWAY_KEY
displayName: My Gateway

How it works

  • Host half (src/index.ts): UsageService extends TypertRemoteService exposes usage/list via the Remote(&#x27;list&#x27;) marker, applied without decorator syntax (SRC mode, no codegen). Config is declared with schemastery, and the settings provider's installSection enables hot updates from the settings document.
  • Client half (src/client/): a window.__ModuleLoader__.load({id, factory}) bundle (built by tsdown) mounts through the sidebar.footer.action slot (used purely as a mount point — the trigger itself is a floating ball portaled to document.body) and polls usage/list through ctx.connection.rpc.call(&#x27;/api&#x27;, &#x27;usage/list&#x27;, {args:{}}) on its own interval. The service stays stateless — every poll fetches live values.

License

MIT

常见问题

9 问
答案由本站依据条目字段整理,不引用上游原文
dsh-provider-usage 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add dsh-provider-usage@0.3.16` 即可。对应的 npm 包名是 `dsh-provider-usage`。

dsh-provider-usage 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-provider-usage 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-provider-usage 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-provider-usage 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.1.7-rc.2、0.1.7-rc.1、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.1-rc.2。

dsh-provider-usage 需要什么运行环境?

Node.js ^22.19.0 || >=24;需要同时安装 @deepseek-ai/cordis@^4.0.1、@deepseek-ai/dsh-credentials@>=0.1.2-alpha.3、@deepseek-ai/dsh-launch-environment@>=0.1.2-alpha.3、@deepseek-ai/dsh-settings@>=0.1.2-alpha.3、@deepseek-ai/dsh-typert-protocol@>=0.1.2-alpha.3。环境不满足时安装会失败,建议先确认本机版本。

dsh-provider-usage 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-provider-usage 有哪些功能?

自动检测提供商路由、多提供商余额查询、悬浮球健康指示、双语界面与刷新。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

2 条
不同作者的仓库分开列,请确认你要装的是哪一个
模型与账号接入
按星标排序,可作替代方案

archify

archify

从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

L4 · 沙盒安装通过 8.0 万 星

nocobase

nocobase

L3 · 安装规范通过 2.5 万 星

dsh-our-free-model

dsh-our-free-model

为 DeepSeek Harness 挂载免登录、免 API Key 的免费前沿模型通道,装完即用,并附用量看板与 OpenAI 兼容本地转

未标注验证等级 8,064 星

dsh-purge

dsh-purge

dsh-purge 是一款 DeepSeek Harness 设置插件,可修改默认副本、权限策略和工具限制,并添加规则卡片以分组应用补丁,支

L5 · 运行验证通过 4,573 星

lizhouai 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。