On this page
- What you are buying#
- Setting it up with Claude Code#
- Four months, week by week#
- The meter you can see and the one you cannot#
- The concurrency wall#
- What a GLM attempt dies of#
- What the same tokens cost at list price#
- Which tier fits your week?#
- Where it fits, and where it does not#
- Records and refreshing this#
curl -s https://jedarden.com/guides/glm-coding-plan.md The GLM Coding Plan is the cheapest way I know to keep a coding agent busy around the clock, and the thing that stops you is not the thing on the pricing page. Z.ai sells a subscription that lets Claude Code, Codex, OpenCode, Cline and about twenty other tools run GLM-5.3 and GLM-5.3-Flash instead of the vendor’s own models, for $18, $80 or $168 a month. Since July 2026 a fleet of unattended Claude Code workers on my machines has run on it: about 116,000 sessions, a billion output tokens, and 1.5 million model calls that the vendor’s own usage dashboard counted. This is what that bought, what it broke, and who should buy which tier.
TL;DR — Buy it if you want cheap, unattended throughput on work that has a test suite to catch the model: the fleet closed about 40% of its attempts on GLM against 50% for Codex at a reasoning budget that costs ten times more. Lite covers a person pairing with one agent all week. Pro covers one always-on worker on either model. Max covers a fleet of roughly eight to sixteen Flash workers by credits, which is also about where its concurrency cap sits, and that cap, not the credit meter, is the wall you will actually hit. Do not buy it as a replacement for a frontier model where a person is steering and every minute of their time counts: attempts took five times longer than Codex and a quarter of failures were the model running out of road. The five-hour credit window never bound a Max account at ten to twenty workers after the switch to GLM-5.3; the plan’s concurrency cap did, every busy hour.
What you are buying#
The plan is a credit allowance in two windows, spent through supported tools only. Prices are as displayed on the plan page on 2026-11-09; the yearly figures are billed up front.
| Tier | Per month (yearly billing) | Credits per 5 hours | Credits per week |
|---|---|---|---|
| Lite | $18 ($12.60) | 2,000 | 10,000 |
| Pro | $80 ($56) | 12,000 | 60,000 |
| Max | $168 ($117.60) | 28,000 | 140,000 |
The vendor’s own labels for the three are “one project at a time”, “6× Lite usage, one to two projects” and “14× Lite usage, two or more projects”.
A credit is a weighted token count. Every model call costs (input tokens × input weight + cached input × cache weight + output × output weight) ÷ 10,000, and the weights are what make the two models feel so different:
| Model | Input | Cached input | Output |
|---|---|---|---|
| GLM-5.3 | 6.9 | 1.7 | 24 |
| GLM-5.3-Flash | 2.3 | 0.56 | 8 |
Off-peak usage costs half. Peak is weekdays 14:00 to 18:00 Singapore time, which is 06:00 to 10:00 UTC, so a US or European working day is almost entirely off-peak. The five-hour window starts when you first spend from it and refills five hours later; the weekly window starts at your order time and resets every seven days. The vendor’s own estimate for Max is 676 to 1,352 million GLM-5.3 tokens a week at a 95% cache-hit rate, the low end if you only ever work during Singapore’s afternoon.
Three policy lines matter more than the arithmetic. The plan may only be used inside officially supported tools, not called as an API. Benefits are exclusive to the subscriber and account sharing is prohibited. Purchases are final; there are no refunds, and the usage policy and the FAQ disagree on whether you must cancel three days or 24 hours before renewal. The policy pages say nothing either way about unattended or automated use, which is how I use it.
Setting it up with Claude Code#
Claude Code reads a handful of environment variables that point it at a different Anthropic-compatible endpoint. The vendor’s guide sets these, either through its install script or by hand in the user settings file:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "your Z.ai API key",
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5.3[1m]",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-5.3[1m]",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-5.3-flash[1m]",
"CLAUDE_CODE_AUTO_COMPACT_WINDOW": "1000000",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1,
"API_TIMEOUT_MS": "3000000"
}
}
Three things the guide does not explain. The [1m] suffix asks for the
model’s million-token context, which is why the auto-compact window is
raised to match; a headless worker on the fleet compacted in 0.8% of
sessions, against 2.5% for interactive Anthropic sessions. The default
install maps all three Claude aliases to Flash and the manual snippet maps
Opus and Sonnet to GLM-5.3; pick deliberately, because the output weight
triples. And the 50-minute API timeout is there because long GLM-5.3 turns
take minutes, not seconds; the fleet’s median GLM-5.3 attempt ran 29
minutes against 6 for Codex.
Everything in this article ran through that configuration, with one addition: the workers do not talk to the vendor directly but through a small reverse proxy of mine that counts tokens, retries on the vendor’s error codes and holds requests below a discovered rate ceiling. That proxy is where a lot of the failures below were born, and I say so where it is.
Four months, week by week#
| ISO week | GLM sessions | Output tokens | API errors |
|---|---|---|---|
| W31 | 1,188 | 22.8M | 1,481 |
| W32 | 8,036 | 50.4M | 241 |
| W33 | 6,808 | 44.5M | 905 |
| W34 | 3,347 | 42.3M | 1,891 |
| W35 | 13,063 | 73.1M | 741 |
| W36 | 6,222 | 93.8M | 4,483 |
| W37 | 8,335 | 70.2M | 16,170 |
| W38 | 6,506 | 132.5M | 67,526 |
| W39 | 5,517 | 139.9M | 21,475 |
| W40 | 1,897 | 26.3M | 10,042 |
| W41 | 1,448 | 20.4M | 1,421 |
| W42 | 5,576 | 45.5M | 1,222 |
| W43 | 1,548 | 29.3M | 474 |
| W44 | 1,953 | 28.4M | 1,625 |
Read it in three acts. From late July to the end of August the fleet ran GLM-4.7, the model the plan shipped with: short sessions, a median of 3,200 output tokens and six minutes, sixteen tool calls. On September 1 the workers moved to GLM-5.3 and GLM-5.3-Flash and the shape changed: median output quadrupled to 12,000 tokens on Flash and 17,000 on GLM-5.3, sessions ran eleven and fifteen minutes, and the weekly token count doubled while the session count fell. The error column exploding in weeks 37 to 39 is the concurrency wall, and the next two sections are about it. From October the fleet was deliberately cut back and a Codex fleet took the larger share of the queue, which is the comparison in Codex vs Claude Code.
Across all four machines the GLM side of that period came to 116,226 headless sessions and 1,003 million output tokens, and the vendor’s own dashboard counted 1.5 million model calls on the account between August 11, when I started polling it, and today.
The meter you can see and the one you cannot#
Every plan has a five-hour window and a weekly window. The vendor’s usage API reports the five-hour one; for this account it has never reported a weekly one, and nothing I ran was ever stopped by a weekly limit. The chart is the five-hour meter sampled every hour for 91 days.
| Month | Vendor-metered tokens | Model calls | Hours at 100% of the 5-hour window | Hours at 90% or more |
|---|---|---|---|---|
| August (from the 11th) | 34.1B | 565,900 | 11 | 18 |
| September | 50.0B | 726,016 | 0 | 1 |
| October | 8.3B | 127,384 | 0 | 0 |
| November (to the 9th) | 5.5B | 86,429 | 0 | 0 |
Two things stand out. First, the window filled only in August, on seven days, for eleven hours in total, all of it on GLM-4.7 with twenty workers running flat out. After the switch to GLM-5.3 the fleet never reached 100% again, and passed 90% for exactly one hour, while sending more tokens per week than before. The median hourly reading over the whole period is 5%, the 90th percentile 38%. Second, this account was bought under the earlier prompt-counted version of the plan and prepaid for a year; it reports a Max tier but only one window. A plan bought today carries a 140,000-credit weekly cap, and September’s volume works out to several times the vendor’s own stated weekly token estimate for Max. I cannot tell you how the weekly cap behaves when you hit it, because I never did. The calculator further down tells you whether you would.
What did stop the fleet was something the pricing page does not list.
The concurrency wall#
When the vendor refuses a request it returns an HTTP 429 with a body code. Code 1302 is “too many requests in flight on this account”; 1303 and 1305 are request-rate limits; 1308 and 1310 are credit exhaustion. In four months of transcripts and proxy logs, every refusal I have was a 1302. Not one was a credit code.
The transcripts recorded 2,376 of those 429s reaching Claude Code, which retries each up to ten times before giving up. The proxy’s own logs on the three worst days of September held 178,000, 231,000 and 199,000 lines containing a 429, forty-odd percent of everything it logged, arriving in waves that match the fleet’s dispatch cycle. In one half-hour sample it completed 770 requests and absorbed 2,270 upstream refusals, with between nine and fifteen requests in flight at any moment. That is the number to remember: at the Max tier, in September, the account sustained roughly ten to fifteen concurrent model calls, and the twentieth worker bought nothing but retries.
This inverts the usual intuition about a prepaid plan. The account was credit-rich and concurrency-poor. Adding workers could not spend the credits faster; the only levers that moved credit burn were the model tier and the length of each response. The vendor’s policy page says what the limit is without saying what the number is: concurrency “is tied to your plan tier”, Max above Pro above Lite, dynamically raised during off-peak hours. The recommended “two or more projects” for Max is a reasonable gloss on ten to fifteen in-flight calls when each Claude Code turn holds one.
Two practical consequences. If you run more than one agent, a shared queue in front of the vendor is worth having: Claude Code’s own retry gives up after ten tries and the attempt dies, while a proxy that waits for a slot converts refusals into latency. And do not read the credit meter as a capacity gauge. The fleet’s five-hour meter sat at 5% while its workers spent whole minutes being refused.
What a GLM attempt dies of#
The fleet records why every attempt failed. Here are the five largest reasons for Claude Code on the GLM plan next to the five largest for Codex, over the 49 days both have traces.
| Claude Code on the GLM plan (2,879 failures of 8,302 attempts) | Share | Codex CLI (2,834 failures of 9,708 attempts) | Share |
|---|---|---|---|
| Stream cut by the gateway (HTTP 499) | 41% | Finished without shipping a commit | 32% |
| Uncommitted work left in the checkout | 12% | Close verification failed | 26% |
npm test failed | 11% | Uncommitted work left in the checkout | 18% |
| Repository verify script failed | 9% | Agent exited non-zero before any gate | 6% |
| Agent hit its turn limit | 6% | Needed a human step | 3% |
The shapes differ. Codex’s failures are process failures: the work was done, or nearly, and the paperwork was not. GLM’s largest failure was not the model at all. The 499 is a request cancelled mid-stream, and 1,187 of them were my proxy’s fault: it waited for a rate-limit slot before reading the request body, a long session’s multi-megabyte body sat in the socket, and an ingress timeout cut the connection at sixty seconds. On one repository eight of thirteen attempts in an afternoon died that way after fifteen to forty minutes of work each. It was fixed on October 29 and no attempt has died of it since, but every unattended GLM setup I have seen has some version of this problem: long turns, big bodies, and a timeout somewhere in the path that was tuned for a chat.
Strip that out and GLM’s remaining failures are the model’s: tests that did not pass, verify scripts that did not pass, and the turn limit. A further 25.5% of GLM attempts ended by splitting the task into smaller ones instead of delivering it, against 20.9% for Codex; both fleets prefer to decompose rather than fail, and GLM reached for it more.
On yield, the two GLM models were indistinguishable: Flash closed 39.4% of its 6,752 attempts and GLM-5.3 41.0% of its 1,570, at the same median half hour. Codex on gpt-5.6 at its highest reasoning setting closed 54.3%, in six minutes. The gap is real and it is also not the whole story: the harnesses were pinned to different repositories, and the GLM workers held the long, grinding tail of the backlog for two months before the Codex fleet existed. Premature closes were similar across the three, 16.5% of GLM closures reopened against 18.4% for Codex.
A session on GLM looks like this, from 96,000 transcripts on one machine:
| Model | Sessions | Median output tokens | Median duration | Median tool calls | Shell share of tool calls |
|---|---|---|---|---|---|
| GLM-4.7 (July to August) | 33,345 | 3,223 | 5.9 min | 16 | 70% |
| GLM-5.3-Flash | 23,933 | 11,931 | 11.4 min | 18 | 79% |
| GLM-5.3 | 5,071 | 16,998 | 15.1 min | 28 | 79% |
GLM-5.3 reads more and runs more commands before it writes; Flash writes sooner. Both lean on the shell more than Anthropic’s models did on the same harness (71% for Sonnet), and neither reached for subagents or web search to any measurable degree.
What the same tokens cost at list price#
The plan is a prepaid allowance, so the honest comparison is not with another subscription but with what the vendor charges for the same tokens by the million. List prices on 2026-11-09 are $1.40 input, $0.26 cached and $4.40 output for GLM-5.3, and $0.15, $0.03 and $0.50 for Flash. The fleet’s measured mix sends 5.4 uncached and 72 cached input tokens for every output token, so the list price of one million output tokens of fleet work is about $3.50 on Flash and $30.70 on GLM-5.3.
| Month | GLM output tokens, all machines | Share on GLM-5.3 | List-price equivalent | Max tier, monthly |
|---|---|---|---|---|
| July | 102.7M | 0% (GLM-4.7, priced as Flash) | about $360 | $168 |
| August | 229.1M | 6% | about $1,200 | $168 |
| September | 546.3M | 14% | about $4,060 | $168 |
| October | 125.1M | 19% | about $1,080 | $168 |
Roughly $6,700 of list-price inference for four months of a $168 plan, most of it in September. That ratio is the entire argument for the plan, and it comes with its own caveats: the ratio was achieved by a fleet that never idles, at a Max tier that was never weekly-capped, on a model whose attempts closed less often and ran five times longer. A person pairing with an agent for an evening will consume a small fraction of this and pay the same $18 or $80.
Which tier fits your week?#
The calculator below uses the fleet’s measured mix per call and the plan’s published weights to turn a week into credits. Steering hours count as one session-hour each; an always-on worker counts as 168 session-hours a week at the fleet’s measured pace of about 21 calls an hour.
| If your week is… | Flash, off-peak | GLM-5.3, off-peak |
|---|---|---|
| Five hours of pairing | about 260 credits: Lite (3% of its week) | about 800 credits: Lite (8%) |
| A working week of pairing (30 hours) | about 1,600 credits: Lite (16%) | about 4,800 credits: Lite (48%) |
| One always-on worker | about 8,900 credits: Lite (89%), Pro at peak rates | about 26,800 credits: Pro (45%) |
| Two workers plus a day of pairing | about 18,100 credits: Pro (30%) | about 54,800 credits: Pro (91%) |
| Ten always-on workers | about 88,500 credits: Max (63%), over Max at peak rates | about 267,600 credits: over Max |
The five-hour window is generous next to the weekly one. Max’s five-hour allowance refills at 5,600 credits an hour but the weekly one at 833, so nothing a single agent does will touch either, and a fleet that never stops meets the weekly cap first. Peak-hour pricing matters less than it looks: a weekday afternoon in Singapore is the small hours in America and the morning commute in Europe, so most readers will pay the half rate most of the time. The one thing the calculator cannot model is the concurrency cap, because the vendor does not publish it; the fleet’s experience is that at Max it arrives at ten to fifteen simultaneous calls, which is about where the credits run out for Flash workers too.
Where it fits, and where it does not#
Buy Lite if you are one person pairing with one agent, even all week. Ten thousand credits is a hundred to two hundred Flash sessions of fleet shape, or thirty to sixty-five on GLM-5.3, depending on when you work, for the price of two coffees. One always-on Flash worker fits too, barely, if it works off-peak.
Buy Pro for one worker that never stops, on either model, or for two people sharing a backlog. Buy Max if you run a fleet, or you want a second meter that does not fail in the same week as your Anthropic or OpenAI plan. The step from Pro to Max buys concurrency as much as credits; if you have ever seen a 1302, you want Max.
Pair it, do not replace with it. Every Claude Code or Codex plan I have measured was exhausted by about two always-on workers. The GLM plan carried twenty for a sixth of the price, at a lower close rate and a slower pace, on a queue where the test suite did the judging. The frontier model is the one you sit next to; the GLM plan is the one that works the night shift. The cost guide’s plan finder puts this plan next to twenty-five others on the same tokens-per-dollar axis.
Do not buy it to run a single agent that you watch closely, if a 29-minute attempt instead of a six-minute one costs you more than $150 a month in your own time. Do not buy it expecting the credit meter to tell you when you are out of capacity; watch for 1302s instead. And read the policy: supported tools only, no account sharing, no refunds.
Two facts a reader may weigh differently from me. The provider is a Singapore-registered subsidiary of a Beijing model lab, and its API terms state that customer content is processed in real time, not stored, and not used for training without explicit agreement. I have no way to verify either beyond the published terms, and my fleet’s work is public-repository code. If yours is not, that is a decision, not a footnote.
Records and refreshing this#
Every number above has a source file. The vendor-side series come from the account’s own usage API, polled hourly since August 11: tokens per model, model calls, and the five-hour window’s used share. The fleet-side numbers come from Claude Code’s transcripts on four machines, 158,773 files between July 9 and October 31, and from the attempt traces the fleet writes for every task since September 12. Pricing, credit weights and policy wording were read from the vendor’s pages on 2026-11-09, and the tools-tested line under the title records which Claude Code and Codex versions the setup was checked against.
Plans move. The credit system replaced prompt counting on July 30; GLM-5.3 replaced GLM-4.7 as the routed model during September; the proxy bug behind 41% of failures was fixed on October 29. A weekly check compares the installed tools against the versions recorded here and files a refresh when either moves a minor version or the telemetry horizon passes ninety days. If you are reading this after one of those has happened and the article has not been updated, trust the shape of the findings over the figures: the wall is concurrency, the weekly window binds an always-on worker, and the plan is cheapest where a test suite does the judging.
- W36: switch to GLM-5.3 (Sep 1)
- W37 to W39: concurrency refusals peak
- W40: Codex fleet takes the larger share
Read the two axes apart. Sessions are counted plainly; errors are drawn on a logarithmic scale because they span 241 to 67,526 a week and a linear axis would flatten every week but W38. The error line is the concurrency wall of the next two sections, not the credit meter.
The numbers
| ISO week | GLM sessions | Output tokens | API errors |
|---|---|---|---|
| W31 | 1,188 | 22.8M | 1,481 |
| W32 | 8,036 | 50.4M | 241 |
| W33 | 6,808 | 44.5M | 905 |
| W34 | 3,347 | 42.3M | 1,891 |
| W35 | 13,063 | 73.1M | 741 |
| W36 | 6,222 | 93.8M | 4,483 |
| W37 | 8,335 | 70.2M | 16,170 |
| W38 | 6,506 | 132.5M | 67,526 |
| W39 | 5,517 | 139.9M | 21,475 |
| W40 | 1,897 | 26.3M | 10,042 |
| W41 | 1,448 | 20.4M | 1,421 |
| W42 | 5,576 | 45.5M | 1,222 |
| W43 | 1,548 | 29.3M | 474 |
| W44 | 1,953 | 28.4M | 1,625 |
Read it. The window filled only in August: 11 hours on 7 days, with twenty GLM-4.7 workers running flat out. After the switch to GLM-5.3 on Sep 1 the bars never reach the top again while the token line climbs; across all 2,160 hourly readings the median is 5% and the 90th percentile 38%. The vendor reports a max tier and no weekly window for this account.
The months behind the chart
| Month | Days | Vendor-metered tokens | Model calls | Hours at 100% | Hours at 90% or more |
|---|---|---|---|---|---|
| Aug 2026 | 21 | 34.1B | 565,900 | 11 | 18 |
| Sep 2026 | 30 | 50.0B | 726,016 | 0 | 1 |
| Oct 2026 | 31 | 8.3B | 127,384 | 0 | 0 |
| Nov 2026 | 9 | 5.5B | 86,429 | 0 | 0 |
Hourly samples of the vendor's usage API from Aug 11; each bar is the day's highest reading. Partial months at both ends.
Claude Code on the GLM plan 2,879 failures of 8,302 attempts
-
Stream cut by the gateway (HTTP 499)
-
Uncommitted work left in the checkout
-
npm test failed
-
Repository verify script failed
-
Agent hit its turn limit
Codex CLI 2,834 failures of 9,708 attempts
-
Finished without shipping a commit
-
Close verification failed
-
Uncommitted work left in the checkout
-
Agent exited non-zero before any gate
-
Needed a human step
Read the colours. Codex's bars are mostly process: the work was done or nearly, and the paperwork was not. GLM's largest bar is the path to the model, a stream cut by a gateway timeout that was fixed on October 29, and only the bars below it are the model's own. Attempts that split into smaller tasks instead of finishing are not drawn: 25.5% of GLM attempts and 20.9% of Codex attempts.
The counts
| Harness | Reason | Kind | Count | Share |
|---|---|---|---|---|
| Claude Code on the GLM plan | Stream cut by the gateway (HTTP 499) | infrastructure | 1,187 | 41.2% |
| Claude Code on the GLM plan | Uncommitted work left in the checkout | process | 346 | 12% |
| Claude Code on the GLM plan | npm test failed | model | 322 | 11.2% |
| Claude Code on the GLM plan | Repository verify script failed | model | 246 | 8.5% |
| Claude Code on the GLM plan | Agent hit its turn limit | model | 170 | 5.9% |
| Codex CLI | Finished without shipping a commit | process | 904 | 31.9% |
| Codex CLI | Close verification failed | process | 731 | 25.8% |
| Codex CLI | Uncommitted work left in the checkout | process | 503 | 17.7% |
| Codex CLI | Agent exited non-zero before any gate | infrastructure | 163 | 5.8% |
| Codex CLI | Needed a human step | process | 97 | 3.4% |
Attempt traces over the attempt traces, 49 days both harnesses have traces; split decompositions excluded from both denominators.
How it is priced. One million output tokens of fleet-shaped work carries 5.4 million uncached and 72 million cached input tokens with it, so at list price it costs about $3.48 on Flash and $30.73 on GLM-5.3. Each month is blended by its measured GLM-5.3 share of vendor-metered tokens; July predates the vendor-side series and ran GLM-4.7, which the plan now routes to Flash; it is priced as Flash. About $6,690 of list-price inference over four months of a $168 plan.
The arithmetic
| Month | Output tokens | Share on GLM-5.3 | List price per million output | List-price equivalent |
|---|---|---|---|---|
| Jul | 102.7M | 0% (GLM-4.7, priced as Flash) | $3.48 | $360 |
| Aug | 229.1M | 6% | $5.23 | $1,200 |
| Sep | 546.3M | 14% | $7.43 | $4,060 |
| Oct | 125.1M | 19% | $8.65 | $1,080 |
Which tier fits your week?
fits Lite
About 104 model calls a week at the fleet's pace. Five-hour check: the busiest block would spend 527 of the tier's 2,000 five-hour credits (26%) if it fell in peak hours, so it fits the five-hour window. The same calls through the API at list price: $0.30 a week.
Rates measured on this fleet: one call sends about 4,500 new and 60,000 cached input tokens and returns 838 output tokens; a session-hour makes about 20.8 calls (42,000 calls over seven days at about 12 concurrent sessions). Credits per call use the plan's published weights (Flash 2.3 / 0.56 / 8, GLM-5.3 6.9 / 1.7 / 24 for input / cached / output), halved off-peak; peak is Monday to Friday 14:00–18:00 Singapore time (UTC+8), i.e. 06:00–10:00 UTC. A steering hour is one session-hour; a worker is 168. The concurrency cap is not modelled, because the vendor does not publish it.