Back to guides
Pricing·September 21, 2026·9 min read

Crush pricing: plans, API costs and provider choices

The Crush client costs nothing. The money is in the catalog behind it — and Charm Hyper's own catalog cannot sell you Claude, GPT or Gemini at any price.

Last reviewed on .

The Crush CLI has no price of its own: Charm's terminal coding agent is a free download under FSL-1.1-MIT, with no Crush account, no paid tier and no licence key, so "Crush pricing" in practice means the model bill behind it. Charm sells a first-party gateway, Hyper, but Hyper is optional — and the choice between it and your own key is a catalog decision before it is a price decision.

One disambiguation first, because the keyword carries "cli". This page is about charmbracelet/crush, Charm's Go agent, at release v0.96.1, published September 21, 2026 and read from the repository's releases feed the same day. liljencrantz/crush is an unrelated Rust shell that ships its own docs/config.md, and none of the configuration below applies to it.

What the Crush CLI charges, and what actually bills you

Neither charm.land nor the README carries a Crush price, a paid tier or a "Crush is free" sentence — the evidence is the absence of any price, a README that lists only free install methods, and the licence. Read the licence precisely: FSL-1.1-MIT is source-available, converting to the MIT License two years after each version is made available, with internal use named as a Permitted Purpose. It is not an OSI open source licence during that window, so "free to download and run" is accurate and "open source" on its own is not.

Line itemWhat it costsWhere that comes from
The Crush binaryNo price, FSL-1.1-MITThe README lists only free installs — brew, @charmland/crush on npm, go install, winget, scoop, apt, yum, Nix, FreeBSD pkg
A Crush accountNone for the client itselfNo sign-up to run it, no licence key, no paid edition — crush login authenticates you to a provider, not to Crush
Charm Hyper, optional$0 or $20 a month, or prepaid creditshyper.charm.land
Any other provider keyThat provider's per-token rateTheir billing, not Charm's
ChatGPT or Copilot sign-inDrawn from that subscriptionOpenAI OAuth shipped in v0.94.1, September 12, 2026
A local model via OllamaNo per-request chargeThe README's own provider add ollama example

Put a check date next to any Crush version you quote. The releases feed shows v0.95.0 on September 16 and then both v0.96.0 and v0.96.1 on September 21 — v0.96.1 is a rename of two theme API keys shipped hours after v0.96.0. At that cadence a version number in a tutorial goes stale inside a week, this page included: Kunavo's own Crush vs OpenCode comparison still names v0.95.0 from its own check two days earlier.

Crush Hyper vs API: the catalog question comes first

Charm Hyper is what Crush's onboarding steers you to, and the README calls it the official Crush provider — subscription-based, with a free tier and optimized for Crush. Charm does not say what that optimisation is, and Hyper also documents Claude Code, Codex, OpenCode, Pi and Zed, so treat "official" as a business relationship rather than a technical requirement.

Hyper planPublished priceWhat Charm states you get
Free$0 a month"Everyone gets 100 Hypercredits per month."
Subscription$20 a month"250 Hypercredits, refreshing daily."
Prepaid bundle$5 / $10 / $20100 / 200 / 400 Hypercredits; "Prepaid Hypercredits never expire."
The credit unit"1 Hypercredit is currently 5¢"Credits "map directly to token costs"

Read from hyper.charm.land on September 21, 2026. Two of those rows deserve caution. All three prepaid bundles work out at exactly five cents a credit — 100 for $5, 200 for $10, 400 for $20 — so buying the largest one carries no volume discount, and Charm's own word for the credit rate is currently, so any conversion you do carries the date it was done. And resist turning the daily refresh into a monthly allowance: neither Hyper's pricing section nor its terms state a monthly cap, a fair-use clause or a throughput limit, and those terms define a "Credit Limit" as the maximum credits available under your plan without naming a number. At the stated five cents, 250 credits is $12.50 of token cost on the day they refresh, and that is as far as the published figures reach.

