@charmland/crush 0.2.1 → 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.
Files changed (2) hide show
  1. package/README.md +107 -8
  2. 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. `./.crush.json`
142
- 2. `./crush.json`
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
- ### Whitelisting Tools
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 whitelist tools to be executed without prompting you for
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.1",
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.1_Darwin_arm64.tar.gz",
30
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.2.1/crush_0.2.1_Darwin_arm64.tar.gz",
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": "d15e46a04643ccc0668927bb6fa3f01204ba8b61ddf3deda59ff81fa1156a9f3"
37
+ "digest": "128539d89ff7a5f9a761c4cafbc0067ad9c08b2c1758e17c9d9f23671dd70359"
38
38
  },
39
- "wrappedIn": "crush_0.2.1_Darwin_arm64"
39
+ "wrappedIn": "crush_0.2.2_Darwin_arm64"
40
40
  },
41
41
  "darwin-x64": {
42
- "name": "crush_0.2.1_Darwin_x86_64.tar.gz",
43
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.2.1/crush_0.2.1_Darwin_x86_64.tar.gz",
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": "f16a2c3ea397970fa40149f129eedfcfca4544c7fe6248009e3ca2be026badbc"
50
+ "digest": "3546aa2f6cb443756cdf877d0c408568881010a3022270ac363bb96814429f79"
51
51
  },
52
- "wrappedIn": "crush_0.2.1_Darwin_x86_64"
52
+ "wrappedIn": "crush_0.2.2_Darwin_x86_64"
53
53
  },
54
54
  "linux-arm64": {
55
- "name": "crush_0.2.1_Linux_arm64.tar.gz",
56
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.2.1/crush_0.2.1_Linux_arm64.tar.gz",
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": "8a0f219e141bccf026263a6581edfe432418c4518da6dea64bc55e19fd466c64"
63
+ "digest": "adda1c0deaca834a3c7f825a544bf3c0230589beb0dc62fc5b0c5a20c42833eb"
64
64
  },
65
- "wrappedIn": "crush_0.2.1_Linux_arm64"
65
+ "wrappedIn": "crush_0.2.2_Linux_arm64"
66
66
  },
67
67
  "linux-x64": {
68
- "name": "crush_0.2.1_Linux_x86_64.tar.gz",
69
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.2.1/crush_0.2.1_Linux_x86_64.tar.gz",
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": "5a0adb1e0b3d4969781d35bcdc725fe1b1f79e38660916204c9bb166d5f3ef7e"
76
+ "digest": "5c1eaed7f245ab0fc21d731d43fb038cddcc7f038d55f38b3a1263be5721a94a"
77
77
  },
78
- "wrappedIn": "crush_0.2.1_Linux_x86_64"
78
+ "wrappedIn": "crush_0.2.2_Linux_x86_64"
79
79
  },
80
80
  "win32-arm64": {
81
- "name": "crush_0.2.1_Windows_arm64.zip",
82
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.2.1/crush_0.2.1_Windows_arm64.zip",
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": "7a0cc2630d4e325a95211042b0c31c4855d9bbedacf33436d9f3dbed918fd6f8"
89
+ "digest": "02d5ecb6f6d4c35376fb9424ec58911f4d3740416ab1a771219285d54c64aa46"
90
90
  },
91
- "wrappedIn": "crush_0.2.1_Windows_arm64"
91
+ "wrappedIn": "crush_0.2.2_Windows_arm64"
92
92
  },
93
93
  "win32-x64": {
94
- "name": "crush_0.2.1_Windows_x86_64.zip",
95
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.2.1/crush_0.2.1_Windows_x86_64.zip",
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": "9ea6da3c55db227f0b954848286eb16585bb035afaa73ecb8f86891f9040f154"
102
+ "digest": "df1e3f5019b5608f74c4bfb6cccb7e4f4ba7a1e320281376358abe0492f03787"
103
103
  },
104
- "wrappedIn": "crush_0.2.1_Windows_x86_64"
104
+ "wrappedIn": "crush_0.2.2_Windows_x86_64"
105
105
  }
106
106
  }
107
107
  }