@charmland/crush 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +107 -8
- package/package.json +25 -25
package/README.md
CHANGED
|
@@ -39,7 +39,7 @@ nix run github:numtide/nix-ai-tools#crush
|
|
|
39
39
|
|
|
40
40
|
<details>
|
|
41
41
|
<summary><strong>Nix (NUR)</strong></summary>
|
|
42
|
-
|
|
42
|
+
|
|
43
43
|
Crush is available via [NUR](https://github.com/nix-community/NUR) in `nur.repos.charmbracelet.crush`.
|
|
44
44
|
|
|
45
45
|
You can also try out Crush via `nix-shell`:
|
|
@@ -138,19 +138,29 @@ Crush runs great with no configuration. That said, if you do need or want to
|
|
|
138
138
|
customize Crush, configuration can be added either local to the project itself,
|
|
139
139
|
or globally, with the following priority:
|
|
140
140
|
|
|
141
|
-
1.
|
|
142
|
-
2.
|
|
143
|
-
3. `$HOME/.config/crush/crush.json`
|
|
141
|
+
1. `.crush.json`
|
|
142
|
+
2. `crush.json`
|
|
143
|
+
3. `$HOME/.config/crush/crush.json` (Windows: `%USERPROFILE%\AppData\Local\crush\crush.json`)
|
|
144
144
|
|
|
145
145
|
Configuration itself is stored as a JSON object:
|
|
146
146
|
|
|
147
147
|
```json
|
|
148
148
|
{
|
|
149
|
-
"this-setting": { }
|
|
150
|
-
"that-setting":
|
|
149
|
+
"this-setting": {"this": "that"},
|
|
150
|
+
"that-setting": ["ceci", "cela"]
|
|
151
151
|
}
|
|
152
152
|
```
|
|
153
153
|
|
|
154
|
+
As an additional note, Crush also stores ephemeral data, such as application state, in one additional location:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# Unix
|
|
158
|
+
$HOME/.local/shared/crush/crush.json
|
|
159
|
+
|
|
160
|
+
# Windows
|
|
161
|
+
%LOCALAPPDATA%\crush\crush.json
|
|
162
|
+
```
|
|
163
|
+
|
|
154
164
|
### LSPs
|
|
155
165
|
|
|
156
166
|
Crush can use LSPs for additional context to help inform its decisions, just
|
|
@@ -221,10 +231,10 @@ control but don't want Crush to consider when providing context.
|
|
|
221
231
|
The `.crushignore` file uses the same syntax as `.gitignore` and can be placed
|
|
222
232
|
in the root of your project or in subdirectories.
|
|
223
233
|
|
|
224
|
-
###
|
|
234
|
+
### Allowing Tools
|
|
225
235
|
|
|
226
236
|
By default, Crush will ask you for permission before running tool calls. If
|
|
227
|
-
you'd like, you can
|
|
237
|
+
you'd like, you can allow tools to be executed without prompting you for
|
|
228
238
|
permissions. Use this with care.
|
|
229
239
|
|
|
230
240
|
```json
|
|
@@ -245,6 +255,53 @@ permissions. Use this with care.
|
|
|
245
255
|
You can also skip all permission prompts entirely by running Crush with the
|
|
246
256
|
`--yolo` flag. Be very, very careful with this feature.
|
|
247
257
|
|
|
258
|
+
### Local Models
|
|
259
|
+
|
|
260
|
+
Local models can also be configured via OpenAI-compatible API. Here are two common examples:
|
|
261
|
+
|
|
262
|
+
#### Ollama
|
|
263
|
+
|
|
264
|
+
```json
|
|
265
|
+
{
|
|
266
|
+
"providers": {
|
|
267
|
+
"ollama": {
|
|
268
|
+
"name": "Ollama",
|
|
269
|
+
"base_url": "http://localhost:11434/v1/",
|
|
270
|
+
"type": "openai",
|
|
271
|
+
"models": [
|
|
272
|
+
{
|
|
273
|
+
"name": "Qwen 3 30B",
|
|
274
|
+
"id": "qwen3:30b",
|
|
275
|
+
"context_window": 256000,
|
|
276
|
+
"default_max_tokens": 20000
|
|
277
|
+
}
|
|
278
|
+
]
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
#### LM Studio
|
|
284
|
+
|
|
285
|
+
```json
|
|
286
|
+
{
|
|
287
|
+
"providers": {
|
|
288
|
+
"lmstudio": {
|
|
289
|
+
"name": "LM Studio",
|
|
290
|
+
"base_url": "http://localhost:1234/v1/",
|
|
291
|
+
"type": "openai",
|
|
292
|
+
"models": [
|
|
293
|
+
{
|
|
294
|
+
"name": "Qwen 3 30B",
|
|
295
|
+
"id": "qwen/qwen3-30b-a3b-2507",
|
|
296
|
+
"context_window": 256000,
|
|
297
|
+
"default_max_tokens": 20000
|
|
298
|
+
}
|
|
299
|
+
]
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
```
|
|
304
|
+
|
|
248
305
|
### Custom Providers
|
|
249
306
|
|
|
250
307
|
Crush supports custom provider configurations for both OpenAI-compatible and
|
|
@@ -314,6 +371,48 @@ Custom Anthropic-compatible providers follow this format:
|
|
|
314
371
|
}
|
|
315
372
|
```
|
|
316
373
|
|
|
374
|
+
### Amazon Bedrock
|
|
375
|
+
|
|
376
|
+
Crush currently supports running Anthropic models through Bedrock, with caching disabled.
|
|
377
|
+
|
|
378
|
+
* A Bedrock provider will appear once you have AWS configured, i.e. `aws configure`
|
|
379
|
+
* Crush also expects the `AWS_REGION` or `AWS_DEFAULT_REGION` to be set
|
|
380
|
+
* To use a specific AWS profile set `AWS_PROFILE` in your environment, i.e. `AWS_PROFILE=myprofile crush`
|
|
381
|
+
|
|
382
|
+
### Vertex AI Platform
|
|
383
|
+
|
|
384
|
+
Vertex AI will appear in the list of available providers when `VERTEXAI_PROJECT` and `VERTEXAI_LOCATION` are set. You will also need to be authenticated:
|
|
385
|
+
|
|
386
|
+
```bash
|
|
387
|
+
gcloud auth application-default login
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
To add specific models to the configuration, configure as such:
|
|
391
|
+
|
|
392
|
+
```json
|
|
393
|
+
{
|
|
394
|
+
"$schema": "https://charm.land/crush.json",
|
|
395
|
+
"providers": {
|
|
396
|
+
"vertexai": {
|
|
397
|
+
"models": [
|
|
398
|
+
{
|
|
399
|
+
"id": "claude-sonnet-4@20250514",
|
|
400
|
+
"name": "VertexAI Sonnet 4",
|
|
401
|
+
"cost_per_1m_in": 3,
|
|
402
|
+
"cost_per_1m_out": 15,
|
|
403
|
+
"cost_per_1m_in_cached": 3.75,
|
|
404
|
+
"cost_per_1m_out_cached": 0.3,
|
|
405
|
+
"context_window": 200000,
|
|
406
|
+
"default_max_tokens": 50000,
|
|
407
|
+
"can_reason": true,
|
|
408
|
+
"supports_attachments": true
|
|
409
|
+
}
|
|
410
|
+
]
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
```
|
|
415
|
+
|
|
317
416
|
## Logging
|
|
318
417
|
|
|
319
418
|
Sometimes you need to look at logs. Luckily, Crush logs all sorts of
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@charmland/crush",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "A powerful terminal-based AI assistant for developers, providing intelligent coding assistance directly in your terminal.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"postinstall": "node install.js",
|
|
@@ -26,82 +26,82 @@
|
|
|
26
26
|
},
|
|
27
27
|
"archives": {
|
|
28
28
|
"darwin-arm64": {
|
|
29
|
-
"name": "crush_0.2.
|
|
30
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.2.
|
|
29
|
+
"name": "crush_0.2.2_Darwin_arm64.tar.gz",
|
|
30
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.2.2/crush_0.2.2_Darwin_arm64.tar.gz",
|
|
31
31
|
"bins": [
|
|
32
32
|
"crush"
|
|
33
33
|
],
|
|
34
34
|
"format": "tar.gz",
|
|
35
35
|
"checksum": {
|
|
36
36
|
"algorithm": "sha256",
|
|
37
|
-
"digest": "
|
|
37
|
+
"digest": "128539d89ff7a5f9a761c4cafbc0067ad9c08b2c1758e17c9d9f23671dd70359"
|
|
38
38
|
},
|
|
39
|
-
"wrappedIn": "crush_0.2.
|
|
39
|
+
"wrappedIn": "crush_0.2.2_Darwin_arm64"
|
|
40
40
|
},
|
|
41
41
|
"darwin-x64": {
|
|
42
|
-
"name": "crush_0.2.
|
|
43
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.2.
|
|
42
|
+
"name": "crush_0.2.2_Darwin_x86_64.tar.gz",
|
|
43
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.2.2/crush_0.2.2_Darwin_x86_64.tar.gz",
|
|
44
44
|
"bins": [
|
|
45
45
|
"crush"
|
|
46
46
|
],
|
|
47
47
|
"format": "tar.gz",
|
|
48
48
|
"checksum": {
|
|
49
49
|
"algorithm": "sha256",
|
|
50
|
-
"digest": "
|
|
50
|
+
"digest": "3546aa2f6cb443756cdf877d0c408568881010a3022270ac363bb96814429f79"
|
|
51
51
|
},
|
|
52
|
-
"wrappedIn": "crush_0.2.
|
|
52
|
+
"wrappedIn": "crush_0.2.2_Darwin_x86_64"
|
|
53
53
|
},
|
|
54
54
|
"linux-arm64": {
|
|
55
|
-
"name": "crush_0.2.
|
|
56
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.2.
|
|
55
|
+
"name": "crush_0.2.2_Linux_arm64.tar.gz",
|
|
56
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.2.2/crush_0.2.2_Linux_arm64.tar.gz",
|
|
57
57
|
"bins": [
|
|
58
58
|
"crush"
|
|
59
59
|
],
|
|
60
60
|
"format": "tar.gz",
|
|
61
61
|
"checksum": {
|
|
62
62
|
"algorithm": "sha256",
|
|
63
|
-
"digest": "
|
|
63
|
+
"digest": "adda1c0deaca834a3c7f825a544bf3c0230589beb0dc62fc5b0c5a20c42833eb"
|
|
64
64
|
},
|
|
65
|
-
"wrappedIn": "crush_0.2.
|
|
65
|
+
"wrappedIn": "crush_0.2.2_Linux_arm64"
|
|
66
66
|
},
|
|
67
67
|
"linux-x64": {
|
|
68
|
-
"name": "crush_0.2.
|
|
69
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.2.
|
|
68
|
+
"name": "crush_0.2.2_Linux_x86_64.tar.gz",
|
|
69
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.2.2/crush_0.2.2_Linux_x86_64.tar.gz",
|
|
70
70
|
"bins": [
|
|
71
71
|
"crush"
|
|
72
72
|
],
|
|
73
73
|
"format": "tar.gz",
|
|
74
74
|
"checksum": {
|
|
75
75
|
"algorithm": "sha256",
|
|
76
|
-
"digest": "
|
|
76
|
+
"digest": "5c1eaed7f245ab0fc21d731d43fb038cddcc7f038d55f38b3a1263be5721a94a"
|
|
77
77
|
},
|
|
78
|
-
"wrappedIn": "crush_0.2.
|
|
78
|
+
"wrappedIn": "crush_0.2.2_Linux_x86_64"
|
|
79
79
|
},
|
|
80
80
|
"win32-arm64": {
|
|
81
|
-
"name": "crush_0.2.
|
|
82
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.2.
|
|
81
|
+
"name": "crush_0.2.2_Windows_arm64.zip",
|
|
82
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.2.2/crush_0.2.2_Windows_arm64.zip",
|
|
83
83
|
"bins": [
|
|
84
84
|
"crush.exe"
|
|
85
85
|
],
|
|
86
86
|
"format": "zip",
|
|
87
87
|
"checksum": {
|
|
88
88
|
"algorithm": "sha256",
|
|
89
|
-
"digest": "
|
|
89
|
+
"digest": "02d5ecb6f6d4c35376fb9424ec58911f4d3740416ab1a771219285d54c64aa46"
|
|
90
90
|
},
|
|
91
|
-
"wrappedIn": "crush_0.2.
|
|
91
|
+
"wrappedIn": "crush_0.2.2_Windows_arm64"
|
|
92
92
|
},
|
|
93
93
|
"win32-x64": {
|
|
94
|
-
"name": "crush_0.2.
|
|
95
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.2.
|
|
94
|
+
"name": "crush_0.2.2_Windows_x86_64.zip",
|
|
95
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.2.2/crush_0.2.2_Windows_x86_64.zip",
|
|
96
96
|
"bins": [
|
|
97
97
|
"crush.exe"
|
|
98
98
|
],
|
|
99
99
|
"format": "zip",
|
|
100
100
|
"checksum": {
|
|
101
101
|
"algorithm": "sha256",
|
|
102
|
-
"digest": "
|
|
102
|
+
"digest": "df1e3f5019b5608f74c4bfb6cccb7e4f4ba7a1e320281376358abe0492f03787"
|
|
103
103
|
},
|
|
104
|
-
"wrappedIn": "crush_0.2.
|
|
104
|
+
"wrappedIn": "crush_0.2.2_Windows_x86_64"
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
}
|