DeepSeek Harness Plugin

antonio-mastropaolo/dsh-anthropic-membership

Stars ★ 4 Category Models & Providers Added 2026-09-18

Sign in to DeepSeek Harness with a Claude Pro/Max membership (no API key), downscale Anthropic request images to a 2000px long edge, slim /compact summarizer payloads, and show 5-hour/weekly plan usage plus DSH message counts.

Install

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

dsh plugin --profile web add github:antonio-mastropaolo/dsh-anthropic-membership

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

DeepSeek Harness plugin: Sign in with Claude Pro/Max. Uses the same Anthropic membership OAuth grant Claude Code uses (isSubscription: true). No Anthropic API key.

It also unblocks two Anthropic-specific lockups that otherwise freeze a long session:

  1. Many-image 2000px cap — DSH can store request images with a long edge of 2048px. Anthropic rejects many-image requests above 2000px, and retries keep sending the same history. This plugin downscales request images to a 2000px long edge.
  2. /compact over a 1M window — when the live prompt is already over the model cap, DSH's summarizer replays that same prompt and fails with Compaction could not produce a useful summary. This plugin slims compaction calls (drop images and reasoning, truncate huge tool text) so /compact can land.

Install

Requires the dsh CLI.

dsh plugin --profile web add github:antonio-mastropaolo/dsh-anthropic-membership

From a local checkout:

git clone https://github.com/antonio-mastropaolo/dsh-anthropic-membership.git
dsh plugin --profile web add file:./dsh-anthropic-membership

Restart dsh web. Open Settings → Models. On the Anthropic card: Sign in with Claude Pro/Max. Then pick an anthropic / claude-* model.

A compact chip on the main composer dock shows Claude · 5h N% · wk N% · N msgs. The Anthropic card shows plan-window % (5-hour and weekly) and DSH message counts for that window. It does not show remaining messages, tokens, or dollars. Usage % is account-wide (every Claude app); message counts are DSH only.

If the UI is down:

node login.mjs
node logout.mjs
node usage.mjs

What it writes

  • Settings: llm-pi-ai.providers.anthropic (no apiKeyEnv) in ~/.dsh/settings.yaml, or $DSH_SETTINGS if set. If you launch DSH from Ollama and ~/.ollama/launch/dsh/settings.yaml exists, that file is used instead.
  • Grant: llm-pi-ai/anthropic in ~/.dsh/.credentials.yaml (mode 0600). Never logged.

Control API

Loopback only, 127.0.0.1:8185 (override with DSH_MEMBERSHIP_PORT; the Settings button expects 8185).

Method Path Notes
GET /healthz { ok: true }
GET /status { signedIn, expiresAt, imageCap, compactionSlim } — Origin must be the DSH UI if Origin is sent
POST /login /logout Requires Origin: http://127.0.0.1:3080 (or localhost) and header x-dsh-membership: 1

CORS does not reflect arbitrary Origin. A missing CSRF header is 403. /login is 409 if a login is already in flight.

Tests

npm test

Needs a DSH install on disk so sharp resolves (or set DSH_NODE_MODULES to that node_modules directory).

License

MIT

macOS app window (Helixboard-style)

/Applications/DSH v1.app opens DeepSeek Harness in a chromeless Chrome --app window (same pattern as Helixcode Dashboard v1). It starts dsh web if needed and uses the current launch token. Drag it to the Dock for one click.

The composer dock shows Claude 5h/weekly %, a Codex slot (lights up when an openai-codex grant exists), and a Full access switch (sets permission.defaultPreset and /permission danger-full-access on the live session).

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.