@@ -1,492 +1,47 @@
2− "$schema": "http://json-schema.org/draft-07/schema#",
2+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3− "title": "Crush Configuration",
3+ "$defs": {
4− "description": "Configuration schema for the Crush application",
4+ "Agent": {
8− "description": "Agent configurations for different tasks",
10− "additionalProperties": {
14− "description": "List of LSP servers this agent can use (if nil, all LSPs are allowed)",
21− "description": "Map of MCP servers this agent can use and their allowed tools",
23− "additionalProperties": {
31− "description": "List of tools this agent is allowed to use (if nil, all tools are allowed)",
50− "description": "Custom context paths for this agent (additive to global context paths)",
57− "description": "Description",
61− "description": "Disabled",
66− "description": "I D",
74− "description": "Model",
82− "description": "Name",
99− "description": "Language Server Protocol configurations",
101− "additionalProperties": {
105− "description": "Args",
112− "description": "Command",
116− "description": "Disabled",
121− "description": "Options"
133− "description": "Model Control Protocol server configurations",
135− "additionalProperties": {
139− "description": "Args",
146− "description": "Command to execute for stdio MCP servers",
150− "description": "Env list",
157− "description": "HTTP headers for SSE MCP servers",
159− "additionalProperties": {
164− "description": "Type",
173− "description": "URL for SSE MCP servers",
188− "description": "Preferred model configurations for large and small model types",
192− "description": "Large",
196− "description": "Max Tokens",
200− "description": "Model I D",
205− "claude-3-5-sonnet-20241022",
206− "claude-3-5-haiku-20241022",
217− "anthropic/claude-3.5-sonnet",
218− "anthropic/claude-3.5-haiku"
222− "description": "Provider",
232− "reasoning_effort": {
233− "description": "Reasoning Effort",
237− "description": "Enable think",
247− "description": "Small",
248− "$ref": "#/definitions/PreferredModel"
257− "description": "General application options and settings",
259 "properties": {
5 "properties": {
260− "context_paths": {
6+ "id": {
261− "description": "Context Paths",
267− ".github/copilot-instructions.md",
283− "description": "Data Directory",
284 "type": "string",
7 "type": "string",
285− "default": ".crush"
8+ "enum": [
15+ "description": "Unique identifier for the agent"
287− "debug": {
17+ "name": {
288− "description": "Enable debug",
18+ "type": "string",
289− "type": "boolean",
19+ "title": "Name",
290− "default": false
20+ "description": "Display name of the agent"
292− "debug_lsp": {
22+ "description": {
293− "description": "Enable debug l s p",
23+ "type": "string",
294− "type": "boolean",
24+ "title": "Description",
295− "default": false
25+ "description": "Description of what the agent does"
297− "disable_auto_summarize": {
27+ "disabled": {
298− "description": "Disable Auto Summarize",
299 "type": "boolean",
28 "type": "boolean",
30+ "description": "Whether this agent is disabled",
300 "default": false
31 "default": false
302− "tui": {
33+ "model": {
303− "description": "T U I",
304− "type": "object",
34+ "type": "string",
305− "properties": {
35+ "enum": [
306− "compact_mode": {
36+ "large",
307− "description": "Enable compact mode",
37+ "small",
308− "type": "boolean",
38+ "large",
309− "default": false
39+ "small"
322− "disable_auto_summarize",
327− "description": "LLM provider configurations",
329− "additionalProperties": {
333− "description": "API key for authenticating with the provider",
337− "description": "Base URL for the provider API (required for custom providers)",
340− "default_large_model": {
341− "description": "Default Large Model",
344− "default_small_model": {
41+ "title": "Model Type",
345− "description": "Default Small Model",
42+ "description": "Type of model to use (large or small)"
349− "description": "Disabled",
354− "description": "Additional HTTP headers to send with requests",
356− "additionalProperties": {
361− "description": "Additional provider-specific parameters",
363− "additionalProperties": {
368− "description": "I D",
379− "description": "Models",
385− "description": "Enable can reason",
389− "description": "Context Window",
393− "description": "Cost Per1 M In",
396− "cost_per_1m_in_cached": {
397− "description": "Cost Per1 M In Cached",
400− "cost_per_1m_out": {
401− "description": "Cost Per1 M Out",
404− "cost_per_1m_out_cached": {
405− "description": "Cost Per1 M Out Cached",
408− "default_max_tokens": {
409− "description": "Default Max Tokens",
412− "has_reasoning_effort": {
413− "description": "Enable has reasoning effort",
417− "description": "I D",
421− "description": "Name",
424− "reasoning_effort": {
425− "description": "Reasoning Effort",
428− "supports_attachments": {
429− "description": "Enable supports images",
438− "cost_per_1m_in_cached",
439− "cost_per_1m_out_cached",
441− "default_max_tokens",
444− "has_reasoning_effort",
445− "supports_attachments"
450− "description": "Provider Type",
471− "description": "List of LSP servers this agent can use (if nil, all LSPs are allowed)",
478− "description": "Map of MCP servers this agent can use and their allowed tools",
480− "additionalProperties": {
487 "allowed_tools": {
44 "allowed_tools": {
488− "description": "List of tools this agent is allowed to use (if nil, all tools are allowed)",
490 "items": {
45 "items": {
491 "type": "string",
46 "type": "string",
492 "enum": [
47 "enum": [
@@ -501,652 +56,200 @@
507− "description": "Custom context paths for this agent (additive to global context paths)",
508 "type": "array",
60 "type": "array",
509− "items": {
61+ "title": "Allowed Tools",
510− "type": "string"
62+ "description": "List of tools this agent is allowed to use (if nil all tools are allowed)"
514− "description": "Description",
518− "description": "Disabled",
523− "description": "I D",
531− "description": "Model",
539− "description": "Name",
549− "allowed_mcp",
64+ "allowed_mcp": {
558− "description": "Agent configurations for different tasks",
560 "additionalProperties": {
65 "additionalProperties": {
564− "description": "List of LSP servers this agent can use (if nil, all LSPs are allowed)",
566− "items": {
66+ "items": {
571− "description": "Map of MCP servers this agent can use and their allowed tools",
573− "additionalProperties": {
576− "type": "string"
67+ "type": "string"
581− "description": "List of tools this agent is allowed to use (if nil, all tools are allowed)",
600− "description": "Custom context paths for this agent (additive to global context paths)",
607− "description": "Description",
611− "description": "Disabled",
616− "description": "I D",
624− "description": "Model",
632− "description": "Name",
636− "required": [
69+ "type": "array"
649− "description": "Language Server Protocol configurations",
650 "type": "object",
71 "type": "object",
651− "additionalProperties": {
72+ "title": "Allowed MCP",
652− "type": "object",
73+ "description": "Map of MCP servers this agent can use and their allowed tools"
655− "description": "Args",
662− "description": "Command",
666− "description": "Disabled",
671− "description": "Options"
682− "mcp": {
75+ "allowed_lsp": {
683− "description": "Model Control Protocol server configurations",
685− "additionalProperties": {
689− "description": "Args",
691− "items": {
76+ "items": {
696− "description": "Command to execute for stdio MCP servers",
700− "description": "Env list",
707− "description": "HTTP headers for SSE MCP servers",
709− "additionalProperties": {
714− "description": "Type",
723− "description": "URL for SSE MCP servers",
738− "description": "Preferred model configurations for large and small model types",
742− "description": "Large",
746− "description": "Max Tokens",
750− "description": "Model I D",
751− "type": "string",
77+ "type": "string"
755− "claude-3-5-sonnet-20241022",
756− "claude-3-5-haiku-20241022",
767− "anthropic/claude-3.5-sonnet",
768− "anthropic/claude-3.5-haiku"
772− "description": "Provider",
782− "reasoning_effort": {
783− "description": "Reasoning Effort",
787− "description": "Enable think",
797− "description": "Small",
798− "$ref": "#/definitions/PreferredModel"
801− "required": [
79+ "type": "array",
802− "large",
80+ "title": "Allowed LSP",
803− "small"
81+ "description": "List of LSP servers this agent can use (if nil all LSPs are allowed)"
807− "description": "General application options and settings",
810− "context_paths": {
83+ "context_paths": {
811− "description": "Context Paths",
813− "items": {
84+ "items": {
817− ".github/copilot-instructions.md",
833− "description": "Data Directory",
834− "type": "string",
85+ "type": "string"
838− "description": "Enable debug",
843− "description": "Enable debug l s p",
847− "disable_auto_summarize": {
848− "description": "Disable Auto Summarize",
853− "description": "T U I",
857− "description": "Enable compact mode",
872− "disable_auto_summarize",
877− "description": "LLM provider configurations",
879− "additionalProperties": {
883− "description": "API key for authenticating with the provider",
887− "description": "Base URL for the provider API (required for custom providers)",
890− "default_large_model": {
891− "description": "Default Large Model",
894− "default_small_model": {
895− "description": "Default Small Model",
899− "description": "Disabled",
904− "description": "Additional HTTP headers to send with requests",
906− "additionalProperties": {
911− "description": "Additional provider-specific parameters",
913− "additionalProperties": {
918− "description": "I D",
929− "description": "Models",
930− "type": "array",
87+ "type": "array",
931− "items": {
88+ "title": "Context Paths",
932− "type": "object",
89+ "description": "Custom context paths for this agent (additive to global context paths)"
935− "description": "Enable can reason",
939− "description": "Context Window",
943− "description": "Cost Per1 M In",
946− "cost_per_1m_in_cached": {
947− "description": "Cost Per1 M In Cached",
950− "cost_per_1m_out": {
951− "description": "Cost Per1 M Out",
954− "cost_per_1m_out_cached": {
955− "description": "Cost Per1 M Out Cached",
958− "default_max_tokens": {
959− "description": "Default Max Tokens",
962− "has_reasoning_effort": {
963− "description": "Enable has reasoning effort",
967− "description": "I D",
971− "description": "Name",
974− "reasoning_effort": {
975− "description": "Reasoning Effort",
978− "supports_attachments": {
979− "description": "Enable supports images",
988− "cost_per_1m_in_cached",
989− "cost_per_1m_out_cached",
991− "default_max_tokens",
994− "has_reasoning_effort",
995− "supports_attachments"
1000− "description": "Provider Type",
1012 "required": [
93 "required": [
1013− "models",
94+ "model"
1017 "LSPConfig": {
97 "LSPConfig": {
1019 "properties": {
98 "properties": {
1021− "description": "Args",
1028− "description": "Command",
1031 "enabled": {
99 "enabled": {
1032− "description": "Disabled",
1033 "type": "boolean",
100 "type": "boolean",
102+ "description": "Whether this LSP server is enabled",
1034 "default": true
103 "default": true
108+ "description": "Command to execute for the LSP server"
115+ "title": "Arguments",
116+ "description": "Command line arguments for the LSP server"
1036 "options": {
118 "options": {
1037− "description": "Options"
120+ "description": "LSP server specific options"
1040 "required": [
124 "required": [
1042− "command",
125+ "command"
1047 "MCP": {
128 "MCP": {
1049 "properties": {
129 "properties": {
1051− "description": "Args",
1057 "command": {
130 "command": {
1058− "description": "Command to execute for stdio MCP servers",
133+ "description": "Command to execute for stdio MCP servers"
1061 "env": {
135 "env": {
1062− "description": "Env list",
1064 "items": {
136 "items": {
1065 "type": "string"
137 "type": "string"
140+ "title": "Environment",
141+ "description": "Environment variables for the MCP server"
1068− "headers": {
143+ "args": {
1069− "description": "HTTP headers for SSE MCP servers",
144+ "items": {
1071− "additionalProperties": {
1072 "type": "string"
145 "type": "string"
148+ "title": "Arguments",
149+ "description": "Command line arguments for the MCP server"
1075 "type": {
151 "type": {
1076− "description": "Type",
1077 "type": "string",
152 "type": "string",
1078 "enum": [
153 "enum": [
1079 "stdio",
156 "stdio",
160+ "description": "Type of MCP connection",
1082 "default": "stdio"
161 "default": "stdio"
1084 "url": {
163 "url": {
1085− "description": "URL for SSE MCP servers",
166+ "description": "URL for SSE MCP servers"
169+ "additionalProperties": {
1086− "type": "string"
170+ "type": "string"
174+ "description": "HTTP headers for SSE MCP servers"
1089 "required": [
178 "required": [
1090 "command",
179 "command",
1098 "Model": {
183 "Model": {
1100 "properties": {
184 "properties": {
1101− "can_reason": {
185+ "id": {
1102− "description": "Enable can reason",
186+ "type": "string",
1103− "type": "boolean"
187+ "title": "Model ID",
188+ "description": "Unique identifier for the model"
1105− "context_window": {
190+ "model": {
1106− "description": "Context Window",
191+ "type": "string",
1107− "type": "integer"
192+ "title": "Model Name",
193+ "description": "Display name of the model"
1109 "cost_per_1m_in": {
195 "cost_per_1m_in": {
1110− "description": "Cost Per1 M In",
196+ "type": "number",
1111− "type": "number"
197+ "minimum": 0,
1112− },
198+ "title": "Input Cost",
1113− "cost_per_1m_in_cached": {
1114− "description": "Cost Per1 M In Cached",
199+ "description": "Cost per 1 million input tokens"
1117 "cost_per_1m_out": {
201 "cost_per_1m_out": {
1118− "description": "Cost Per1 M Out",
1119− "type": "number"
202+ "type": "number",
204+ "title": "Output Cost",
205+ "description": "Cost per 1 million output tokens"
1121− "cost_per_1m_out_cached": {
207+ "cost_per_1m_in_cached": {
1122− "description": "Cost Per1 M Out Cached",
1123− "type": "number"
208+ "type": "number",
210+ "title": "Cached Input Cost",
211+ "description": "Cost per 1 million cached input tokens"
1125− "default_max_tokens": {
213+ "cost_per_1m_out_cached": {
1126− "description": "Default Max Tokens",
214+ "type": "number",
1127− "type": "integer"
215+ "minimum": 0,
216+ "title": "Cached Output Cost",
217+ "description": "Cost per 1 million cached output tokens"
1129− "has_reasoning_effort": {
219+ "context_window": {
1130− "description": "Enable has reasoning effort",
220+ "type": "integer",
1131− "type": "boolean"
221+ "minimum": 1,
222+ "title": "Context Window",
223+ "description": "Maximum context window size in tokens"
1133− "id": {
225+ "default_max_tokens": {
1134− "description": "I D",
226+ "type": "integer",
1135− "type": "string"
227+ "minimum": 1,
228+ "title": "Default Max Tokens",
229+ "description": "Default maximum tokens for responses"
1137− "model": {
231+ "can_reason": {
1138− "description": "Name",
232+ "type": "boolean",
1139− "type": "string"
233+ "title": "Can Reason",
234+ "description": "Whether the model supports reasoning capabilities"
1141 "reasoning_effort": {
236 "reasoning_effort": {
1142− "description": "Reasoning Effort",
1143− "type": "string"
237+ "type": "string",
238+ "title": "Reasoning Effort",
239+ "description": "Default reasoning effort level for reasoning models"
241+ "has_reasoning_effort": {
243+ "title": "Has Reasoning Effort",
244+ "description": "Whether the model supports reasoning effort configuration"
1145 "supports_attachments": {
246 "supports_attachments": {
248+ "title": "Supports Images",
1146− "description": "Enable supports images",
249+ "description": "Whether the model supports image attachments"
1150 "required": [
253 "required": [
1152 "model",
255 "model",
@@ -1163,15 +266,14 @@
1165 "Options": {
268 "Options": {
1166− "description": "General application options and settings",
1168 "properties": {
269 "properties": {
1169 "context_paths": {
270 "context_paths": {
1170− "description": "Context Paths",
1172 "items": {
271 "items": {
1173 "type": "string"
272 "type": "string"
275+ "title": "Context Paths",
276+ "description": "List of paths to search for context files",
1175 "default": [
277 "default": [
1176 ".github/copilot-instructions.md",
278 ".github/copilot-instructions.md",
1177 ".cursorrules",
279 ".cursorrules",
@@ -1188,318 +290,419 @@
1188 "CRUSH.local.md"
290 "CRUSH.local.md"
1191− "data_directory": {
293+ "tui": {
1192− "description": "Data Directory",
294+ "$ref": "#/$defs/TUIOptions",
1193− "type": "string",
295+ "title": "TUI Options",
1194− "default": ".crush"
296+ "description": "Terminal UI configuration options"
1196 "debug": {
298 "debug": {
1197− "description": "Enable debug",
1198 "type": "boolean",
299 "type": "boolean",
301+ "description": "Enable debug logging",
1199 "default": false
302 "default": false
1201 "debug_lsp": {
304 "debug_lsp": {
1202− "description": "Enable debug l s p",
1203 "type": "boolean",
305 "type": "boolean",
306+ "title": "Debug LSP",
307+ "description": "Enable LSP debug logging",
1204 "default": false
308 "default": false
1206 "disable_auto_summarize": {
310 "disable_auto_summarize": {
1207− "description": "Disable Auto Summarize",
1208 "type": "boolean",
311 "type": "boolean",
312+ "title": "Disable Auto Summarize",
313+ "description": "Disable automatic conversation summarization",
1209 "default": false
314 "default": false
1211− "tui": {
316+ "data_directory": {
1212− "description": "T U I",
317+ "type": "string",
1213− "type": "object",
318+ "title": "Data Directory",
1214− "properties": {
319+ "description": "Directory for storing application data",
1216− "description": "Enable compact mode",
1218− "default": false
320+ "default": ".crush"
1226− "required": [
323+ "type": "object"
1231− "disable_auto_summarize",
1235 "PreferredModel": {
325 "PreferredModel": {
1236− "description": "Large",
1238 "properties": {
326 "properties": {
1240− "description": "Max Tokens",
1243 "model_id": {
327 "model_id": {
1244− "description": "Model I D",
1245 "type": "string",
328 "type": "string",
1246 "enum": [
329 "enum": [
1247− "claude-3-opus",
330+ "claude-opus-4-20250514",
1248− "claude-3-haiku",
331+ "claude-sonnet-4-20250514",
1249− "claude-3-5-sonnet-20241022",
332+ "claude-3-7-sonnet-20250219",
1250 "claude-3-5-haiku-20241022",
333 "claude-3-5-haiku-20241022",
334+ "claude-3-5-sonnet-20240620",
335+ "claude-3-5-sonnet-20241022",
336+ "codex-mini-latest",
1251− "gpt-4",
342+ "gpt-4.1-nano",
1252− "gpt-3.5-turbo",
343+ "gpt-4.5-preview",
349+ "codex-mini-latest",
1253− "gpt-4-turbo",
355+ "gpt-4.1-nano",
1254 "gpt-4o",
358 "gpt-4o",
1255 "gpt-4o-mini",
359 "gpt-4o-mini",
1256− "o1-preview",
360+ "anthropic.claude-opus-4-20250514-v1:0",
1257− "o1-mini",
361+ "anthropic.claude-sonnet-4-20250514-v1:0",
362+ "anthropic.claude-3-7-sonnet-20250219-v1:0",
363+ "anthropic.claude-3-5-haiku-20241022-v1:0",
1258 "gemini-2.5-pro",
364 "gemini-2.5-pro",
1259 "gemini-2.5-flash",
365 "gemini-2.5-flash",
1260− "grok-beta",
366+ "grok-3-mini",
368+ "mistralai/mistral-small-3.2-24b-instruct:free",
369+ "mistralai/mistral-small-3.2-24b-instruct",
370+ "minimax/minimax-m1:extended",
371+ "minimax/minimax-m1",
372+ "google/gemini-2.5-flash-lite-preview-06-17",
373+ "google/gemini-2.5-flash",
374+ "google/gemini-2.5-pro",
378+ "mistralai/magistral-small-2506",
379+ "mistralai/magistral-medium-2506",
380+ "mistralai/magistral-medium-2506:thinking",
381+ "google/gemini-2.5-pro-preview",
382+ "deepseek/deepseek-r1-0528",
383+ "anthropic/claude-opus-4",
384+ "anthropic/claude-sonnet-4",
385+ "mistralai/devstral-small:free",
386+ "mistralai/devstral-small",
387+ "google/gemini-2.5-flash-preview-05-20",
388+ "google/gemini-2.5-flash-preview-05-20:thinking",
389+ "openai/codex-mini",
390+ "mistralai/mistral-medium-3",
391+ "google/gemini-2.5-pro-preview-05-06",
392+ "arcee-ai/caller-large",
393+ "arcee-ai/virtuoso-large",
394+ "arcee-ai/virtuoso-medium-v2",
395+ "qwen/qwen3-30b-a3b",
398+ "qwen/qwen3-235b-a22b",
399+ "google/gemini-2.5-flash-preview",
400+ "google/gemini-2.5-flash-preview:thinking",
401+ "openai/o4-mini-high",
405+ "openai/gpt-4.1-mini",
406+ "openai/gpt-4.1-nano",
407+ "x-ai/grok-3-mini-beta",
409+ "meta-llama/llama-4-maverick",
410+ "meta-llama/llama-4-scout",
411+ "all-hands/openhands-lm-32b-v0.1",
412+ "google/gemini-2.5-pro-exp-03-25",
413+ "deepseek/deepseek-chat-v3-0324:free",
414+ "deepseek/deepseek-chat-v3-0324",
415+ "mistralai/mistral-small-3.1-24b-instruct:free",
416+ "mistralai/mistral-small-3.1-24b-instruct",
417+ "ai21/jamba-1.6-large",
418+ "ai21/jamba-1.6-mini",
419+ "openai/gpt-4.5-preview",
420+ "google/gemini-2.0-flash-lite-001",
421+ "anthropic/claude-3.7-sonnet",
422+ "anthropic/claude-3.7-sonnet:beta",
423+ "anthropic/claude-3.7-sonnet:thinking",
424+ "mistralai/mistral-saba",
425+ "openai/o3-mini-high",
426+ "google/gemini-2.0-flash-001",
431+ "mistralai/mistral-small-24b-instruct-2501",
432+ "deepseek/deepseek-r1-distill-llama-70b",
433+ "deepseek/deepseek-r1",
434+ "mistralai/codestral-2501",
435+ "deepseek/deepseek-chat",
438+ "meta-llama/llama-3.3-70b-instruct",
439+ "amazon/nova-lite-v1",
440+ "amazon/nova-micro-v1",
441+ "amazon/nova-pro-v1",
442+ "openai/gpt-4o-2024-11-20",
443+ "mistralai/mistral-large-2411",
444+ "mistralai/mistral-large-2407",
445+ "mistralai/pixtral-large-2411",
446+ "thedrummer/unslopnemo-12b",
447+ "anthropic/claude-3.5-haiku:beta",
448+ "anthropic/claude-3.5-haiku",
449+ "anthropic/claude-3.5-haiku-20241022:beta",
450+ "anthropic/claude-3.5-haiku-20241022",
451+ "anthropic/claude-3.5-sonnet:beta",
1261 "anthropic/claude-3.5-sonnet",
452 "anthropic/claude-3.5-sonnet",
454+ "mistralai/ministral-8b",
455+ "mistralai/ministral-3b",
456+ "nvidia/llama-3.1-nemotron-70b-instruct",
457+ "google/gemini-flash-1.5-8b",
458+ "meta-llama/llama-3.2-11b-vision-instruct",
459+ "meta-llama/llama-3.2-3b-instruct",
460+ "qwen/qwen-2.5-72b-instruct",
461+ "mistralai/pixtral-12b",
462+ "cohere/command-r-plus-08-2024",
463+ "cohere/command-r-08-2024",
464+ "microsoft/phi-3.5-mini-128k-instruct",
465+ "nousresearch/hermes-3-llama-3.1-70b",
466+ "openai/gpt-4o-2024-08-06",
467+ "meta-llama/llama-3.1-405b-instruct",
468+ "meta-llama/llama-3.1-70b-instruct",
469+ "meta-llama/llama-3.1-8b-instruct",
470+ "mistralai/mistral-nemo",
471+ "openai/gpt-4o-mini",
472+ "openai/gpt-4o-mini-2024-07-18",
1262− "anthropic/claude-3.5-haiku"
473+ "anthropic/claude-3.5-sonnet-20240620:beta",
474+ "anthropic/claude-3.5-sonnet-20240620",
475+ "mistralai/mistral-7b-instruct-v0.3",
476+ "mistralai/mistral-7b-instruct:free",
477+ "mistralai/mistral-7b-instruct",
478+ "microsoft/phi-3-mini-128k-instruct",
479+ "microsoft/phi-3-medium-128k-instruct",
480+ "google/gemini-flash-1.5",
481+ "openai/gpt-4o-2024-05-13",
483+ "openai/gpt-4o:extended",
484+ "meta-llama/llama-3-8b-instruct",
485+ "meta-llama/llama-3-70b-instruct",
486+ "mistralai/mixtral-8x22b-instruct",
487+ "openai/gpt-4-turbo",
488+ "google/gemini-pro-1.5",
489+ "cohere/command-r-plus",
490+ "cohere/command-r-plus-04-2024",
492+ "anthropic/claude-3-haiku:beta",
493+ "anthropic/claude-3-haiku",
494+ "anthropic/claude-3-opus:beta",
495+ "anthropic/claude-3-opus",
496+ "anthropic/claude-3-sonnet:beta",
497+ "anthropic/claude-3-sonnet",
498+ "cohere/command-r-03-2024",
499+ "mistralai/mistral-large",
500+ "openai/gpt-3.5-turbo-0613",
501+ "openai/gpt-4-turbo-preview",
502+ "mistralai/mistral-small",
503+ "mistralai/mistral-tiny",
504+ "mistralai/mixtral-8x7b-instruct",
505+ "openai/gpt-4-1106-preview",
506+ "mistralai/mistral-7b-instruct-v0.1",
507+ "openai/gpt-3.5-turbo-16k",
511+ "title": "Model ID",
512+ "description": "ID of the preferred model"
1265 "provider": {
514 "provider": {
1266− "description": "Provider",
1267 "type": "string",
515 "type": "string",
1268 "enum": [
516 "enum": [
1269 "anthropic",
517 "anthropic",
1270 "openai",
518 "openai",
1271 "gemini",
519 "gemini",
1273 "openrouter"
524 "openrouter"
526+ "title": "Provider",
527+ "description": "Provider for the preferred model"
1276 "reasoning_effort": {
529 "reasoning_effort": {
1277− "description": "Reasoning Effort",
531+ "title": "Reasoning Effort",
1278− "type": "string"
532+ "description": "Override reasoning effort for this model"
537+ "title": "Max Tokens",
538+ "description": "Override max tokens for this model"
1280 "think": {
540 "think": {
1281− "description": "Enable think",
1282− "type": "boolean"
541+ "type": "boolean",
543+ "description": "Enable thinking for reasoning models",
1285 "required": [
548 "required": [
1286 "model_id",
549 "model_id",
1287 "provider"
550 "provider"
1290 "PreferredModels": {
553 "PreferredModels": {
1291− "description": "Preferred model configurations for large and small model types",
1293 "properties": {
554 "properties": {
1294 "large": {
555 "large": {
1295− "description": "Large",
556+ "$ref": "#/$defs/PreferredModel",
1296− "type": "object",
557+ "title": "Large Model",
1297− "properties": {
558+ "description": "Preferred model configuration for large model type"
1299− "description": "Max Tokens",
1303− "description": "Model I D",
1308− "claude-3-5-sonnet-20241022",
1309− "claude-3-5-haiku-20241022",
1318− "gemini-2.5-flash",
1320− "anthropic/claude-3.5-sonnet",
1321− "anthropic/claude-3.5-haiku"
1325− "description": "Provider",
1335− "reasoning_effort": {
1336− "description": "Reasoning Effort",
1340− "description": "Enable think",
1349 "small": {
560 "small": {
1350− "description": "Small",
1351− "$ref": "#/definitions/PreferredModel"
561+ "$ref": "#/$defs/PreferredModel",
562+ "title": "Small Model",
563+ "description": "Preferred model configuration for small model type"
1354− "required": [
566+ "type": "object"
1359 "ProviderConfig": {
568 "ProviderConfig": {
1361 "properties": {
569 "properties": {
1362− "api_key": {
570+ "id": {
582+ "title": "Provider ID",
1363− "description": "API key for authenticating with the provider",
583+ "description": "Unique identifier for the provider"
1366 "base_url": {
585 "base_url": {
587+ "title": "Base URL",
1367− "description": "Base URL for the provider API (required for custom providers)",
588+ "description": "Base URL for the provider API (required for custom providers)"
1370− "default_large_model": {
590+ "provider_type": {
1371− "description": "Default Large Model",
1372− "type": "string"
591+ "type": "string",
592+ "title": "Provider Type",
593+ "description": "Type of the provider (openai"
1374− "default_small_model": {
595+ "api_key": {
1375− "description": "Default Small Model",
1376− "type": "string"
596+ "type": "string",
598+ "description": "API key for authenticating with the provider"
1378 "disabled": {
600 "disabled": {
1379− "description": "Disabled",
1380 "type": "boolean",
601 "type": "boolean",
602+ "title": "Disabled",
603+ "description": "Whether this provider is disabled",
1381 "default": false
604 "default": false
1383 "extra_headers": {
606 "extra_headers": {
1384− "description": "Additional HTTP headers to send with requests",
1386 "additionalProperties": {
607 "additionalProperties": {
1387 "type": "string"
608 "type": "string"
611+ "title": "Extra Headers",
612+ "description": "Additional HTTP headers to send with requests"
1390 "extra_params": {
614 "extra_params": {
1391− "description": "Additional provider-specific parameters",
1393 "additionalProperties": {
615 "additionalProperties": {
1394 "type": "string"
616 "type": "string"
619+ "title": "Extra Parameters",
620+ "description": "Additional provider-specific parameters"
1397− "id": {
622+ "default_large_model": {
1398− "description": "I D",
1399 "type": "string",
623 "type": "string",
1400− "enum": [
624+ "title": "Default Large Model",
1401− "anthropic",
625+ "description": "Default model ID for large model type"
1403− "gemini",
627+ "default_small_model": {
1404− "xai",
628+ "type": "string",
1405− "openrouter"
629+ "title": "Default Small Model",
1406− ]
630+ "description": "Default model ID for small model type"
1408 "models": {
632 "models": {
1409− "description": "Models",
1411 "items": {
633 "items": {
1412− "type": "object",
634+ "$ref": "#/$defs/Model"
1415− "description": "Enable can reason",
1418− "context_window": {
1419− "description": "Context Window",
1420− "type": "integer"
636+ "type": "array",
1421− },
637+ "title": "Models",
1422− "cost_per_1m_in": {
638+ "description": "List of available models for this provider"
1423− "description": "Cost Per1 M In",
1426− "cost_per_1m_in_cached": {
1427− "description": "Cost Per1 M In Cached",
1430− "cost_per_1m_out": {
1431− "description": "Cost Per1 M Out",
1434− "cost_per_1m_out_cached": {
1435− "description": "Cost Per1 M Out Cached",
1438− "default_max_tokens": {
1439− "description": "Default Max Tokens",
1442− "has_reasoning_effort": {
1443− "description": "Enable has reasoning effort",
1447− "description": "I D",
1451− "description": "Name",
1454− "reasoning_effort": {
1455− "description": "Reasoning Effort",
1458− "supports_attachments": {
1459− "description": "Enable supports images",
1468− "cost_per_1m_in_cached",
1469− "cost_per_1m_out_cached",
1471− "default_max_tokens",
1473− "reasoning_effort",
1474− "has_reasoning_effort",
1475− "supports_attachments"
1480− "description": "Provider Type",
1484 "required": [
642 "required": [
1486− "provider_type",
643+ "provider_type"
1490 "TUIOptions": {
646 "TUIOptions": {
1491− "description": "T U I",
1493 "properties": {
647 "properties": {
1494 "compact_mode": {
648 "compact_mode": {
1495− "description": "Enable compact mode",
1496 "type": "boolean",
649 "type": "boolean",
650+ "title": "Compact Mode",
651+ "description": "Enable compact mode for the TUI",
1497 "default": false
652 "default": false
1500 "required": [
656 "required": [
1501 "compact_mode"
657 "compact_mode"
663+ "$ref": "#/$defs/PreferredModels",
665+ "description": "Preferred model configurations for large and small model types"
668+ "additionalProperties": {
669+ "$ref": "#/$defs/ProviderConfig"
672+ "title": "Providers",
673+ "description": "LLM provider configurations"
676+ "additionalProperties": {
677+ "$ref": "#/$defs/Agent"
681+ "description": "Agent configurations for different tasks"
684+ "additionalProperties": {
685+ "$ref": "#/$defs/MCP"
689+ "description": "Model Control Protocol server configurations"
692+ "additionalProperties": {
693+ "$ref": "#/$defs/LSPConfig"
697+ "description": "Language Server Protocol configurations"
700+ "$ref": "#/$defs/Options",
702+ "description": "General application options and settings"
706+ "title": "Crush Configuration",
707+ "description": "Configuration schema for the Crush application"