on main help sign in
chore: auto-update files
commitde04fc21cf1202bf4a26b5d6c80f58dd49835fd9 authorCharm <124303983+charmcli@users.noreply.github.com> dateWed 1 Apr 2026, 17:48 (7 months ago) parent206aecf
2 files changed+4−194
internal/agent/hyper/provider.json+1−1 schema.json+3−193
internal/agent/hyper/provider.json+1−1
@@ -1 +1 @@
1−{"name":"Charm Hyper","id":"hyper","api_endpoint":"https://hyper.charm.land/api/v1/fantasy","type":"hyper","default_large_model_id":"claude-opus-4-5","default_small_model_id":"claude-haiku-4-5","models":[{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","cost_per_1m_in":1,"cost_per_1m_out":5,"cost_per_1m_in_cached":1.25,"cost_per_1m_out_cached":0.1,"context_window":200000,"default_max_tokens":64000,"can_reason":true,"supports_attachments":true,"options":{}},{"id":"claude-opus-4-5","name":"Claude Opus 4.5","cost_per_1m_in":5,"cost_per_1m_out":25,"cost_per_1m_in_cached":6.25,"cost_per_1m_out_cached":0.5,"context_window":200000,"default_max_tokens":64000,"can_reason":true,"supports_attachments":true,"options":{}},{"id":"claude-opus-4-6","name":"Claude Opus 4.6","cost_per_1m_in":5,"cost_per_1m_out":25,"cost_per_1m_in_cached":6.25,"cost_per_1m_out_cached":0.5,"context_window":1000000,"default_max_tokens":126000,"can_reason":true,"reasoning_levels":["low","medium","high","max"],"default_reasoning_effort":"medium","supports_attachments":true,"options":{}},{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","cost_per_1m_in":3,"cost_per_1m_out":15,"cost_per_1m_in_cached":3.75,"cost_per_1m_out_cached":0.3,"context_window":200000,"default_max_tokens":64000,"can_reason":true,"supports_attachments":true,"options":{}},{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","cost_per_1m_in":3,"cost_per_1m_out":15,"cost_per_1m_in_cached":3.75,"cost_per_1m_out_cached":0.3,"context_window":1000000,"default_max_tokens":64000,"can_reason":true,"reasoning_levels":["low","medium","high","max"],"default_reasoning_effort":"medium","supports_attachments":true,"options":{}},{"id":"gemini-3-flash","name":"Gemini 3 Flash","cost_per_1m_in":0.5,"cost_per_1m_out":3,"cost_per_1m_in_cached":0.05,"cost_per_1m_out_cached":0,"context_window":1000000,"default_max_tokens":8000,"can_reason":true,"reasoning_levels":["low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":true,"options":{}},{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro","cost_per_1m_in":2,"cost_per_1m_out":12,"cost_per_1m_in_cached":0.2,"cost_per_1m_out_cached":0,"context_window":1000000,"default_max_tokens":8000,"can_reason":true,"reasoning_levels":["low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":true,"options":{}},{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro","cost_per_1m_in":2,"cost_per_1m_out":12,"cost_per_1m_in_cached":0.2,"cost_per_1m_out_cached":0,"context_window":1000000,"default_max_tokens":8000,"can_reason":true,"reasoning_levels":["low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":true,"options":{}},{"id":"glm-4.7","name":"GLM-4.7","cost_per_1m_in":0.6,"cost_per_1m_out":2.2,"cost_per_1m_in_cached":0,"cost_per_1m_out_cached":0,"context_window":200000,"default_max_tokens":8000,"can_reason":true,"reasoning_levels":["low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":false,"options":{}},{"id":"glm-4.7-flashx","name":"GLM-4.7 Flash","cost_per_1m_in":0.06,"cost_per_1m_out":0.4,"cost_per_1m_in_cached":0.01,"cost_per_1m_out_cached":0,"context_window":200000,"default_max_tokens":8000,"can_reason":true,"reasoning_levels":["low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":false,"options":{}},{"id":"glm-5","name":"GLM-5","cost_per_1m_in":1,"cost_per_1m_out":3.2,"cost_per_1m_in_cached":0.2,"cost_per_1m_out_cached":0,"context_window":202800,"default_max_tokens":8000,"can_reason":true,"reasoning_levels":["low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":false,"options":{}},{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","cost_per_1m_in":1.25,"cost_per_1m_out":10,"cost_per_1m_in_cached":0.125,"cost_per_1m_out_cached":0.125,"context_window":400000,"default_max_tokens":128000,"can_reason":true,"reasoning_levels":["minimal","low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":true,"options":{}},{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","cost_per_1m_in":1.25,"cost_per_1m_out":10,"cost_per_1m_in_cached":0.125,"cost_per_1m_out_cached":0.125,"context_window":400000,"default_max_tokens":128000,"can_reason":true,"reasoning_levels":["minimal","low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":true,"options":{}},{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","cost_per_1m_in":0.25,"cost_per_1m_out":2,"cost_per_1m_in_cached":0.025,"cost_per_1m_out_cached":0.025,"context_window":400000,"default_max_tokens":128000,"can_reason":true,"reasoning_levels":["low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":true,"options":{}},{"id":"gpt-5.2","name":"GPT-5.2","cost_per_1m_in":1.75,"cost_per_1m_out":14,"cost_per_1m_in_cached":0.175,"cost_per_1m_out_cached":0.175,"context_window":400000,"default_max_tokens":128000,"can_reason":true,"reasoning_levels":["minimal","low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":true,"options":{}},{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","cost_per_1m_in":1.75,"cost_per_1m_out":14,"cost_per_1m_in_cached":0.175,"cost_per_1m_out_cached":0.175,"context_window":400000,"default_max_tokens":128000,"can_reason":true,"reasoning_levels":["minimal","low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":true,"options":{}},{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","cost_per_1m_in":1.75,"cost_per_1m_out":14,"cost_per_1m_in_cached":0.175,"cost_per_1m_out_cached":0.175,"context_window":400000,"default_max_tokens":128000,"can_reason":true,"reasoning_levels":["minimal","low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":true,"options":{}},{"id":"gpt-5.4","name":"GPT-5.4","cost_per_1m_in":2.5,"cost_per_1m_out":15,"cost_per_1m_in_cached":0.25,"cost_per_1m_out_cached":0,"context_window":1050000,"default_max_tokens":128000,"can_reason":true,"reasoning_levels":["low","medium","high","xhigh"],"default_reasoning_effort":"medium","supports_attachments":true,"options":{}},{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","cost_per_1m_in":30,"cost_per_1m_out":180,"cost_per_1m_in_cached":0,"cost_per_1m_out_cached":0,"context_window":1050000,"default_max_tokens":128000,"can_reason":true,"reasoning_levels":["medium","high","xhigh"],"default_reasoning_effort":"medium","supports_attachments":true,"options":{}},{"id":"grok-4.20","name":"Grok 4.20","cost_per_1m_in":2,"cost_per_1m_out":6,"cost_per_1m_in_cached":0,"cost_per_1m_out_cached":0.2,"context_window":200000,"default_max_tokens":20000,"can_reason":true,"supports_attachments":true,"options":{}},{"id":"grok-code-fast-1","name":"Grok Code Fast","cost_per_1m_in":0.2,"cost_per_1m_out":1.5,"cost_per_1m_in_cached":0,"cost_per_1m_out_cached":0.02,"context_window":131072,"default_max_tokens":13107,"can_reason":true,"supports_attachments":false,"options":{}},{"id":"kimi-k2-0905","name":"Kimi K2","cost_per_1m_in":0.6,"cost_per_1m_out":2.5,"cost_per_1m_in_cached":0.15,"cost_per_1m_out_cached":0,"context_window":256000,"default_max_tokens":8000,"can_reason":false,"supports_attachments":false,"options":{}},{"id":"kimi-k2.5","name":"Kimi K2.5","cost_per_1m_in":0.6,"cost_per_1m_out":3,"cost_per_1m_in_cached":0.1,"cost_per_1m_out_cached":0,"context_window":262114,"default_max_tokens":8000,"can_reason":true,"reasoning_levels":["low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":true,"options":{}}]}
1+{"name":"Charm Hyper","id":"hyper","api_endpoint":"https://hyper.charm.land/api/v1/fantasy","type":"hyper","default_large_model_id":"kimi-k2.5","default_small_model_id":"gpt-oss-120b","models":[{"id":"kimi-k2.5","name":"Kimi-K2.5","cost_per_1m_in":0.55,"cost_per_1m_out":3,"cost_per_1m_in_cached":0.275,"cost_per_1m_out_cached":1.1,"context_window":262144,"default_max_tokens":26214,"can_reason":true,"reasoning_levels":["low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":false,"options":{}},{"id":"glm-5","name":"GLM-5","cost_per_1m_in":1,"cost_per_1m_out":3,"cost_per_1m_in_cached":0.5,"cost_per_1m_out_cached":0,"context_window":202752,"default_max_tokens":20275,"can_reason":true,"reasoning_levels":["low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":false,"options":{}},{"id":"gpt-oss-120b","name":"gpt-oss-120b","cost_per_1m_in":0.02,"cost_per_1m_out":0.1,"cost_per_1m_in_cached":0.01,"cost_per_1m_out_cached":0.04,"context_window":131072,"default_max_tokens":13107,"can_reason":true,"reasoning_levels":["low","medium","high"],"default_reasoning_effort":"medium","supports_attachments":false,"options":{}}]}
schema.json+3−193
@@ -64,10 +64,7 @@
6464 "description": "Model configurations for different model types"
6565 },
6666 "providers": {
67− "additionalProperties": {
68− "$ref": "#/$defs/ProviderConfig"
69− },
70− "type": "object",
67+ "$ref": "#/$defs/Map[string,github.com/charmbracelet/crush/internal/config.ProviderConfig]",
7168 "description": "AI provider configurations"
7269 },
7370 "mcp": {
@@ -265,88 +262,8 @@
265262 },
266263 "type": "object"
267264 },
268− "Model": {
269− "properties": {
270− "id": {
271− "type": "string"
272− },
273− "name": {
274− "type": "string"
275− },
276− "cost_per_1m_in": {
277− "type": "number"
278− },
279− "cost_per_1m_out": {
280− "type": "number"
281− },
282− "cost_per_1m_in_cached": {
283− "type": "number"
284− },
285− "cost_per_1m_out_cached": {
286− "type": "number"
287− },
288− "context_window": {
289− "type": "integer"
290− },
291− "default_max_tokens": {
292− "type": "integer"
293− },
294− "can_reason": {
295− "type": "boolean"
296− },
297− "reasoning_levels": {
298− "items": {
299− "type": "string"
300− },
301− "type": "array"
302− },
303− "default_reasoning_effort": {
304− "type": "string"
305− },
306− "supports_attachments": {
307− "type": "boolean"
308− },
309− "options": {
310− "$ref": "#/$defs/ModelOptions"
311− }
312− },
313− "additionalProperties": false,
314− "type": "object",
315− "required": [
316− "id",
317− "name",
318− "cost_per_1m_in",
319− "cost_per_1m_out",
320− "cost_per_1m_in_cached",
321− "cost_per_1m_out_cached",
322− "context_window",
323− "default_max_tokens",
324− "can_reason",
325− "supports_attachments",
326− "options"
327− ]
328− },
329− "ModelOptions": {
330− "properties": {
331− "temperature": {
332− "type": "number"
333− },
334− "top_p": {
335− "type": "number"
336− },
337− "top_k": {
338− "type": "integer"
339− },
340− "frequency_penalty": {
341− "type": "number"
342− },
343− "presence_penalty": {
344− "type": "number"
345− },
346− "provider_options": {
347− "type": "object"
348− }
349− },
265+ "Map[string,github.com/charmbracelet/crush/internal/config.ProviderConfig]": {
266+ "properties": {},
350267 "additionalProperties": false,
351268 "type": "object"
352269 },
@@ -478,89 +395,6 @@
478395 "additionalProperties": false,
479396 "type": "object"
480397 },
481− "ProviderConfig": {
482− "properties": {
483− "id": {
484− "type": "string",
485− "description": "Unique identifier for the provider",
486− "examples": [
487− "openai"
488− ]
489− },
490− "name": {
491− "type": "string",
492− "description": "Human-readable name for the provider",
493− "examples": [
494− "OpenAI"
495− ]
496− },
497− "base_url": {
498− "type": "string",
499− "format": "uri",
500− "description": "Base URL for the provider's API",
501− "examples": [
502− "https://api.openai.com/v1"
503− ]
504− },
505− "type": {
506− "type": "string",
507− "enum": [
508− "openai",
509− "openai-compat",
510− "anthropic",
511− "gemini",
512− "azure",
513− "vertexai"
514− ],
515− "description": "Provider type that determines the API format",
516− "default": "openai"
517− },
518− "api_key": {
519− "type": "string",
520− "description": "API key for authentication with the provider",
521− "examples": [
522− "$OPENAI_API_KEY"
523− ]
524− },
525− "oauth": {
526− "$ref": "#/$defs/Token",
527− "description": "OAuth2 token for authentication with the provider"
528− },
529− "disable": {
530− "type": "boolean",
531− "description": "Whether this provider is disabled",
532− "default": false
533− },
534− "system_prompt_prefix": {
535− "type": "string",
536− "description": "Custom prefix to add to system prompts for this provider"
537− },
538− "extra_headers": {
539− "additionalProperties": {
540− "type": "string"
541− },
542− "type": "object",
543− "description": "Additional HTTP headers to send with requests"
544− },
545− "extra_body": {
546− "type": "object",
547− "description": "Additional fields to include in request bodies"
548− },
549− "provider_options": {
550− "type": "object",
551− "description": "Additional provider-specific options for this provider"
552− },
553− "models": {
554− "items": {
555− "$ref": "#/$defs/Model"
556− },
557− "type": "array",
558− "description": "List of models available from this provider"
559− }
560− },
561− "additionalProperties": false,
562− "type": "object"
563− },
564398 "SelectedModel": {
565399 "properties": {
566400 "model": {
@@ -671,30 +505,6 @@
671505 "completions"
672506 ]
673507 },
674− "Token": {
675− "properties": {
676− "access_token": {
677− "type": "string"
678− },
679− "refresh_token": {
680− "type": "string"
681− },
682− "expires_in": {
683− "type": "integer"
684− },
685− "expires_at": {
686− "type": "integer"
687− }
688− },
689− "additionalProperties": false,
690− "type": "object",
691− "required": [
692− "access_token",
693− "refresh_token",
694− "expires_in",
695− "expires_at"
696− ]
697− },
698508 "ToolGrep": {
699509 "properties": {
700510 "timeout": {