@charmland/crush 0.2.1 → 0.3.0

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 +123 -8
  2. package/package.json +25 -25
package/README.md CHANGED
@@ -35,11 +35,15 @@ yay -S crush-bin
35
35
 
36
36
  # Nix
37
37
  nix run github:numtide/nix-ai-tools#crush
38
+
39
+ # Scoop
40
+ scoop bucket add charm https://github.com/charmbracelet/scoop-bucket.git
41
+ scoop install crush
38
42
  ```
39
43
 
40
44
  <details>
41
45
  <summary><strong>Nix (NUR)</strong></summary>
42
-
46
+
43
47
  Crush is available via [NUR](https://github.com/nix-community/NUR) in `nur.repos.charmbracelet.crush`.
44
48
 
45
49
  You can also try out Crush via `nix-shell`:
@@ -138,19 +142,29 @@ Crush runs great with no configuration. That said, if you do need or want to
138
142
  customize Crush, configuration can be added either local to the project itself,
139
143
  or globally, with the following priority:
140
144
 
141
- 1. `./.crush.json`
142
- 2. `./crush.json`
143
- 3. `$HOME/.config/crush/crush.json`
145
+ 1. `.crush.json`
146
+ 2. `crush.json`
147
+ 3. `$HOME/.config/crush/crush.json` (Windows: `%USERPROFILE%\AppData\Local\crush\crush.json`)
144
148
 
145
149
  Configuration itself is stored as a JSON object:
146
150
 
147
151
  ```json
148
152
  {
149
- "this-setting": { }
150
- "that-setting": { }
153
+ "this-setting": {"this": "that"},
154
+ "that-setting": ["ceci", "cela"]
151
155
  }
152
156
  ```
153
157
 
158
+ As an additional note, Crush also stores ephemeral data, such as application state, in one additional location:
159
+
160
+ ```bash
161
+ # Unix
162
+ $HOME/.local/share/crush/crush.json
163
+
164
+ # Windows
165
+ %LOCALAPPDATA%\crush\crush.json
166
+ ```
167
+
154
168
  ### LSPs
155
169
 
156
170
  Crush can use LSPs for additional context to help inform its decisions, just
@@ -221,10 +235,10 @@ control but don't want Crush to consider when providing context.
221
235
  The `.crushignore` file uses the same syntax as `.gitignore` and can be placed
222
236
  in the root of your project or in subdirectories.
223
237
 
224
- ### Whitelisting Tools
238
+ ### Allowing Tools
225
239
 
226
240
  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
241
+ you'd like, you can allow tools to be executed without prompting you for
228
242
  permissions. Use this with care.
229
243
 
230
244
  ```json
@@ -245,6 +259,54 @@ permissions. Use this with care.
245
259
  You can also skip all permission prompts entirely by running Crush with the
246
260
  `--yolo` flag. Be very, very careful with this feature.
247
261
 
262
+ ### Local Models
263
+
264
+ Local models can also be configured via OpenAI-compatible API. Here are two common examples:
265
+
266
+ #### Ollama
267
+
268
+ ```json
269
+ {
270
+ "providers": {
271
+ "ollama": {
272
+ "name": "Ollama",
273
+ "base_url": "http://localhost:11434/v1/",
274
+ "type": "openai",
275
+ "models": [
276
+ {
277
+ "name": "Qwen 3 30B",
278
+ "id": "qwen3:30b",
279
+ "context_window": 256000,
280
+ "default_max_tokens": 20000
281
+ }
282
+ ]
283
+ }
284
+ }
285
+ }
286
+ ```
287
+
288
+ #### LM Studio
289
+
290
+ ```json
291
+ {
292
+ "providers": {
293
+ "lmstudio": {
294
+ "name": "LM Studio",
295
+ "base_url": "http://localhost:1234/v1/",
296
+ "type": "openai",
297
+ "models": [
298
+ {
299
+ "name": "Qwen 3 30B",
300
+ "id": "qwen/qwen3-30b-a3b-2507",
301
+ "context_window": 256000,
302
+ "default_max_tokens": 20000
303
+ }
304
+ ]
305
+ }
306
+ }
307
+ }
308
+ ```
309
+
248
310
  ### Custom Providers
249
311
 
250
312
  Crush supports custom provider configurations for both OpenAI-compatible and
@@ -314,6 +376,59 @@ Custom Anthropic-compatible providers follow this format:
314
376
  }
