Skip to main content

Charm Hyper Provider Guide

Charm Hyper is a Tier-2 catalog provider: OpenAI-wire-compatible with no behavioural quirks, so its entire integration is one JSON file (src/lib/providers/catalog/charm-hyper.json) rather than hand-written code. That file is the source of truth for everything on this page.

Verification status: docs- and roster-verified, not live-verified. This entry was onboarded credential-free — everything below comes from Hyper's own public documentation and an unauthenticated GET /v1/models call. No API key was ever created, and no authenticated or POST request was made to Hyper — so no chat call, tool call, structured-output call, or error response was ever actually exercised. Capabilities below reflect what the docs state or omit, not what a live probe proved. Run the Tier-2 live verification steps (roster probe with a real key, billing check, capability probes, live matrix) before relying on this entry in production, and fill in evidence.liveMatrix when that happens.


Key Facts​

  • Provider id: charm-hyper
  • Protocol: OpenAI-compatible (/v1/chat/completions). Hyper also documents an Anthropic-compatible /v1/messages endpoint, which this entry does not use.
  • Base URL: https://hyper.charm.land/v1
  • Default model: deepseek-v4-pro — this is not a vendor-declared default; Hyper's docs never label any model "default" or "recommended". It is the model value used in the worked example on Hyper's own Chat Completions reference page. Hyper's homepage quick-start uses a different example model (deepseek-v4-flash) — reconfirm the right default once a key is available.
  • Models in catalog: 23 (the full public roster as of 2026-09-28)
  • Streaming: documented (stream: true, SSE, terminal [DONE])
  • Tool calling: documented — tools is a listed request parameter ("Tool/function definitions"), but no worked tool-call example exists in the docs and it was never probed live, so toolsWithStreaming is left false pending verification.
  • Structured output: not documented at all — the terms response_format, "JSON mode" and "structured output" never appear anywhere in Hyper's API docs. structuredOutput and structuredOutputWithTools are both false in the catalog.
  • Embeddings: not documented / not supported
  • Billing: free-tier — $0/month, 100 Hypercredits/month (1 Hypercredit ≈ $0.05); paid subscription and prepaid bundles also exist
  • Key format: keys start with sk-hyper-

Quick Start​

1. Get an API key​

  1. Visit: https://hyper.charm.land/auth?mode=signup and sign up (Google, GitHub, or email)
  2. Copy an API key from the Hyper Dashboard — it starts with sk-hyper-
  3. Free plan: $0/month, 100 Hypercredits/month; paid subscription ($20/month, 250 Hypercredits/day) and prepaid bundles (never expire) are also available
  4. Set CHARM_HYPER_API_KEY in your .env file

2. Configure​

export CHARM_HYPER_API_KEY=sk-hyper-your-api-key
export CHARM_HYPER_MODEL=deepseek-v4-pro # optional — overrides the default model
export CHARM_HYPER_BASE_URL=https://hyper.charm.land/v1 # optional — self-hosted or proxy

3. Use it​

import { NeuroLink } from "@juspay/neurolink";

const neurolink = new NeuroLink();

const result = await neurolink.generate({
input: { text: "Explain context windows in one paragraph." },
provider: "charm-hyper",
model: "deepseek-v4-pro",
});

console.log(result.content);
# CLI
npx @juspay/neurolink generate "Hello" --provider charm-hyper

Per-request credentials work as they do for every provider:

await neurolink.generate({
input: { text: "Hello" },
provider: "charm-hyper",
credentials: { "charm-hyper": { apiKey: process.env.CHARM_HYPER_API_KEY } },
});

Models​

All 23 entries come from the public, unauthenticated GET https://hyper.charm.land/v1/models response (2026-09-28) — context window, max output tokens, vision and pricing are the vendor's own served metadata, not estimates.

