Bundle
dsh-minimax-usage-pro
DSH Settings integration for MiniMax Token Plan usage, using Host webServer routes compatible with trusted bundle plugins and both MiniMax subscription key names.
- Source
- andyfan1094
- License
- MIT
- Updated
- Updated 2 days ago
Readme
# dsh-minimax-usage-pro
[中文文档](README.zh.md) | English
> DSH (DeepSeek Harness) bundle plugin that exposes the user's MiniMax Token
> Plan usage data inside the **Settings → 用量** page.
This is the **pro** edition of `@floatingdeaming/minimax-usage@1.0.3`. The
original bundle plugin only worked on dynamic plugins because the DSH host
runtime exposes `harness.handle(...)` only to dynamic plugins' vm sandboxes;
trusted bundle plugins received a plain cordis context and could not register
JSON-RPC handlers. That limitation surfaces as `WARN: harness not available`
in the original host log and an empty Settings section in the UI.
`dsh-minimax-usage-pro` keeps the same bundle-plugin shape but routes the
client→host traffic over a plain HTTP route on `webServer` instead of the
harness JSON-RPC system, so it works on **DSH 0.1.0-rc.8** and any later
release that keeps the webServer service available.
## Screenshots

## Install
Download the newest `dsh-minimax-usage-pro-*.tgz` from [Releases](https://github.com/andyfan1094/dsh-minimax-usage-pro/releases) and add it to the profile:
```powershell
dsh plugin --profile web add D:\downloads\dsh-minimax-usage-pro-0.1.1.tgz
```
Restart the DSH Web host after installation; the Settings page then shows the 用量 section.
## Routes (host-side)
| Method | Path | Body | Response |
|---|---|---|---|
| `GET` | `/api/dsh-minimax-usage-pro/has-key` | — | `{ ok, hasKey, reason }` |
| `POST` | `/api/dsh-minimax-usage-pro/usage` | `{ force?: boolean }` | normalized usage response (same shape as the original) |
The usage route accepts POST only so browser prefetch and cross-site navigation cannot trigger an external quota request. Both routes are best-effort — if MiniMax returns `1004` the route responds
with a structured error (`statusCode: 1004, errorCode: 'auth_error'`).
## Settings UI
Registers `settings.section` slot id `dsh-minimax-usage-pro` with label
**"用量"** and `order: 100`. Renders a "套餐用量 · Max Plan" card with two
progress rows (5h + weekly) plus a 刷新 button and auto-refresh on focus.
## API key
The host-side reads the MiniMax Token Plan key from, in priority order:
1. `process.env.MINIMAX_API_KEY`
2. `process.env.MINIMAX_CN_API_KEY`
3. `~/.dsh/.credentials.yaml` — `MINIMAX_API_KEY` first, then `MINIMAX_CN_API_KEY`, independent of file order
## Caveats
- The route is **not** on the `PRIVILEGED_METHODS` list, so any browser
session that can reach `/api/...` can read it. DSH's `/api` fence is
loopback-only by default and expands to a `--trusted-host` for remote
browsers; either posture is fine because no secret is sent to the
browser — only the already-resolved usage numbers.
- The route bypasses the `PRIVILEGED_METHODS` gate by design; if you want
it gated, add `'/api/dsh-minimax-usage-pro/usage'` to the privileged
list in `~/.dsh/settings.yaml`.
Install
dsh plugin --profile web add github:andyfan1094/dsh-minimax-usage-pro#3f68cdaa60d73d482bcd3d02890f728320f2d83e
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-minimax-usage-pro from the hub