DeepSeek Harness Plugin

Rycbartbad/dsh-key-manager

Stars ★ 0 Category Usage & Billing Added 2026-08-29

Manage multiple API keys per provider in Settings → API 密钥: keep a pool of keys with notes, switch the active key with one click, and the switch really takes effect on the next model call.

Install

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:Rycbartbad/dsh-key-manager

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

Multiple API keys per provider for DeepSeek Harness.

Keep a pool of API keys for each provider configured in Settings → 模型 (Models), annotate each key with a note, and switch the active key from Settings → API 密钥 — every switch really takes effect on the next model call.

Features

  • Per-provider key pools — for every configurable provider exposed by the Models page (only providers that actually have a key reference are listed).
  • Notes — annotate each key (e.g. "personal", "team", "billing A"); the currently-in-use key can be renamed too.
  • Switch that really applies — activating a key writes it through the harness credential seam. When the native reference is shadowed by the process environment or a .env file, the plugin takes over by storing the value under a plugin-managed reference and repointing the provider's apiKeyEnv at it — the Models page shows which reference is in effect.
  • Current-use pinned first — the key actually in use always sits on top with a green badge; keys missing the pool show as a "live" row.
  • Defaults to the provider in use — the page pre-selects the provider behind the currently-selected model.
  • Durable, no hardcoded paths — the registry file lives next to the harness data directory (derived at runtime from the settings document path).

Storage note: key values are persisted in plain text in the harness data directory (~/.dsh/dsh-key-manager.json), the same level of protection the harness itself applies to .credentials.yaml. Lock down the directory if you share the machine.

Install

dsh plugin --profile web add dsh-key-manager

Restart dsh web, then open Settings → API 密钥.

How it works

Piece Where
Settings section api-key-manager lib/client.js (web module)
Same-origin JSON API /plugins/dsh-key-manager/* lib/index.js
Key pool registry ~/.dsh/dsh-key-manager.json (derived at runtime)
Active key write harness credentials service (native ref, or plugin-managed takeover ref)
Provider apiKeyEnv repoint harness settings service (llm-* namespace)

License

MIT

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.