Now the fact that actually decides this. Hyper's public, unauthenticated models endpoint returned 23 models on September 21, 2026, and none of them is an Anthropic Claude model, a hosted OpenAI GPT model or a Google Gemini model. The catalog is DeepSeek, Kimi, GLM, MiniMax, Inkling and Qwen, plus gpt-oss-120b — OpenAI's open-weights model, not a hosted GPT — and gemma-4-26b-a4b-it, from Google's open-weights family rather than Gemini. So "Hyper or an API key" is not first a price question: if you want Claude, GPT-5.x or Gemini inside Crush, Hyper cannot sell them to you at any price. Those families reach Crush either through the vendor's own key on one of Crush's built-in providers — the README's environment table carries ANTHROPIC_API_KEY, OPENAI_API_KEY and GEMINI_API_KEY — or through a third-party endpoint registered as a custom provider.

A related trap on both sides of this page: "Anthropic-compatible" names a wire protocol, never a vendor. Hyper's own Claude Code setup sets ANTHROPIC_BASE_URL to https://hyper.charm.land and ANTHROPIC_MODEL to deepseek-v4-pro. Crush's own --type anthropic works the same way.

Hyper's rates against the vendor that makes the model

Hyper publishes per-model dollar prices per million tokens, not a credit table, so every credit figure anywhere is arithmetic at five cents. Only one snapshot-to-snapshot comparison is safe: Hyper lists both deepseek-v4-pro and deepseek-v4-pro-0813 at different prices, while DeepSeek's own price page documents a single deepseek-v4-pro and identifies it as DeepSeek-V4-Pro-0813. The undated Hyper id cannot be mapped from published information, so compare 0813 to 0813 and leave the other alone.

Route, same model snapshotInput / output per 1MEstimated cost, assumed session
Hyper deepseek-v4-pro-0813$1.437216 / $4.311648$0.517
DeepSeek direct, peak hours$1.32 / $3.96$0.475
DeepSeek direct, off-peak$0.66 / $1.98$0.238

Both tables checked September 21, 2026, with the session assumption stated in the next section. Hyper sits about 8.9 percent above DeepSeek's peak rate for the same snapshot and roughly double its off-peak rate — DeepSeek charges half outside 01:00–04:00 and 06:00–10:00 UTC on weekdays, which is most hours and all weekends. That is arithmetic on two published tables, not a judgement about either service: Hyper bundles a multi-model gateway and a built-in sign-in flow that a direct DeepSeek key does not. Check ids before assuming any mapping, incidentally — DeepSeek's page states that the legacy deepseek-v4-flash name is still accepted upstream but that the corresponding models are retired and served by V4.1 Flash.

A recomputable estimate on your own endpoint

Pointing Crush at a third-party endpoint is a documented first-class path, not a premium feature — there is no plan gate, no model allowlist and no protocol restriction beyond the --type you pick. The config is a crushrc, which is Bash with Crush builtins and is executed rather than parsed.

~/.config/crush/crushrc
# A crushrc is Bash with Crush builtins, and it is executed, not parsed.
provider add kunavo --type openai-compat \
  --base-url "https://api.kunavo.com/v1" \
  --api-key "${KUNAVO_API_KEY:?set KUNAVO_API_KEY}"

# --price-input and --price-output are numbers YOU type. Nothing reads
# your account, so a typo here changes the readout, never the charge.
model add kunavo/claude-sonnet-5 \
  --name "Claude Sonnet 5" \
  --context-window 1000000 \
  --default-max-tokens 32000 \
  --price-input 2 \
  --price-output 10

The price flags matter for a reason people misread. Crush's config reference documents --price-input, --price-output, --price-cache-create and --price-cache-hit as per-million-token prices, and they are numbers you type. Nothing on that path reads your account. Crush v0.96.0 added a live Hypercredit display to the TUI, but that reads a Charm Hyper balance and tells you nothing about a custom provider's bill.

Now a bill you can recompute. These are illustrative token arithmetic, not measured task costs and not a bill ceiling. Assume one agentic session that sends 300,000 uncached input tokens and receives 20,000 output tokens, with no cache hits and no tool-call retries. Hyper rates are Charm's published figures; the credit column converts them at the stated five cents. Kunavo rates come from the live catalog.

