crush.json

  1{
  2	"$schema": "https://charm.land/crush.json",
  3	"options": {
  4		"disable_provider_auto_update": true,
  5		"attribution": {
  6			"trailer_style": "assisted-by",
  7			"generated_with": false
  8		},
  9		"memory_paths": ["~/.config/crush/rules", "~/.config/AGENTS.md"]
 10	},
 11	"providers": {
 12		"anthropic": {
 13			"api_key": "Bearer $(bash ~/.config/crush/anthropic.sh)",
 14			"extra_headers": {
 15				"User-Agent": "claude-cli/2.0.31 (external, cli)",
 16				"x-app": "cli",
 17				"anthropic-version": "2023-06-01",
 18				"anthropic-beta": "oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14"
 19			},
 20			"system_prompt_prefix": "You are Claude Code, Anthropic's official CLI for Claude.",
 21			"models": [
 22				{
 23					"id": "claude-sonnet-4-5-20250929",
 24					"name": "Claude Sonnet 4.5",
 25					"cost_per_1m_in": 3,
 26					"cost_per_1m_out": 15,
 27					"cost_per_1m_in_cached": 3.75,
 28					"cost_per_1m_out_cached": 0.3,
 29					"context_window": 200000,
 30					"default_max_tokens": 50000,
 31					"can_reason": true,
 32					"has_reasoning_efforts": false,
 33					"supports_attachments": true
 34				},
 35				{
 36					"id": "claude-haiku-4-5-20251001",
 37					"name": "Claude 4.5 Haiku",
 38					"cost_per_1m_in": 1,
 39					"cost_per_1m_out": 5,
 40					"cost_per_1m_in_cached": 1.25,
 41					"cost_per_1m_out_cached": 0.09999999999999999,
 42					"context_window": 200000,
 43					"default_max_tokens": 32000,
 44					"can_reason": true,
 45					"has_reasoning_efforts": false,
 46					"supports_attachments": true
 47				},
 48				{
 49					"id": "claude-opus-4-1-20250805",
 50					"name": "Claude Opus 4.1",
 51					"cost_per_1m_in": 15,
 52					"cost_per_1m_out": 75,
 53					"cost_per_1m_in_cached": 18.75,
 54					"cost_per_1m_out_cached": 1.5,
 55					"context_window": 200000,
 56					"default_max_tokens": 32000,
 57					"can_reason": true,
 58					"has_reasoning_efforts": false,
 59					"supports_attachments": true
 60				}
 61			]
 62		},
 63		"synthetic": {
 64			"name": "Synthetic",
 65			"type": "anthropic",
 66			"api_key": "$SYNTHETIC_API_KEY",
 67			"base_url": "https://api.synthetic.new/anthropic",
 68			"models": [
 69				{
 70					"id": "hf:deepseek-ai/DeepSeek-V3.1-Terminus",
 71					"name": "DeepSeek V3.1 Terminus",
 72					"cost_per_1m_in": 1.2,
 73					"cost_per_1m_out": 1.2,
 74					"cost_per_1m_in_cached": 1.2,
 75					"cost_per_1m_out_cached": 1.2,
 76					"context_window": 131072,
 77					"default_max_tokens": 8192,
 78					"can_reason": true,
 79					"has_reasoning_efforts": false,
 80					"supports_attachments": false
 81				},
 82				{
 83					"id": "hf:MiniMaxAI/MiniMax-M2",
 84					"name": "MiniMax M2",
 85					"cost_per_1m_in": 0.55,
 86					"cost_per_1m_out": 2.19,
 87					"cost_per_1m_in_cached": 0.55,
 88					"cost_per_1m_out_cached": 2.19,
 89					"context_window": 196608,
 90					"default_max_tokens": 65536,
 91					"can_reason": true,
 92					"has_reasoning_efforts": false,
 93					"supports_attachments": false
 94				},
 95				{
 96					"id": "hf:openai/gpt-oss-120b",
 97					"name": "GPT-OSS 120B",
 98					"cost_per_1m_in": 0.1,
 99					"cost_per_1m_out": 0.1,
100					"cost_per_1m_in_cached": 0.1,
101					"cost_per_1m_out_cached": 0.1,
102					"context_window": 131072,
103					"default_max_tokens": 65536,
104					"can_reason": true,
105					"has_reasoning_efforts": false,
106					"supports_attachments": false
107				},
108				{
109					"id": "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct",
110					"name": "Qwen3 Coder 480B A35B Instruct",
111					"cost_per_1m_in": 0.45,
112					"cost_per_1m_out": 1.8,
113					"cost_per_1m_in_cached": 0.45,
114					"cost_per_1m_out_cached": 1.8,
115					"context_window": 262144,
116					"default_max_tokens": 262144,
117					"can_reason": false,
118					"supports_attachments": false
119				},
120				{
121					"id": "hf:zai-org/GLM-4.6",
122					"name": "GLM-4.6",
123					"cost_per_1m_in": 0.55,
124					"cost_per_1m_out": 2.19,
125					"cost_per_1m_in_cached": 0.55,
126					"cost_per_1m_out_cached": 2.19,
127					"context_window": 204800,
128					"default_max_tokens": 65536,
129					"can_reason": true,
130					"has_reasoning_efforts": false,
131					"supports_attachments": false
132				},
133				{
134					"id": "hf:moonshotai/Kimi-K2-Thinking",
135					"name": "Kimi K2 Thinking",
136					"cost_per_1m_in": 0.55,
137					"cost_per_1m_out": 2.19,
138					"cost_per_1m_in_cached": 0.55,
139					"cost_per_1m_out_cached": 2.19,
140					"context_window": 204800,
141					"default_max_tokens": 65536,
142					"can_reason": true,
143					"has_reasoning_efforts": false,
144					"supports_attachments": false
145				}
146			]
147		},
148		"minimax": {
149			"name": "MiniMax",
150			"type": "anthropic",
151			"base_url": "https://api.minimax.io/anthropic",
152			"api_key": "$MINIMAX_API_KEY",
153			"extra_headers": {
154				"User-Agent": "claude-cli/2.0.31 (external, cli)",
155				"x-app": "cli",
156				"anthropic-version": "2023-06-01",
157				"anthropic-beta": "oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14"
158			},
159			"models": [
160				{
161					"id": "MiniMax-M2",
162					"name": "MiniMax M2",
163					"cost_per_1m_in": 0,
164					"cost_per_1m_out": 0,
165					"cost_per_1m_in_cached": 0,
166					"cost_per_1m_out_cached": 0,
167					"context_window": 200000,
168					"default_max_tokens": 16384,
169					"can_reason": true,
170					"has_reasoning_efforts": false,
171					"supports_attachments": true
172				}
173			]
174		}
175	}
176}