Back to home@auuduu

dsh-zai-coding-models

DeepSeek Harness bridge plugin: newest Zhipu/Z.AI coding-plan models (glm-5.3) on zai-coding-cn before the bundled pi-ai catalog catches up

Stars
0
Language
Created
Aug 20, 2026
Updated
Aug 20, 2026
GitHub repo

Introduction

dsh-zai-coding-models

English | 中文

A 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

dsh plugin --profile web add dsh-zai-coding-models

(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:

- 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.

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):

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