dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
New API 网关提供商:多网关同一时间激活一个,每个网关独立的模型清单与上下文/多模态标注、额度查询,以及生图与视频生成工具。
English · 中文
A New API gateway workbench for DeepSeek Harness: several gateways with one active at a time, per-gateway model lists and parameter overrides, quota, and image and experimental video generation.

| Model capabilities | Fetch models |
|---|---|
![]() | ![]() |
| Model editor | Sidebar quota |
![]() | ![]() |
The screenshots render this plugin's real components and stylesheet with sample data; gateway names, URLs and amounts are examples. The UI follows the DSH theme, so colours adapt to your skin and dark mode.
Requires DSH 0.2.1-rc.1 or newer (verified on 0.2.1-rc.2) and Node.js 22.19+.
Install dsh-newapi-provider with DSH's plugin manager, then refresh the page and open Settings → New API Provider. No separate web server is needed.
The token is stored in the DSH credential service, never in the gateway configuration, and is never sent back to the browser.
/v1/videos interface with background polling and restart recovery.Quota details:
GET /api/usage/token/ (note the trailing slash)./api/status (quota_per_unit, quota_display_type, usd_exchange_rate), never the top-up price.The sidebar shows the active gateway's name and amount, with a health dot; click it to refresh. It collapses to a status dot when the sidebar is a rail.
Each gateway keeps an independent list, even when two gateways point at the same site with the same token:
[DONE] counts as a failure, because it carries no protocol response.name): label only.upstreamModel): the model actually sent. Empty means the local id. Mapping is one hop and applies to chat, image generation, image edits, video and model tests.Capability data is a hint, not proof: a relay may list a model and still fail to serve it.
Vendors do not agree on reasoning levels, so each model resolves its own set instead of every reasoning model showing the same five:
| Vendor / model | Levels offered | Notes |
|---|---|---|
| Claude adaptive thinking (Opus 5 / Sonnet 5 / Fable) | low / medium / high / xhigh / max | no minimal, no off |
| Older Claude (budget based) | off / minimal / low / medium / high | mapped to token budgets |
| GPT-5.1+ / GPT-6 | off / low / medium / high / xhigh / max | off is sent as none, no minimal |
| GPT-5.0 / o-series | minimal / low / medium / high | GPT-5.0 cannot be turned off; o-series stops at high |
| gpt-5-pro | high only | the vendor accepts nothing else |
| Gemini 3 / 4 | minimal / low / medium / high | thinking_level has no off; no xhigh/max |
| Gemini 2.5 | off / minimal / low / medium / high | budget based; Pro cannot really be switched off |
| DeepSeek V4 | off / low / high / max | the vendor folds the in-between levels |
| GLM-5.3 | low / high / max | sending disabled errors, so no off |
| GLM-5.2 | all seven | most levels are folded upstream |
| Kimi K3 | low / high / max | no medium, cannot be switched off |
| Qwen3 / unknown | off / minimal / low / medium / high | pi-ai's own default when a model has no levels |
Resolution order: your override → pi-ai's shipped model data (same model, same behaviour as the built-in provider) → vendor-family default.
Model capabilities → Edit model → Thinking levels opens on a table pre-filled from the model data (turn the switch off to see the detected set read-only). The left column is the level shown in the chat selector — the built-ins (off/minimal/low/medium/high/xhigh/max) or a name you type yourself (1–24 lowercase letters, digits, -, _); a custom level must carry a value and then appears in the chat selector like any other. The right column is what that level sends upstream; an empty value sends nothing. The mapping is stored per model per gateway and affects only this plugin.
Limitation: relays rename models (
claude-opus-5-5), so a family guess fills the gap when the exact id is unknown. Use a custom override if the upstream disagrees. A level only changes the request; whether the upstream honours that depth is up to it.
models.dev data is cached. Exact matches win; when nothing matches, defaults apply. Base-model matches, defaults and manual overrides are all marked in the UI. Never treat a guessed capability as something the gateway has proven.
The DSH chat interface currently accepts text and image input only. PDF, audio and video tags are catalog metadata and cannot be sent to a DSH chat. Image and video models serve the generation tools and do not appear as chat models.
| Tool | Purpose |
|---|---|
newapi_balance | Quota of the active gateway's token (and account, when allowed). Free. |
newapi_models | Models of a gateway (channelId optional, defaults to active) with kind, limits, modalities, pricing, mapping. Free. |
newapi_channels | list, test, save, activate, delete, model_override, models_discover, models_set, model_test. Writes need a revision. |
newapi_image_generate | Text-to-image, or image editing when inputImages is given. Saves attachments. |
newapi_video_generate | Submits a video task and returns its id. Billed per task. |
newapi_video_status | Lists or checks video tasks and returns the saved file. |
Settings-page actions and these tools share one service, so nothing can drift between the UI and the agent.
Image and video generation cost money. A submission whose outcome is unknown is never resent automatically; check the gateway's task log first. Stopping a local watch does not cancel or refund the upstream task.
The plugin was called dsh-newapi-studio. The rename covers the package, the loader row and provider route (newapi-provider), the HTTP prefix (/newapi-provider/api/) and the data directory (plugin-data/dsh-newapi-provider).
To migrate an existing installation, back up the profile patch and plugin data, then keep each channel's id, credential reference, model list and overrides while moving the data directory to the new name. Current releases do not read the old directory automatically. Keep existing credential references even if they contain STUDIO: they still hold the working tokens; new references use the NEWAPI_PROVIDER_ prefix.
Sessions pinned to the old newapi-studio route must pick models again under the new route. Other adapters are unaffected. Tool names (newapi_channels, newapi_models, …) did not change.
npm test
node --check index.js
node --check client.js
npm pack --dry-run --ignore-scripts
To work on a checkout instead of the published package, install the project directory with DSH's plugin manager.
DSH runtime imports are optional peerDependencies supplied by the host, so no DSH package is installed or copied here. Tests use local fake gateways and never read personal credentials. This repository replaces, rather than depends on, dsh-gateway-provider; two adapters cannot own the same provider route.
Release steps are in PUBLISHING.md.
MIT License. Uses public DSH exports and pi-ai protocol implementations; no third-party plugin source is vendored.
Vendor marks in the model list come from LobeHub Icons (@lobehub/icons-static-svg 1.97.0, MIT License), inlined as SVG so the page makes no remote image requests. Brand marks belong to their respective owners and only identify a model's vendor.