ModelRouteInput / output per 1MSession estimateAt 5¢ a credit
gemma-4-26b-a4b-itCharm Hyper$0.098 / $0.334$0.0360.7 credits
qwen3.8-flashCharm Hyper$0.15 / $0.47$0.0541.1 credits
glm-5.3-flashCharm Hyper$0.16332 / $0.5444$0.0601.2 credits
deepseek-v4-flashCharm Hyper$0.20 / $0.40$0.0681.4 credits
glm-5.3Charm Hyper$1.52432 / $4.79072$0.55311.1 credits
deepseek-v4-proCharm Hyper$2.40 / $4.80$0.81616.3 credits
kimi-k3Charm Hyper$3.2664 / $16.332$1.30726.1 credits
Claude Haiku 4.5Kunavo$0.40 / $2.00$0.160
GPT-5.6 TerraKunavo$0.70 / $4.20$0.294
Claude Sonnet 5Kunavo$2.00 / $10.00$0.800
Claude Opus 5Kunavo$2.00 / $10.00$0.800

Two readings, and a caution. The spread inside Hyper's own catalog — $0.036 to $1.307 for the identical session — is far wider than the one route-to-route gap this page could measure on a single model snapshot, the 8.9 percent above, so which model you pick moves the bill much more than which route you pick. And the rows are not equivalents — these are different models from different families, so the table compares bills under one token assumption, never capability. Measured against each vendor's own published output rate, Claude Haiku 4.5 ($5.00 at the vendor) comes out about 60 percent under it, while Claude Sonnet 5 ($10.00 at the vendor) comes out exactly at it. The same catalog does both, which is why this page quotes a rate per model instead of a blanket claim about the shelf.

Scale by your own sessions per day before treating any of it as a budget. On the assumed shape, Hyper's $20 plan refresh of $12.50 covers about 15 sessions on deepseek-v4-pro on the day it refreshes — again, arithmetic on published figures, with no statement from Charm about how that behaves across a month. Kunavo's catalog amount is a billing floor rather than a cap: where the upstream reports its charge, the bill is the greater of catalog cost and upstream cost times the applicable markup. Cache charges and external tools sit outside this example. The minimum top-up is $10 in prepaid credit, a funding minimum rather than a task fee or a subscription — see billing details.

Best API for Crush: the routes, and the one that does not exist

There is no single best API for Crush, because Crush gates nothing: the right route is the one whose catalog holds the models you want and whose billing shape matches how you work. Start with the one fact that removes an option outright. Crush's subscription support is asymmetric, and it is the sharpest buyer fact here. OpenAI OAuth arrived in v0.94.1 on September 12, 2026, and Crush's login command on main offers three platforms — hyper, copilot and openai — so a ChatGPT or Copilot subscription can drive Crush. But no first-party Crush documentation names which plan tiers either flow accepts, so do not buy a tier on that basis. A Claude Pro or Max subscription cannot: issue #457, "Add support for Claude Code Max subscription authentication", was opened August 1, 2025 and is closed as not planned, still closed on September 21, 2026. Claude in Crush therefore means an API key or a compatible endpoint.

RoutePublished termsThe catch worth knowing
Charm Hyper$0 or $20 a month, or prepaid creditsNo Claude, hosted GPT or Gemini in the catalog at all
ChatGPT sign-inDrawn from your existing subscriptionEligible tiers are not documented by Crush
Claude Pro / MaxNot a Crush routeSubscription auth closed as not planned; use a key or an endpoint
Z.AI GLM Coding PlanLite "Starting at just 18 USD per month", per Z.AI's devpack overviewLimited by its own terms to a published tool list — Crush is on it. Pro and Max prices are not stated in Z.AI's own developer docs, so confirm at checkout
Vercel AI Gateway"No markup and no platform fee on tokens", from prepaid creditsFree tier is a subset of models; bring-your-own-key needs the paid tier, and a failed key request is retried on Vercel's credentials and billed to your credits
A custom providerWhatever your provider chargesNothing in Crush gates it; you supply the price numbers for the readout

