DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Claude Usage — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
C

dsh-claude-usage

Claude Usage

Anthropic Claude plan usage indicator for DeepSeek Harness

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:leonardoxr/dsh-claude-usage#a718fc0d500015cfda6cb76a61b8527a0c840a7a
READMECompatibilityVersions

Compatibility and provenance

Claude Usage is published as dsh-claude-usage and currently resolves to version 0.1.6. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
8/31/2026

Versions

0.1.6stable
8/31/2026
0.1.5stable
8/25/2026
0.1.4stable
8/25/2026
Show 3 more versionsCollapse versions
0.1.3stable
8/24/2026
0.1.2stable
8/24/2026
0.1.0stable
8/24/2026

Related plugins

Loading related plugins…

Latest
0.1.6
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 1
Weekly downloads
0
Last push
8/31/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in models-usage.

Usage@linxin666/dsh-usageUsage statistics plugin for the dsh web GUI: per-provider balance and coding-plan quota detection plus a live token usage ledger, with the current session provider's today usage on the sidebar entryWhale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editinUsage Stats@ychris12138/dsh-usage-statsToken usage heatmap, provider balances, and subscription quotas for the dsh web GUICodex Connectdsh-codex-connectChatGPT OAuth and Codex models for DeepSeek Harness.

README

dsh-claude-usage

English | 简体中文

A polished Anthropic Claude plan-usage indicator for the DeepSeek Harness Web UI.

The plugin preserves the standard Settings gear and label while adding a context-meter-style ring at the far right. The ring contains the Anthropic mark and opens a detailed quota panel on hover or keyboard focus.

Features

  • Native-looking usage ring using the same 28 px geometry and DSH design tokens as the conversation context meter.
  • Full quota detail for Claude plan limits: the 5-hour session window, the weekly window, model-scoped weekly limits, extra-usage state, plan and rate-limit tier.
  • Five-minute polling by default, configurable through the bundle row.
  • Fresh-on-hover data with a 250 ms debounce, one in-flight request, a shared five-minute poll cache, a shorter forced-hover cache, and failure throttling.
  • Honors Anthropic's Retry-After cooldowns; the usage endpoint itself rate-limits aggressive polling.
  • Last-good fallback so a temporary provider or network failure does not erase useful data.
  • Read-only credential access: the plugin never writes to or refreshes Claude Code's stored sign-in.
  • Loopback-only API route and an allowlist normalizer that removes tokens, identifiers, emails, and unknown provider fields.

Requirements

  • Node.js 20 or newer
  • pnpm 10
  • DeepSeek Harness 0.1.1-rc.2 or compatible
  • A recent Claude Code CLI signed in with a Claude subscription (claude login); until Claude Code holds a valid sign-in, the indicator shows an error state pointing at claude login
  • Windows or Linux, where Claude Code stores its OAuth credentials at ~/.claude/.credentials.json (macOS keeps credentials in the Keychain and is not supported yet)

Install from this checkout

Build the package:

pnpm install
pnpm run check

Add it to a DSH profile from this directory:

dsh plugin --profile web add .
dsh --profile web --dump-config
dsh web

During development, Host changes hot-reload only while pnpm run dev is running and rebuilding the plugin output. Browser client changes require a rebuild and then a refresh of the existing Web page. The client bundle is loaded by DSH's client-module system; a separate Vite server is neither required nor useful.

Remove it with:

dsh plugin --profile web remove dsh-claude-usage

Install a packed artifact

A tarball ships prebuilt Host and lazy-CJS client artifacts, avoiding install-time build approval:

pnpm pack
dsh plugin --profile web add ./dsh-claude-usage-0.1.3.tgz

For a Git-host install, pnpm 10 requires the profile to allow this package's prepare script. Pin a commit and follow the exact allowBuilds instruction printed by DSH/pnpm.

Configuration

All four fields are available in Settings → Plugins → Claude usage. Changes are staged locally until Save, are persisted through DSH Settings, and the saved settings/profile patches apply live without a restart. The profile row remains the base configuration beneath saved user overrides.

The bundle inserts this row:

- id: claude-usage
  name: dsh-claude-usage
  config:
    refreshIntervalMs: 300000
    hoverRefreshMinAgeMs: 30000
    requestTimeoutMs: 15000
    credentialsFile: ''

Override the whole row in the profile's cordis.patch.yml to change the composition-layer base. Later layers replace a row's complete config value; saved Settings UI values override that base.

FieldDefaultMeaning
refreshIntervalMs300000Background poll interval; minimum 60 seconds.
hoverRefreshMinAgeMs30000Minimum age before another hover refresh; minimum 5 seconds.
requestTimeoutMs15000Timeout for each Anthropic usage request.
credentialsFile(empty)Optional absolute path to the Claude Code credentials file; empty selects the default per-OS location.

How it works

  1. The Host plugin injects DSH's webServer service and registers GET /api/plugins/claude-usage.
  2. On each read it performs a read-only lookup of the Claude Code OAuth access token in the credentials file.
  3. It calls Anthropic's OAuth usage endpoint — the same undocumented beta API behind Claude Code's /usage command — with the oauth-2025-04-20 beta header.
  4. A strict normalizer returns quota-only data (percentages, ISO reset times, extra-usage flags) to the loopback browser route.
  5. The browser registers an independent action in sidebar.footer.action, reserves space at the right edge of the Settings row, and leaves the built-in Settings button and its behavior untouched.
  6. The browser polls on the configured cadence and requests a coalesced refresh after a 250 ms hover debounce.

Expired tokens are detected locally and surface a "run claude login" error state instead of hammering the endpoint; Claude Code refreshes its own sign-in during normal use. A 429 response arms a Retry-After-aware cooldown so background polls never fight Anthropic's rate limiter.

The client artifact is not ordinary browser ESM. tsdown.config.ts emits DSH's required lazy-CJS registration. React and DSH UI packages remain external and resolve through DSH's client module table, preventing duplicate React runtimes.

Security and privacy

  • The plugin reads the credentials file but never stores, transmits, logs, or refreshes the token; the access token exists only inside the Host process for the duration of one request.
  • The Web route accepts only GET from loopback clients and rejects cross-site Origin, Referer, and Fetch Metadata signals.
  • Responses omit tokens, account/workspace/user IDs, emails, raw provider payloads, and unknown fields; only clamped percentages, reset timestamps, labels, and boolean flags survive normalization.
  • Error messages are static strings that never echo credential paths or provider responses.
  • The provider route is not configurable beyond the optional local credentials path, avoiding an arbitrary authenticated proxy.

Development

pnpm run typecheck
pnpm run test
pnpm run build
pnpm run pack:check

The default suite skips the live provider test. Run it when Claude Code is installed and signed in:

$env:CLAUDE_LIVE = '1'
pnpm exec vitest run tests/claude-live.spec.ts

References

  • DSH: Your first plugin
  • DSH: Package and install
  • DSH: Adding a settings card
  • DSH: Client modules
  • ccusage — local transcript analytics for Claude Code
  • Community confirmations of the OAuth usage contract: LimitsChecker, claude-usage-widget

License

MIT