DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

overact /

overact/dsh-statusline-plus

Verified

Statusline for DeepSeek Harness Web: quotas, Git, context, API reference costs, Subagents and streaming speed

★ 5 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@dbe2bf6c

dsh-statusline-plus

Version npm Verify

English | 简体中文

A responsive statusline for DeepSeek Harness (dsh web). Account quotas appear in the header; workspace and session metrics appear beside the composer.

Screenshots

Header quotas, session metrics and detail panels: DeepSeek balance, Kimi Code usage, peak countdown, API reference cost and subagent activity

Screenshots use the actual UI with sample data, without account or conversation data.

Features

  • Balances and quotas: DeepSeek, Kimi Code, Z.ai / Zhipu, Claude, Antigravity, Codex, OpenCode Go and OpenRouter, plus other subscriptions your Magpie reports. Click a chip for details and refresh.
  • DeepSeek peak hours: status, countdown and daily timeline, plus a sidebar indicator. In a year with no calendar, a weekday inside a peak window stays unknown while weekends and hours outside the windows are still off-peak; when the official rule wording no longer matches, the schedule is still applied and the indicator warns that rules may have changed.
  • Workspace and session: Git branch and changes, context usage, streaming TPS, API reference cost, direct child agents and tool activity.
  • Layout: component switches, ordering, presets and an interactive preview. Groups wrap on narrow screens; an optional switch disables this plugin's bottom status line when the input area is at most 480px wide, including when sidebars narrow it.
  • Self-update: when npm publishes a newer version, the settings header shows an update button naming it (checked when the page opens, cached for a minute; hover shows the installed and latest versions). It stays hidden otherwise, is not offered for a linked development checkout, and installs in place on one click, using the Host's own dsh plugin add and falling back to pnpm. The Host then swaps the new copy into the running profile through HMR, so a refresh is enough; a profile without HMR asks for a restart instead.

Installation

Requires DSH 0.2.0-rc.2 or later, with no upper bound, so a DSH upgrade never disables the plugin; tested on 0.2.0-rc.2, 0.2.1-rc.2 and the Windows Desktop build (0.2.1-rc.3). Install from npm:

dsh plugin --profile web add dsh-statusline-plus

The same release is also published as a GitHub Release tarball for pinned and offline installs:

dsh plugin --profile web add https://github.com/overact/dsh-statusline-plus/releases/latest/download/dsh-statusline-plus.tgz

For development, install a local clone with dsh plugin --profile web add file:/path/to/dsh-statusline-plus. The bundle registers its own plugin row and ships prebuilt files. With HMR enabled, plugin switches and settings apply live; linked source changes also hot reload when their directory is watched. Refresh the browser afterward. Restart DSH only when installation or an upgrade reports restart-required, and wait until no sessions are active.

For an earlier manual installation, remove the @local/dsh-statusline-plus row and dependency first to avoid duplicate registration. Existing statusline-plus settings remain compatible. See release notes.

Settings

Open DSH Web → Settings → Statusline. Settings are saved under statusline-plus in the native profile.

Display switches, layout presets, ordering, quota sources and refresh options

Statusline settings: component switches and ordering, layout preview, narrow-screen option, quota and peak toggles, account sources, cache and timeout

Setting Default Effect
enabled true All plugin displays and refreshes
hideBottomOnNarrow false At input-area widths ≤480px, unmount this plugin's bottom status line and stop its client activity; restore it when wider. Native stats remain visible
showGit, showContext, showCost, showActivity, showTools true Individual bottom components
showTps false Streaming speed
componentOrder Git, context, TPS, cost, activity, tools Bottom component order
showQuota, quotaAuto, quotaOnStep true Header quotas, provider selection and shared step refresh
showDeepseekPeak, deepseekPeakCountdown, showPeakDot true DeepSeek peak indicators and countdown
cacheTtlMs 60000 Quota result reuse; UI displays seconds, effective minimum 15s
fetchTimeoutMs 10000 Request timeout; UI displays seconds
quotaSources {} Per-subscription source pin, e.g. { "codex": "cpa" }, set in each source card. With none set: Magpie, then CPA, then the official tool's login file (read only, never refreshed). A pinned source has no fallback. See docs/features/quota/sources.md.
showClaudeQuota true Allow the Claude subscription chip.
quotaShowAll false Show every enabled subscription chip (Codex / Antigravity / Claude / OpenCode) and other subscriptions Magpie reports, instead of selecting one from the model
providers Built-in sources Credential references, source switches and endpoint overrides

