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": "openai-compat",
66 "api_key": "$SYNTHETIC_API_KEY",
67 "base_url": "https://api.synthetic.new/openai/v1",
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": true,
80 "reasoning_levels": ["low", "medium", "high"],
81 "default_reasoning_effort": "high",
82 "supports_attachments": false
83 },
84 {
85 "id": "hf:MiniMaxAI/MiniMax-M2",
86 "name": "MiniMax M2",
87 "cost_per_1m_in": 0.55,
88 "cost_per_1m_out": 2.19,
89 "cost_per_1m_in_cached": 0.55,
90 "cost_per_1m_out_cached": 2.19,
91 "context_window": 196608,
92 "default_max_tokens": 65536,
93 "can_reason": true,
94 "has_reasoning_efforts": true,
95 "reasoning_levels": ["low", "medium", "high"],
96 "default_reasoning_effort": "high",
97 "supports_attachments": false
98 },
99 {
100 "id": "hf:openai/gpt-oss-120b",
101 "name": "GPT-OSS 120B",
102 "cost_per_1m_in": 0.1,
103 "cost_per_1m_out": 0.1,
104 "cost_per_1m_in_cached": 0.1,
105 "cost_per_1m_out_cached": 0.1,
106 "context_window": 131072,
107 "default_max_tokens": 65536,
108 "can_reason": true,
109 "has_reasoning_efforts": true,
110 "reasoning_levels": ["low", "medium", "high"],
111 "default_reasoning_effort": "high",
112 "supports_attachments": false
113 },
114 {
115 "id": "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct",
116 "name": "Qwen3 Coder 480B A35B Instruct",
117 "cost_per_1m_in": 0.45,
118 "cost_per_1m_out": 1.8,
119 "cost_per_1m_in_cached": 0.45,
120 "cost_per_1m_out_cached": 1.8,
121 "context_window": 262144,
122 "default_max_tokens": 262144,
123 "can_reason": false,
124 "supports_attachments": false
125 },
126 {
127 "id": "hf:zai-org/GLM-4.6",
128 "name": "GLM-4.6",
129 "cost_per_1m_in": 0.55,
130 "cost_per_1m_out": 2.19,
131 "cost_per_1m_in_cached": 0.55,
132 "cost_per_1m_out_cached": 2.19,
133 "context_window": 204800,
134 "default_max_tokens": 65536,
135 "can_reason": true,
136 "has_reasoning_efforts": true,
137 "reasoning_levels": ["low", "medium", "high"],
138 "default_reasoning_effort": "high",
139 "supports_attachments": false
140 },
141 {
142 "id": "hf:moonshotai/Kimi-K2-Thinking",
143 "name": "Kimi K2 THinking",
144 "cost_per_1m_in": 0.55,
145 "cost_per_1m_out": 2.19,
146 "cost_per_1m_in_cached": 0.55,
147 "cost_per_1m_out_cached": 2.19,
148 "context_window": 204800,
149 "default_max_tokens": 65536,
150 "can_reason": true,
151 "has_reasoning_efforts": true,
152 "reasoning_levels": ["low", "medium", "high"],
153 "default_reasoning_effort": "high",
154 "supports_attachments": false
155 }
156 ]
157 },
158 "minimax": {
159 "name": "MiniMax",
160 "type": "anthropic",
161 "base_url": "https://api.minimax.io/anthropic",
162 "api_key": "$MINIMAX_API_KEY",
163 "extra_headers": {
164 "User-Agent": "claude-cli/2.0.31 (external, cli)",
165 "x-app": "cli",
166 "anthropic-version": "2023-06-01",
167 "anthropic-beta": "oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14"
168 },
169 "models": [
170 {
171 "id": "MiniMax-M2",
172 "name": "MiniMax M2",
173 "cost_per_1m_in": 0,
174 "cost_per_1m_out": 0,
175 "cost_per_1m_in_cached": 0,
176 "cost_per_1m_out_cached": 0,
177 "context_window": 200000,
178 "default_max_tokens": 16384,
179 "can_reason": true,
180 "has_reasoning_efforts": false,
181 "supports_attachments": true
182 }
183 ]
184 }
185 }
186}