Delegates tasks to Z.ai GLM-5.x via the stock claude binary and an endpoint swap. Use when delegation-core selects GLM or a 1M-token context is needed.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add athola/claude-night-market --skill glm-delegation --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Glm Delegation?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/athola-glm-delegation)More formats (shields.io, HTML) on the badges page.
---
name: glm-delegation
description: Delegates tasks to Z.ai GLM-5.x via the stock claude binary and an endpoint swap. Use when delegation-core selects GLM or a 1M-token context is needed.
alwaysApply: false
category: delegation-implementation
tags:
- glm
- zai
- endpoint-swap
- delegation
- large-context
dependencies:
- delegation-core
tools:
- claude
- delegation_executor.py
usage_patterns:
- endpoint-swap-integration
- large-context-analysis
- coding-plan-routing
complexity: intermediate
model_hint: standard
estimated_tokens: 650
references:
- delegation-core/shared-shell-execution.md
---
## Table of Contents
- [Overview](#overview)
- [When To Use](#when-to-use)
- [When NOT To Use](#when-not-to-use)
- [Prerequisites](#prerequisites)
- [Quick Start](#quick-start)
- [Smart Delegation](#smart-delegation)
- [GLM-Specific Details](#glm-specific-details)
- [Exit Criteria](#exit-criteria)
# GLM Delegation
## Overview
GLM ships no CLI of its own. Z.ai serves an Anthropic-compatible
endpoint, so the stock `claude` binary reaches GLM by changing two
environment variables and nothing else. This is the endpoint-swap
archetype: the redirection is environment, never argv.
GLM-5.3 was released on 2026-08-14 and claims a large coding gain over
GLM-5.2 from post-training alone.
## When To Use
- `delegation-core` selected `glm` for the task
- A 1M-token context is wanted through `glm-5.3[1m]`
- A GLM Coding Plan subscription should absorb the work instead of the
Anthropic quota
## When NOT To Use
- `ZAI_API_KEY` is unset. Verification refuses rather than sending an
unauthenticated request
- The `claude` binary is not installed. GLM has no fallback CLI
- A pinned GLM-5.3 identifier is required in a script that must not
break: see the rollout note below
## Prerequisites
### Installation
Only the stock Claude Code binary is needed:
```bash
npm install -g @anthropic-ai/claude-code
```
### Authentication
```bash
export ZAI_API_KEY="<your-zai-key>"
```
The delegation service builds the child environment from that one
variable. Z.ai requires `ANTHROPIC_AUTH_TOKEN`, not
`ANTHROPIC_API_KEY`. Putting the key in the wrong one is the most
common way to get a 401 here, so the service names the correct
variable and the overlay references `${ZAI_API_KEY}` rather than
storing a secret.
## Quick Start
### Using the shared delegation executor
```bash
uv run python scripts/delegation_executor.py glm "Review this design" \
--files docs/
```
### Through the Makefile
```bash
make -C plugins/conjure delegate-glm PROMPT='Review this design'
```
### Direct CLI usage
```bash
ANTHROPIC_BASE_URL=https://api.z.ai/api/anthropic \
ANTHROPIC_AUTH_TOKEN="$ZAI_API_KEY" \
claude --model glm-5.3 -p "Review this design"
```
## Smart Delegation
`glm` declares `code_execution` and `large_context` strengths and ranks
behind gemini, qwen and minimax in the candidate order. It declares
`glm-5.3` as its default, `glm-5.3[1m]` for large context, and
`glm-4.7` for fast response.
## GLM-Specific Details
| Property | Value |
|----------|-------|
| Binary | `claude` (stock) |
| Base URL | `https://api.z.ai/api/anthropic` |
| Auth variable | `ANTHROPIC_AUTH_TOKEN`, from `ZAI_API_KEY` |
| Default model | `glm-5.3` |
| Large context | `glm-5.3[1m]` |
| OpenAI-compatible URL | `https://api.z.ai/api/coding/paas/v4` |
The `[1m]` suffix is what unlocks the 1M-token window. Omitting it is
a documented setup mistake. Pair it with
`CLAUDE_CODE_AUTO_COMPACT_WINDOW=1000000` when driving `claude`
directly.
Two operational notes. Environment changes only take effect in a
freshly launched shell, so an already-open session keeps reaching
Anthropic's real endpoint. And `claude` shows a first-run trust prompt
when it sees a non-Anthropic base URL. The `-p` non-interactive form
this service uses does not block on it.
Rollout caveat: at the time of writing, `docs.z.ai/devpack/latest-model`
documented `glm-5.3` while `docs.z.ai/guides/llm/glm-5.3` still read
"coming soon" and the base connection page still showed `glm-5.2`.
`GLM_52` stays defined for that reason, and `glm-4.7` remains the
fast-response id rather than being promoted on assumption.
The same archetype generalizes: MiniMax, Moonshot/Kimi, DeepSeek and
OpenRouter all expose Anthropic-compatible endpoints, so adding one is
a `ServiceConfig` with a different base URL.
## Exit Criteria
- [ ] `claude` resolves on PATH and answers `claude --version`
- [ ] `ZAI_API_KEY` is set, and `--verify` reports the service
available rather than naming an unset variable
- [ ] The built command contains no `z.ai` URL: the endpoint travels in
the child environment, not argv
- [ ] The child environment carries `ANTHROPIC_AUTH_TOKEN`, not
`ANTHROPIC_API_KEY`
- [ ] Output saved to `delegations/glm/YYYYMMDD_HHMMSS.md`
- [ ] This skill ran because `delegation-core` selected `glm`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!