The narrow-screen switch is in Bottom status line. It affects this plugin's bottom components; header quotas, peak indicators and native composer stats remain available.

DeepSeek reuses DEEPSEEK_API_KEY for API-key models (deepseek, deepseek-official). Models on DSH's signed-in deepseek-account provider show the account's topped-up and granted wallet balances through the Host deepseekAccount service instead, so they need no API key. Kimi uses KIMI_API_KEY; Z.ai and Zhipu use ZAI_API_KEY and ZAI_CODING_CN_API_KEY. Other sources use their existing Host credentials or account integrations. Configure credential references, never literal keys. Keys stay on the Host.

Presets change bottom components only. Reset restores display, layout and refresh preferences while retaining credential references, account files, repository paths and per-source switches.

Limits

  • Quota requests use a plugin-owned connection pool with a 5-second address-attempt window; request timeouts still bound the whole operation (Codex: 15 seconds), and Host network defaults stay unchanged. Successful queries update the display immediately, without waiting for the connection window to end. Quota refreshes reuse cached results; expiry alone does not poll. Network failures retry at most three times after 15/30/60 seconds; rate-limit retries wait 60/120/240 seconds. Going offline pauses recovery; coming online, becoming visible, a new step or a manual refresh starts a fresh query cycle. Regaining focus resumes failed recovery once the active retry cycle has ended. Successful data remains visible during retries; chips explain network errors and exhausted retries. Credential and invalid-response errors require correction. Manual refresh bypasses successful cache, while error/rate-limit backoff still applies. Missing or invalid data stays unknown.
  • Cost is an estimate from actual usage and the model vendor's public API prices, including cache rates where known. Subscriptions use the same reference prices. Pricing matches the model ID after the final /, independent of the route provider, gateway prefix or display name; unrecognized model suffixes remain unknown. USD and CNY remain separate; missing prices stay unpriced. It excludes child sessions, inherited fork history and extra fees, and does not represent an account charge.
  • The Git chip shows nothing outside a repository. When Git cannot read a repository, it shows ⎇ ? with the reason in its tooltip, and clicking it retries; the plugin never changes Git config. With too many untracked files, the untracked count reads ?? and the rest of the status still shows.
  • TPS distinguishes character estimates from settled output-token rates. Tool durations include approval and waiting. Subagents show direct children; stopped does not imply success.
  • Provider APIs and price catalogs may change independently. DeepSeek's calendar has a built-in 2025–2026 fallback, and a fetched holiday-cn calendar wins where that year is published; outside that, a weekday inside a peak window in an uncovered year is not guessed. The official pricing page is only a change detector: if its rule sentence stops matching, pricing and the peak indicator keep using the schedule they already hold and the indicator adds a "rules may have changed" warning next to its link to the official page.

Development verification

npm run verify -- --files lib/client.js --ui responsive
npm run verify -- --files lib/client.js --ui cost
npm run verify -- --files lib/client.js --style-only --ui subagents
npm run verify:all
npm run screenshots

Use explicit paths for the current edit. --style-only is for CSS only; --ui none skips browser checks; --plan previews the selection. Run verify:all once at the completed stage. npm run check and npm test are also available; DSH_PACKAGE_DIR selects an installed DSH runtime for integration tests.

Two maintenance checks cover the development profile and releases:

npm run dev:runtime     # does the active profile HMR-watch this checkout's lib/?
npm run release:check   # version, README badge, CHANGELOG, tag, npm dist-tag, assets and latest

dev:runtime reads the active profile's cordis.patch.yml (DSH_PROFILE_DIR overrides ~/.dsh/profiles/web) and reports whether host-level edits hot-reload; run it before advising a restart. release:check verifies the current package version against the README badge, changelog, git tag, npm dist-tags, GitHub Release assets and releases/latest; use --offline to skip the npm and GitHub checks.

Pushing a v* tag runs the full verification, then publishes the version to npm and GitHub Releases through the release workflow; release steps, npm trusted-publishing setup and post-release checks are in docs/development/releasing.md.

Per-feature design notes, including quota protocols, start at docs/README.md. Read the page for an area before changing it.

Browser checks use real React and the client bundle with offline fixtures. Coverage includes cost, Subagents and responsive settings/resource cleanup. Install browser tooling only if missing:

npm run ui:install
node tools/ui/node_modules/playwright/cli.js install chromium
npm run verify:ui -- --panel responsive

