1---
2name: crush-config
3description: Configure Crush settings including providers, LSPs, MCPs, skills, permissions, and behavior options. Use when the user needs help with crush.json configuration, setting up providers, configuring LSPs, adding MCP servers, or changing Crush behavior.
4---
5
6# Crush Configuration
7
8Crush uses JSON configuration files with the following priority (highest to lowest):
9
101. `.crush.json` (project-local, hidden)
112. `crush.json` (project-local)
123. `$XDG_CONFIG_HOME/crush/crush.json` or `$HOME/.config/crush/crush.json` (global)
13
14## Basic Structure
15
16```json
17{
18 "$schema": "https://charm.land/crush.json",
19 "options": {}
20}
21```
22
23The `$schema` property enables IDE autocomplete but is optional.
24
25## Common Configurations
26
27### Project-Local Skills
28
29Add a relative path to keep project-specific skills alongside your code:
30
31```json
32{
33 "options": {
34 "skills_paths": ["./skills"]
35 }
36}
37```
38
39> [!IMPORTANT]
40> Keep in mind that the following paths are loaded by default, so they DO NOT NEED to be added to `skill_paths`:
41>
42> * `.agents/skills`
43> * `.crush/skills`
44> * `.claude/skills`
45> * `.cursor/skills`
46
47### LSP Configuration
48
49```json
50{
51 "lsp": {
52 "go": {
53 "command": "gopls",
54 "env": {
55 "GOTOOLCHAIN": "go1.24.5"
56 }
57 },
58 "typescript": {
59 "command": "typescript-language-server",
60 "args": ["--stdio"]
61 }
62 }
63}
64```
65
66### MCP Servers
67
68```json
69{
70 "mcp": {
71 "filesystem": {
72 "type": "stdio",
73 "command": "node",
74 "args": ["/path/to/mcp-server.js"]
75 },
76 "github": {
77 "type": "http",
78 "url": "https://api.githubcopilot.com/mcp/",
79 "headers": {
80 "Authorization": "Bearer $GH_PAT"
81 }
82 }
83 }
84}
85```
86
87### Custom Provider
88
89```json
90{
91 "providers": {
92 "deepseek": {
93 "type": "openai-compat",
94 "base_url": "https://api.deepseek.com/v1",
95 "api_key": "$DEEPSEEK_API_KEY",
96 "models": [
97 {
98 "id": "deepseek-chat",
99 "name": "Deepseek V3",
100 "context_window": 64000
101 }
102 ]
103 }
104 }
105}
106```
107
108### Tool Permissions
109
110```json
111{
112 "permissions": {
113 "allowed_tools": ["view", "ls", "grep", "edit"]
114 }
115}
116```
117
118### Disable Built-in Tools
119
120```json
121{
122 "options": {
123 "disabled_tools": ["bash", "sourcegraph"]
124 }
125}
126```
127
128### Disable Skills
129
130```json
131{
132 "options": {
133 "disabled_skills": ["crush-config"]
134 }
135}
136```
137
138`disabled_skills` disables skills by name, including both builtin skills and
139skills discovered from disk paths.
140
141### Debug Options
142
143```json
144{
145 "options": {
146 "debug": true,
147 "debug_lsp": true
148 }
149}
150```
151
152### Attribution Settings
153
154```json
155{
156 "options": {
157 "attribution": {
158 "trailer_style": "assisted-by",
159 "generated_with": true
160 }
161 }
162}
163```
164
165## Environment Variables
166
167- `CRUSH_GLOBAL_CONFIG` - Override global config location
168- `CRUSH_GLOBAL_DATA` - Override data directory location
169- `CRUSH_SKILLS_DIR` - Override default skills directory
170
171## Provider Types
172
173- `openai` - For OpenAI or OpenAI-compatible APIs that route through OpenAI
174- `openai-compat` - For non-OpenAI providers with OpenAI-compatible APIs
175- `anthropic` - For Anthropic-compatible APIs