dsh-usage avatar

dsh-usage

🌊 Persistent dock & fully-customizable balance/usage panel for DeepSeek Harness — activity heatmap, dual-channel comparison, local-only & privacy-first

Plugin
Verification
L2 · Structured
Security
Low
Health
Active
Trust
Silver

What it does

🌊 Persistent dock & fully-customizable balance/usage panel for DeepSeek Harness — activity heatmap, dual-channel comparison, local-only & privacy-first

Installation

dsh plugin --profile web add dsh-usage

Install method: npm · not yet tested in container (L3+)

Compatibility

DSH VersionStatus
not statedDeclared — not tested

Requirements

  • • Node.js: not stated
  • • DSH: declared "not stated"
  • • External credentials: none detected

Security Report

Automated static scan, not manual review.

DSH.SOPASSEDSCAN11 FILES
1bad66
Automated review · daily
PASSED

No critical or warning findings in the automated scan. The result is valid only for the commit hash shown.

0 critical·0 warning·8 info·11 files scanned
scanned commit1bad66ca26a92026-08-16
latest commit1bad66ca26a9

The scan result is only valid for the scanned commit. If the latest commit differs, the badge shows outdated until the daily pipeline rescans.

Disclaimer: automated static analysis, not a security guarantee. Always review what you install.

Risk: Low0 critical · 0 warning · 8 info

• Static heuristic scan: done (11 files)

• Dependency vulnerabilities: requires deep audit (L3+)

• Permission sandboxing: requires runtime testing (L4+)

Scan findings · 8

  • infoUses localStoragelib/client.js:364
    const raw = localStorage.getItem(SETTINGS_KEY);
  • infoUses localStoragelib/client.js:373
    localStorage.setItem(SETTINGS_KEY, JSON.stringify(settings));
  • infoMakes network requests (fetch / axios)lib/client.js:195
    const response = await fetch(path, { headers: { accept: "application/json" }, cache: "no-store" });
  • infoReads process.envlib/index.js:292
    const home = process.env.DSH_HOME ?? join(homedir(), ".dsh");
  • infoReads process.envlib/index.js:298
    return process.env.CLAUDE_CONFIG_DIR ?? join(homedir(), ".claude");
  • infoReads process.envlib/index.js:303
    const home = process.env.DSH_HOME ?? join(homedir(), ".dsh");
  • infoHardcoded IP addressscripts/proxy-fetch.mjs:35
    export function fetchViaProxy(rawUrl, { proxyHost = "127.0.0.1", proxyPort = 7890, timeoutMs = 30000, method = "GET", headers = {}, body = "
  • infoHardcoded IP addressscripts/proxy-fetch.mjs:116
    const [url, host = "127.0.0.1", port = "7890"] = process.argv.slice(2);

Heuristic static scan — may produce false positives. Review the source yourself before trusting.

Activity

Last commit 2026-08-16 · activity: Active

• Repo created: 2026-08-16

• Stars: ★ 10 · Forks: 0

• Health: Active — committed within last 30 days

Source

GitHub: github.com/Aisland-SJL/dsh-usage

Was this page helpful?