The runner uses installed Chrome or Playwright Chromium; PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH overrides the executable. Reports and screenshots go to ignored output/playwright/.

An optional authorized, read-only live check requires an existing session: npm run verify:ui -- --live --session SESSION_ID --panel all. It opens cost/Subagents panels without changing settings, submitting prompts or restarting DSH. Local login comes from DSH_AUTH_URL or the user service journal; authentication is redacted. Responsive settings checks run offline only.

简体中文

DSH 网页端状态行:顶部显示账号余额与套餐额度,输入区显示 Git、上下文、TPS、API 参考金额、子代理和工具活动。支持 DeepSeek、Kimi Code、Z.ai/智谱、Claude、Antigravity、Codex、OpenCode Go、OpenRouter,以及 DeepSeek 峰谷时段指示。

截图: 总览(额度、峰谷、会话指标与详情面板)、设置选项。截图使用英文界面与演示数据,不包含真实账号或对话数据。

安装: 需要 DSH 0.2.0-rc.2 或更高版本,不设上限,升级 DSH 不会让插件被跳过;已在 0.2.0-rc.2、0.2.1-rc.2 与 Windows 桌面版(0.2.1-rc.3)上测试,使用上面的安装命令;插件自带预构建文件和注册配置。启用 HMR 后,插件启停与设置实时生效;本地源码目录纳入监听时也可热加载,之后刷新浏览器。安装或升级提示 restart-required 时,才需等待无活跃会话后重启。旧版手动安装请先移除 @local/dsh-statusline-plus 注册行和依赖,避免重复。

设置: 打开 DSH 网页端 → 设置 → 状态栏,调整显示、排序、预设、顶部额度、账号来源及缓存。有新版本时右上角出现更新按钮(打开设置页时检查,缓存一分钟;悬停显示当前与最新版本),点一次即原地覆盖安装(优先用宿主自带的 dsh plugin add,其次 pnpm),随后由宿主通过 HMR 把新副本换进运行中的 profile,刷新页面即可;没有 HMR 的 profile 才提示重启。link: 安装的本地副本不显示。密钥仅在宿主侧解析,设置里填写凭据引用。DeepSeek 有两种计费方式:deepseek/deepseek-official 使用 DEEPSEEK_API_KEY 查询按量余额;使用 DSH 登录账号(deepseek-account)时,状态栏通过宿主 deepseekAccount 服务读取登录账号的充值余额与赠送余额,不需要 API Key。

额度恢复: 额度请求使用插件自有连接池,每个地址的连接尝试窗口为 5 秒,完整请求仍受总超时限制(Codex 为 15 秒);宿主网络默认值不变。查询成功即更新显示,不必等满 5 秒。网络失败每轮最多自动重试 3 次,分别等待 15/30/60 秒;限流时等待 60/120/240 秒。断网时暂停,网络恢复、页面重新可见、新步骤或手动刷新会开启新一轮查询;当前重试轮结束后,页面重新获得焦点也可恢复查询。重试期间保留已有的成功数据,并提示网络异常及重试已用完;凭据与响应格式错误不自动重试。

窄屏: 在“底部状态行”中开启“窄屏时隐藏底部状态行”(hideBottomOnNarrow,默认关闭)。输入区域宽度 ≤480px 时不挂载本插件的底部组件,停止相关客户端刷新与计时;侧栏挤窄输入区域也会触发,变宽后自动恢复。顶部额度、峰谷指示与原生输入区统计仍可使用。

说明: 费用按模型厂商 API 单价估算,不代表实际扣款,不含子代理与额外费用;人民币和美元分别累计。额度缓存到期本身不会轮询,失败保留上次结果,未知值不显示成零。不在仓库内时不显示 Git;git 无法读取仓库时显示 ⎇ ?,悬停可看原因,点击重试,插件不会修改 git 配置;未跟踪文件过多时未跟踪数显示 ??,其余状态照常显示。工具耗时包含审批与等待;子代理停止不等于成功。峰谷指示:没有日历覆盖的年份,只有“峰段窗口内的工作日”保持未知(周末与窗口外仍为谷段);官方规则措辞不再匹配时,仍按已有窗口与日历判断,并额外提示“规则可能已变更”,官方页面链接就在提示旁边。恢复默认保留凭据引用、账号、仓库路径和各来源开关。

MIT License

—/ 5

No ratings yet

Verified DSH bundle

Commit dbe2bf6c5eb7

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout