DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-od-quota

Od Quota

DeepSeek Harness 的 OpenDesign 订阅配额:侧边栏配额页面、设置摘要和自适应会话标头计量器。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-od-quota@0.1.5
README兼容性版本

兼容性与来源证明

Od Quota 以 dsh-od-quota 发布,当前版本为 0.1.5。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/11/3

版本

0.1.5stable
2026/11/3
0.1.2stable
2026/11/1
0.1.0stable
2026/10/31

相关插件

正在加载相关插件…

最新版
0.1.5
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
141.5 kB
文件数
10
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 2
周下载
0
最近提交
2026/11/3
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 models-usage 分类下经过校验的插件。

Experimental Cot Translation Bundle@deepseek-ai/dsh-experimental-cot-translation-bundle扩展推理的实验性机器翻译Whale Widgetdsh-whale-widgetDSH Web 界面右下角的 DeepSeek 余额小鲸鱼挂件:余额/今日已用/峰谷定价、自定义泡泡点击序列(文本/余额/今日/峰谷/图片/随机语句与并列加权选择)、逐行样式与字体、悬浮快捷编辑、音效与每轮消耗、自定义角色/动图/音效、吸附与翻转自定义Our Free Model@ebony-vinyl/dsh-our-free-modelOur Free Model — 在 dsh 里装上这个插件即可,无需登录、注册或填 API Key,就能使用包括 DeepSeek V4.1 Flash、Kimi K3 在内的前沿模型,桌面端另有 EAC 协付渠道;2.0 起接入 LobsterAI、Qoder、TRAE、Cline、Loomy、Raccoon、MiniMax、ZCode、Gemini 十个账号渠道(原有匿名免费通道保留)(登录、账号池、积分领取、本地 OpenAI 网关与局域网转发、数据看板与运行日志),六页毛玻璃界面统一呈现。Connect Workbuddydsh-connect-workbuddy把本机登录的 WorkBuddy 模型(国内版与国际版)接入 DeepSeek Harness:每次刷新按上游目录自动读取每个模型的积分倍率,支持逐模型图片输入开关、多账号切换与账号池自动换号,并提供每日签到、卡片与输入框里的胶囊积分读数等只读积分概览。

README

English | 中文

dsh-od-quota

Unofficial plugin: not affiliated with Open Design / Powerformer. It only reads your own account's allowance through the public control-plane endpoints.

OpenDesign subscription quota inside DSH. Three surfaces read the same reading:

SurfaceWhereWhat it does
Quota pageLeft sidebar "OpenDesign Quota" icon → full center page5-hour / 7-day windows, wallet, sign-in and approval
Settings summarySettings sidebar "OpenDesign Quota"Status, two mini bars, refresh / open page, auto-refresh and header toggles
Header meterSession title bar, right of the title (left of the "Open in app" arrow)Plan + two remaining bars; degrades when the row is tight; click to open the page

The bars are coloured by remaining percentage (green = plenty, amber = watch, red = nearly dry); stale data is dimmed and explained in the tooltip.

What it reads

OpenDesign cloud has two planes; quota lives on the control plane:

PlaneHostKeyUse
Controlamr-api.open-design.aivela_ctrl_…plan, wallet, 5h/7d windows, workspace
Modelamr-link.open-design.ai/v1sk-amr_…inference

sk-amr_… cannot read quota (the control plane refuses it), so the plugin uses the control plane. vela_ctrl_… is not printed on any page; it is issued by the CLI device-authorization flow (the same flow as vela login) — the plugin runs that flow for you.

Install

# npm (recommended; also the path the plugin market uses)
dsh plugin --profile web add dsh-od-quota

# or straight from the repository
dsh plugin --profile web add github:WuWei-Peng/dsh-od-quota

# or the prebuilt package from the GitHub Release (no npm; for restricted networks/mirrors)
dsh plugin --profile web add https://github.com/WuWei-Peng/dsh-od-quota/releases/latest/download/dsh-od-quota.tgz

Restart dsh web once after installing. The left sidebar then shows an "OpenDesign Quota" icon, and Settings gets a summary entry.

How it works

  1. When the quota page or the settings summary opens without a key, the plugin calls POST /api/v1/cli/device-authorizations and gets an approval link plus a 6-character code; the page shows the code, a countdown, and a copyable link.
  2. You sign in to OpenDesign in the browser and approve; the plugin polls out the controlKey and stores it in the DSH credential service (reference name OPENDESIGN_CONTROL_KEY by default; change it with keyRef).
  3. After that it reads billing/preflight + billing/summary once every 60 seconds and writes the result into this plugin's quotaJson; the page, the settings summary and the header meter all parse only that document.
  4. A manual refresh writes refreshNonce (a timestamp plus a sequence number, so two clicks never collide); the Host notices the change and reads immediately. A refused write is reported with a retry hint instead of a button that appears to do nothing.
  5. A 15-second watchdog checks the last read against the wall clock: a missed tick, a request that never returns, or a write the settings editor refused is all repaired on the next pass.