Vercel appears in Crush as a built-in provider rather than a hand-written one: Vercel's own Crush page states that npx vercel ai-gateway setup --agent crush "provisions or reuses a key and adds a native vercel provider" — and the README's environment-variable table carries VERCEL_API_KEY alongside HYPER_API_KEY, ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, ZAI_API_KEY and OPENROUTER_API_KEY. Z.AI's plan is the one route here with a genuine client restriction, and it works in Crush's favour: its docs state the plan "is limited to use within the following officially supported tools", and Crush is named on that list. Vercel's Crush page, Crush's README and Z.AI's tool list were all read on September 21, 2026.

Cheapest API for Crush: two different questions

Cheapest listed rate and lowest cost to finish the task are not the same claim, and only the first has a published answer. Inside Hyper's own catalog the listed spread runs from gemma-4-26b-a4b-it at $0.098 in and $0.334 out to kimi-k3 at $3.2664 and $16.332 — roughly thirty-three times on input and forty-nine times on output, inside one gateway's own price table on one day. This page cites no Crush-specific benchmark measuring task completion against cost, and names no winner without one: a cheap model that needs three attempts on an agentic edit can cost more than a capable one that lands in a single pass.

The method that does work is boring. Shortlist the least expensive model that finishes your work at review effort you accept, run one bounded task on it, then read the charge your provider account recorded — not the number in the terminal, which for a custom provider is arithmetic over prices you typed. AI cost optimization covers that loop in more detail, and the coding-model comparison covers the capability half.

Set it up and check the first charge

If you take the third-party-endpoint route rather than a vendor key, it is one provider add plus a model add per id, and the base URL keeps its /v1 suffix because Crush's own examples write it for both the openai-compat and anthropic types. Kunavo has not runtime-tested Crush, or any other client on these pages — what exists is a published configuration reference, and a setup page is not a test result. Keep a working route available, run one bounded task, and reconcile against your account. Start at the Crush integration guide, and create a Kunavo account when you are ready to fund a key.

Choosing between clients rather than providers? Crush vs OpenCode compares licences, permission defaults and first-party wallets, and OpenCode pricing covers the same free-client-metered-tokens split for the other agent. For the gateway decision on its own terms, see the gateway comparison and OpenAI-compatible API.

FAQ

How much does the Crush CLI cost?

Nothing for the client. Charm's Crush is a free download — the README documents Homebrew, the scoped npm package @charmland/crush, go install, winget, scoop, apt, yum, Nix and FreeBSD pkg, and charm.land publishes no Crush pricing page and no paid tier. There is no Crush account to create and no licence key — its login command signs you in to a provider, not to Crush. The licence is FSL-1.1-MIT, which is source-available rather than OSI open source: each released version converts to the MIT License two years after it is made available, and internal use is a Permitted Purpose in the meantime. What you pay is the model bill behind it — a Charm Hyper plan, another provider's per-token rate, a ChatGPT or GitHub Copilot subscription through Crush's sign-in flows, or nothing per request if you run a local model. Note that liljencrantz/crush, a Rust shell, is an unrelated project with the same name.

Crush Hyper vs an API key: which should I use?

Answer the catalog question before the price question. Charm Hyper is Charm's official Crush provider and its public models endpoint returned 23 models on September 21, 2026 — DeepSeek, Kimi, GLM, MiniMax, Inkling and Qwen ids, plus gpt-oss-120b and gemma-4-26b-a4b-it, which are OpenAI's and Google's open-weights models rather than hosted GPT or Gemini. There is no Anthropic Claude, no hosted OpenAI GPT and no Google Gemini in that list, so if you want one of those families in Crush, Hyper cannot supply it at any price and you need either the vendor's own key on one of Crush's built-in providers or a third-party endpoint as a custom provider. If a model from that catalog suits your work, Hyper is the least setup: Crush's login command runs a Charm Hyper device-code flow, or you can export HYPER_API_KEY. Hyper is not Crush-exclusive either — its docs index also covers Claude Code, Codex, OpenCode, Pi and Zed.

Can I use my Claude Pro or Max subscription in Crush?