315
377
  ```
316
378
 
379
+ ### Amazon Bedrock
380
+
381
+ Crush currently supports running Anthropic models through Bedrock, with caching disabled.
382
+
383
+ * A Bedrock provider will appear once you have AWS configured, i.e. `aws configure`
384
+ * Crush also expects the `AWS_REGION` or `AWS_DEFAULT_REGION` to be set
385
+ * To use a specific AWS profile set `AWS_PROFILE` in your environment, i.e. `AWS_PROFILE=myprofile crush`
386
+
387
+ ### Vertex AI Platform
388
+
389
+ 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:
390
+
391
+ ```bash
392
+ gcloud auth application-default login
393
+ ```
394
+
395
+ To add specific models to the configuration, configure as such:
396
+
397
+ ```json
398
+ {
399
+ "$schema": "https://charm.land/crush.json",
400
+ "providers": {
401
+ "vertexai": {
402
+ "models": [
403
+ {
404
+ "id": "claude-sonnet-4@20250514",
405
+ "name": "VertexAI Sonnet 4",
406
+ "cost_per_1m_in": 3,
407
+ "cost_per_1m_out": 15,
408
+ "cost_per_1m_in_cached": 3.75,
409
+ "cost_per_1m_out_cached": 0.3,
410
+ "context_window": 200000,
411
+ "default_max_tokens": 50000,
412
+ "can_reason": true,
413
+ "supports_attachments": true
414
+ }
415
+ ]
416
+ }
417
+ }
418
+ }
419
+ ```
420
+
421
+ ## A Note on Claude Max and GitHub Copilot
422
+
423
+ Crush only supports model providers through official, compliant APIs. We do not
424
+ support or endorse any methods that rely on personal Claude Max and GitHub Copilot
425
+ accounts or OAuth workarounds, which may violate Anthropic and Microsoft’s
426
+ Terms of Service.
427
+
428
+ We’re committed to building sustainable, trusted integrations with model
429
+ providers. If you’re a provider interested in working with us,
430
+ [reach out](mailto:vt100@charm.sh).
431
+
317
432
  ## Logging
318
433
 
319
434
  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.3.0",
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.3.0_Darwin_arm64.tar.gz",
30
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.3.0/crush_0.3.0_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": "baee31303dc479621f3bcc906240d14fb1c7f5c2c722dfb55abb386cf34b8901"
38
38
  },
39
- "wrappedIn": "crush_0.2.1_Darwin_arm64"
39
+ "wrappedIn": "crush_0.3.0_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.3.0_Darwin_x86_64.tar.gz",
43
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.3.0/crush_0.3.0_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": "3301c0c16c49b892e6ae0f77cf3c35ea25187738af85ea2bbe40b38acdde69d5"
51
51
  },
52
- "wrappedIn": "crush_0.2.1_Darwin_x86_64"
52
+ "wrappedIn": "crush_0.3.0_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.3.0_Linux_arm64.tar.gz",
56
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.3.0/crush_0.3.0_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": "115d9589648c9602b3fea3301648031b014e1fd5304db428d50294ed60d9eb9c"
64
64
  },
65
- "wrappedIn": "crush_0.2.1_Linux_arm64"
65
+ "wrappedIn": "crush_0.3.0_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.3.0_Linux_x86_64.tar.gz",
69
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.3.0/crush_0.3.0_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": "ef9b8f4950842268effc6df0dac849766ff95e5c19fddc8036370566d8aa6c71"
77
77
  },
78
- "wrappedIn": "crush_0.2.1_Linux_x86_64"
78
+ "wrappedIn": "crush_0.3.0_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.3.0_Windows_arm64.zip",
82
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.3.0/crush_0.3.0_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": "13f608b4e4e79a62095c0b9131bab2daedf9d33d847308e668f92b206cef6bb0"
90
90
  },
91
- "wrappedIn": "crush_0.2.1_Windows_arm64"
91
+ "wrappedIn": "crush_0.3.0_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.3.0_Windows_x86_64.zip",
95
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.3.0/crush_0.3.0_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": "f3f08e3a91fbede3f90f6d9c19fb95d388953e0a28b3b3a50a3f0cfd0f2ebd52"
103
103
  },
104
- "wrappedIn": "crush_0.2.1_Windows_x86_64"
104
+ "wrappedIn": "crush_0.3.0_Windows_x86_64"
105
105
  }
106
106
  }
107
107
  }