Device authorization is the primary path; pasting vela_ctrl_… directly also works. Pasting sk-amr_… is rejected by the UI with an explanation.

UI details

  • Quota page: full-height scrolling page, content centred at 960px. Two large cards (5-hour / 7-day) show a big percentage, an 8px bar, remaining / limit money, and a reset countdown; the wallet gets its own card; the footer shows the read time and the powered by dsh badge. Countdowns tick every 30 seconds.
  • Settings summary: a status row, two mini bars, refresh / open page, and two switches for existing config fields: autoRefresh (read every 60 s) and enabled (reading + header meter).
  • Header meter: 28px tall, borderless, hover background — the same size and tokens as the header icon buttons. Its width is chosen from the space the host title row actually leaves: full (plan + two 44px bars) → compact (no plan + 26px bars) → mini (state dot + worst percentage) → hidden. Clicking it opens the quota page.
  • Colour and theme: only --dsw-alias-* / --dsw-radius-* / --dsw-focus-ring-* host tokens; light/dark follow automatically.
  • Bilingual: copy follows DSH's language setting (Settings → General → Language); strings live in the COPY table in client.js; other language packs fall back to English.

When things fail

  • A read fails but a previous reading exists: the last numbers stay, marked status: "stale"; the page shows "Data is stale" plus the reason and the meter is dimmed. A network blip is never reported as "you are signed out".
  • No reading has ever succeeded: the page shows "not connected" and the concrete failure, not 0%.
  • enabled: false: no polling; the header meter does not render; the quota page shows a disabled notice and an Enable button.
  • A request hangs (connection black hole, neither returns nor errors): every request has an outside deadline in addition to its AbortSignal, so one hang costs at most one round; a reading still pending after two timeouts is abandoned and restarted, and later refreshes never join a promise that will never resolve.
  • Control plane 401: one automatic re-sign-in, at most once per 5 minutes, so the 60-second poll does not become a device-authorization generator.
  • Sign out: the credential is removed, the Host publishes unconfigured at once, the page returns to the sign-in state, and the header meter disappears — no stale numbers are left behind.
  • The Host stops refreshing: after 3 minutes without a new reading, the page and settings summary say "the host may not be polling", and the header tooltip repeats it. The usual cause is an edit to the installed directory/config while the process was running, which unloads the Host half; restart dsh web to recover. Settings writes themselves have an 8-second deadline, so one wedged write can no longer freeze polling forever.

Layout

FilePurpose
index.jsHost: device authorization, quota reads, polling, writing back config
client.jsClient: quota page (main), sidebar icon (sidebar.panellist), settings summary (settings.section), header meter (conversation.session.header.utilities)
cordis.patch.ymlInserts the od-quota row and its defaults
locale/*.jsonPlugin-manager title and description
icon.svgPlugin icon

Configuration

FieldDefaultDescription
enabledtrueWhen off: no polling, no meter, no page
keyRefOPENDESIGN_CONTROL_KEYCredential reference holding the control-plane key
workspaceId''Empty resolves via /workspaces/current
autoRefreshtrueRead once every 60 seconds
refreshNonce''Written by the page's refresh button
quotaJson / loginJson''Plugin-written cache; the page only reads

Feedback

  • GitHub Issues: https://github.com/WuWei-Peng/dsh-od-quota/issues
  • Email: 18728030920@163.com

Known limitations

  • The control-plane API is a private contract. If its fields change, the page and logs show the failure (logs record field names, not values); the plugin never invents numbers.
  • The header meter's width measurement relies on the host title row's layout containers (container-type plus the title cluster / utilities boxes). If the host changes that structure, the meter falls back to the full layout — it will not crash, but it may be less compact than intended.
  • Money uses creditsPerUsd; when the API omits the rate, 10,000 credits = $1; amounts below one cent show < $0.01.
  • Copy lives in the COPY table in client.js and is bilingual following the host language; it is not registered in the Client locale namespace, so third-party language packs fall back to English.
  • Single account only; multiple accounts would need keyRef to become a list.
  • The settings footer inlines the official dsh-badge.png (121×20, data URI) so it renders offline.