No. The request to add Claude Code Max subscription authentication is charmbracelet/crush issue #457, opened August 1, 2025 and closed as not planned, still closed when checked on September 21, 2026. Crush does support a ChatGPT sign-in — OpenAI OAuth landed in v0.94.1 on September 12, 2026 — and its login command on main (internal/cmd/login.go) names three platforms, hyper, copilot and openai, so a GitHub Copilot sign-in exists too. But no first-party Crush documentation names which plan tiers either flow accepts, so do not buy a tier on the strength of that. For Claude models in Crush the routes are an API key or an Anthropic- or OpenAI-compatible endpoint configured as a custom provider, which the README documents as a first-class path with no plan gate.

What is the best API for the Crush CLI?

It depends on which models you want and how you like to pay, because Crush itself gates nothing. Charm Hyper wins on setup time if the 23 ids in its catalog cover your work. A direct vendor API wins when you use one vendor's flagship all day and want to be billed on that vendor's own published terms — DeepSeek, for one, charges half its peak rate outside 01:00-04:00 and 06:00-10:00 UTC on weekdays. A gateway wins when you want one key across several families; it is one of two ways to reach Claude, GPT or Gemini in Crush, the other being that vendor's own key on the built-in provider Crush already ships for it. Vercel AI Gateway is a built-in provider rather than a custom one and states it charges no markup and no platform fee on tokens, though bring-your-own-key there needs its paid tier. A subscription wins on flat-rate heavy use: Z.AI's GLM Coding Plan lists Crush among its officially supported tools, and Z.AI's developer docs put the Lite tier at a starting price of 18 USD per month. A local model through Ollama wins for small or private work at no per-request charge.

What is the cheapest API for the Crush CLI?

Cheapest listed rate and cheapest way to finish the task are different questions, and only the first one has a published answer. On Charm Hyper's own rates, checked September 21, 2026, the spread inside one catalog runs from gemma-4-26b-a4b-it at $0.098 input and $0.334 output per million tokens to kimi-k3 at $3.2664 and $16.332 — roughly thirty-three times on input and forty-nine times on output. A cheap model that needs three attempts on an agentic edit can still cost more than a capable one that needs a single pass, and this page cites no Crush-specific benchmark measuring that, so it does not claim a winner. Pick the least expensive model that completes your work with review effort you accept, run one bounded task, and read the charge your provider account actually recorded rather than the figure in the terminal.

Why does the cost Crush shows differ from what I was charged?

For a hand-registered custom provider, the on-screen figure is arithmetic over the --price-input, --price-output, --price-cache-create and --price-cache-hit values you typed into model add. Those flags are documented as per-million-token prices supplied by the user; nothing in that path reads your account or your provider's ledger, so a typo produces a wrong readout rather than a wrong charge. Crush v0.96.0 added a live Hypercredit display to the TUI, but that is a Charm Hyper balance readout and it says nothing about a custom provider's bill. Reconcile against your provider's own usage record.

Is crush.json still the right place to configure a provider?

No. Crush's README on main says of the JSON format that it is still supported but should be considered deprecated, and the config reference it points to adds that new configuration options will only be added to Bash-based config. The current format is a crushrc, which Crush reads as ./.crushrc, then ./crushrc, then ~/.config/crush/crushrc, with project settings overriding global ones. Worth knowing when you follow a vendor tutorial: DeepSeek's official Crush integration page (api-docs.deepseek.com/quick_start/agent_integrations/crush) and Vercel's official Crush page (vercel.com/docs/ai-gateway/coding-agents/crush) both still write crush.json, and DeepSeek's also writes its base URL without the /v1 suffix that Crush's own custom-provider examples carry. They are first-party pages that are one format behind the client.

Re-checked live on September 21, 2026 while writing: the Crush releases feed, Crush's README and config reference on main, hyper.charm.land's pricing section, its public models endpoint, its terms, DeepSeek's price page and Crush integration page, Crush's own login command on main, the state of crush issue #457, Vercel's AI Gateway pricing and Crush pages, and Z.AI's devpack overview and supported-tool list. Kunavo token rates come from the live catalog. Nothing on this page was executed against any endpoint and no token counts were measured — every dollar figure is illustrative token arithmetic.