Bundle
dsh-zai-coding-models
DeepSeek Harness bridge plugin: exposes the newest Zhipu/Z.AI coding-plan models (e.g. glm-5.3) on the zai-coding-cn route before the bundled pi-ai catalog catches up.
- Source
- auuduu
- License
- MIT
- Updated
- Updated 2 days ago
Readme
# dsh-zai-coding-models
English | [中文](README.zh.md)
A [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH) bridge
plugin that exposes the **newest Zhipu / Z.AI coding-plan models** — currently
**GLM-5.3** — on the stock `zai-coding-cn` provider route, before the pi-ai
catalog bundled with your DSH release catches up.
If you bought a Zhipu (智谱) coding plan / token plan, added the API key in the
DSH Models page, and the model picker only offers models one generation behind
(no GLM-5.3), this plugin is for you: your token plan works with the newest
models the moment Zhipu ships them — no DSH upgrade, no restart dance, no
hand-editing of `settings.yaml`.
## What it does
DSH resolves each provider's model list from the pi-ai catalog compiled into
its dependency tree. When Zhipu ships a new model (GLM-5.3 went live on the
coding endpoint in August 2026) the catalog lags behind by a release cycle or
two. DSH has a first-class escape hatch — a provider profile's `models` list
declared in configuration — and this plugin is exactly that escape hatch,
packaged so `dsh plugin add` carries it for you:
- keeps the six bundled `zai-coding-cn` models untouched (glm-4.5-air,
glm-4.7, glm-5-turbo, glm-5.1, glm-5.2, glm-5v-turbo);
- adds **glm-5.3** with its official capabilities: text-only, 1M context,
128K max output, thinking levels Low / Medium / High / Max (thinking cannot
be turned off on GLM-5.3 — Low is the lightest setting);
- sets the compat flags the endpoint needs (`thinkingFormat: zai`,
`supportsReasoningEffort: true` — without the latter the effort parameter is
silently dropped);
- touches nothing else: your API key, endpoint, and every other provider keep
living in your own settings as before.
## Install
```bash
dsh plugin --profile web add dsh-zai-coding-models # from npm
dsh plugin --profile web add github:auuduu/dsh-zai-coding-models # from GitHub
```
(replace `web` with `tui`/`headless`/your profile). Then restart DSH once —
plugin bundles are read at boot. Your `ZAI_CODING_CN_API_KEY` (stored through
the Models page) is picked up as-is; GLM-5.3 appears in the model picker under
the existing Z.AI Coding CN provider.
To remove: `dsh plugin --profile web remove dsh-zai-coding-models`.
## How it works
The package declares a `dsh.bundle.patch` layer that targets the stock
`llm-pi-ai` composition row and supplies a base provider profile:
```yaml
- id: llm-pi-ai
config:
providers:
zai-coding-cn:
models:
- id: glm-4.5-air # id-only entries inherit
- id: glm-4.7 # everything from the
- id: glm-5-turbo # installed catalog
- id: glm-5.1
- id: glm-5.2
- id: glm-5v-turbo
- id: glm-5.3
name: GLM-5.3
contextWindow: 1000000
maxTokens: 131072
reasoningEfforts:
low: low
medium: high
high: high
max: max
compat:
thinkingFormat: zai
supportsReasoningEffort: true
```
DSH merges your user settings per-provider on top of this base, so a profile
that only stores `apiKeyEnv: ZAI_CODING_CN_API_KEY` (what the Models page
writes) merges cleanly. The same YAML works standalone in
`~/.dsh/settings.yaml` if you prefer not to install anything — see
[the manual recipe](#manual-recipe-no-plugin).
## Known limits
- **The `models` list replaces the route's catalog** — that is DSH semantics,
not a choice. The list is pinned per plugin release, so when pi-ai ships
`glm-5.4`, this plugin must release a new version to carry it (and if it
already bundles the model you wanted, uninstall the plugin to return to the
catalog). Watch releases, or just check the picker after DSH upgrades.
- If your *user* `settings.yaml` already declares `models` for
`zai-coding-cn`, your layer wins over the plugin's. Keep exactly one source.
- The patch replaces the whole config of the `llm-pi-ai` row; the stock row
ships config-less, but if a future DSH release puts config there, this
plugin may need a bump.
## Manual recipe (no plugin)
Add to `~/.dsh/settings.yaml` (hot-reloaded, no restart needed):
```yaml
llm-pi-ai:
providers:
zai-coding-cn:
apiKeyEnv: ZAI_CODING_CN_API_KEY # keep whatever you have
models:
- id: glm-4.5-air
- id: glm-4.7
- id: glm-5-turbo
- id: glm-5.1
- id: glm-5.2
- id: glm-5v-turbo
- id: glm-5.3
name: GLM-5.3
contextWindow: 1000000
maxTokens: 131072
reasoningEfforts:
low: low
medium: high
high: high
max: max
compat:
thinkingFormat: zai
supportsReasoningEffort: true
```
## Upstream status
pi (the project behind pi-ai) already carries glm-5.3 on `main`
(`packages/ai`, generated from the models.dev database); the moment a pi-ai
release ships and a DSH release adopts it, this plugin becomes redundant for
that model. It is intentionally a bridge, following the contribution path DSH
recommends for ecosystem work.
## License
MIT
Install
dsh plugin --profile web add github:auuduu/dsh-zai-coding-models#8f2e33a5fbf7775e13e520b8fd0b4662cf8c97ea
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-zai-coding-models from the hub