SKILL.md

  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