ModelContextMax outVision$/M in · out (cached in)Notes
deepseek-v4-pro ⭐1M384Kno$2.40 / $4.80 ($0.20)Default for this entry — Hyper's own Chat Completions reference example.
deepseek-v4.1-flash1,048,57632,768yes$0.30 / $1.20 ($0.03)Newest DeepSeek Flash snapshot; reasoning effort low/high/xhigh.
deepseek-v4-flash1M384Kno$0.20 / $0.40 ($0.04)Homepage quick-start's example model. Hyper's marketing page lists this id under "attachment support", but the live roster reports vision: false — a documented inconsistency, not resolved here.
deepseek-v4-pro-08131M262,144no$1.437216 / $4.311648 ($0.047907)Dated pin of the Pro line.
deepseek-v4-flash-07311M384Kno$0.44 / $1.32 ($0.044)Dated pin of the Flash line.
kimi-k31,048,57616,000yes$3.2664 / $16.332 ($0.32664)Moonshot Kimi K3.
kimi-k2-thinking262,14426,214no$0.60 / $2.50 ($0.30)Reasoning-first Kimi variant.
kimi-k2.7-code256,00016,000yes$1.03436 / $4.3552 ($0.206872)Code-focused Kimi variant.
glm-5.31M128,000no$1.52432 / $4.79072 ($0.283088)Zhipu GLM 5.3.
glm-5.3-flash1,048,576131,072yes$0.16332 / $0.5444 ($0.031575)Zhipu GLM 5.3 Flash.
glm-5.21M32,768no$1.52432 / $4.79072 ($0.152432)Prior GLM generation.
minimax-m3512,000512,000yes$0.32664 / $1.30656 ($0.064239)MiniMax M3 — max output equals its context window.
minimax-m2.7262,1006,553no$0.484 / $1.852 ($0.242)Prior MiniMax generation.
inkling1,048,57665,536yes$1.0888 / $4.40964 ($0.185096)Lineage not stated in the docs read for this entry.
qwen3.8-max1M65,536yes$2.00 / $6.00 ($0.25)Alibaba Qwen3.8 Max.
qwen3.8-flash1M128,000yes$0.15 / $0.47 ($0.016)Alibaba Qwen3.8 Flash.
qwen3.8-27b1M128,000yes$0.50 / $3.00 ($0.10)Alibaba Qwen3.8 27B.
qwen3.8-2.4t-a95b1M128,000no$2.00 / $6.00 ($0.25)Large Qwen3.8 MoE variant.
qwen3.7-max1M64,000no$2.50 / $7.50 ($0.50)Prior Qwen generation.
qwen3.7-plus1M64,000yes$1.20 / $4.80 ($0.24)Prior Qwen generation.
qwen3.7-flash1M64,000yes$0.20 / $0.80 ($0.04)Prior Qwen generation.
gpt-oss-120b131,07213,107no$0.178 / $0.68 ($0.089)OpenAI's open-weight gpt-oss-120b.
gemma-4-26b-a4b-it256,00025,600no$0.098 / $0.334 ($0.049)Google Gemma 4 26B A4B, instruction-tuned.

Fallback order when the default is unavailable: deepseek-v4-flash → deepseek-v4.1-flash → kimi-k2-thinking → glm-5.3 → qwen3.8-max.

No model is marked as a designated vision model (models.visionModel) — Hyper's own pages disagree with each other about which models support image input (see deepseek-v4-flash above), and the disagreement was left unresolved rather than guessed at.


Verification status​

Tier-2 onboarding normally requires a live capability sweep, gated by pnpm run verify:provider-onboarding. This entry was deliberately onboarded without a key, so that step has not run yet:

ProbeResult
RosterUnauthenticated GET /v1/models, HTTP 200, 2026-09-28 — 23 models, matches Hyper's own docs statement that this endpoint needs no auth ("Browse the catalog — no auth required").
Auth rejectionNot probed — would require a real or deliberately-invalid API key, i.e. a credential, which this onboarding pass never created.
Tool callingDocumented as an accepted parameter (tools, "Tool/function definitions") on the Chat Completions reference page; no worked example, no live call.
Structured outputNot documented anywhere in Hyper's API docs — response_format never appears.
Streaming + tools comboNot documented and not probed — toolsWithStreaming is false pending verification.
Live capability sweepNot run. evidence.liveMatrix is null.

Two documented inconsistencies were found and are flagged rather than silently resolved:

  • The 401 error body shown on Hyper's Authentication page (type: "invalid_request_error") disagrees with the error-type table on the Chat Completions page, which maps HTTP 401 to authentication_error. The catalog's errorRules entry matches on the message text ("invalid api key", case-insensitive) rather than on either type value, so it doesn't depend on resolving the disagreement.
  • Hyper's marketing models page (docs/models.html) lists "DeepSeek V4 Flash and GLM 5.1" as supporting attachments, but the live /v1/models roster reports deepseek-v4-flash as vision: false and has no glm-5.1 model at all. The catalog trusts the live roster's capabilities.vision field over the marketing copy.

Troubleshooting​

SymptomCauseFix
Invalid Charm Hyper API keyCHARM_HYPER_API_KEY unset, wrong, or missing the sk-hyper- prefixCheck the key in the Hyper Dashboard at https://hyper.charm.land
Model not foundThe roster changed since 2026-09-28Pick a current id from the unauthenticated GET /v1/models roster
Structured output silently unavailablestructuredOutput is false — Hyper's docs never mention response_formatUse generate() without schema, or verify support live before relying on it
Unsure if tool calls stream correctlytoolsWithStreaming is false — never documented or probedTest with stream: false first, or run the live matrix before depending on streamed tool calls

See also​