@charmland/crush 0.66.1 → 0.68.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.
- package/README.md +33 -6
- package/package.json +25 -25
package/README.md
CHANGED
|
@@ -293,10 +293,36 @@ like you would. LSPs can be added manually like so:
|
|
|
293
293
|
|
|
294
294
|
### MCPs
|
|
295
295
|
|
|
296
|
-
Crush also supports Model Context Protocol (MCP) servers through three
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
296
|
+
Crush also supports Model Context Protocol (MCP) servers through three transport
|
|
297
|
+
types: `stdio` for command-line servers, `http` for HTTP endpoints, and `sse`
|
|
298
|
+
for Server-Sent Events.
|
|
299
|
+
|
|
300
|
+
Shell-style value expansion (`$VAR`, `${VAR:-default}`, `$(command)`, quoting,
|
|
301
|
+
nesting) works in `command`, `args`, `env`, `headers`, and `url`, so
|
|
302
|
+
file-based secrets work out of the box. You can use values like `"$TOKEN"`
|
|
303
|
+
or `"$(cat /path/to/secret/token)"`. Expansion runs through Crush's embedded
|
|
304
|
+
shell, so the same syntax works on every supported system, Windows included.
|
|
305
|
+
|
|
306
|
+
Unset variables expand to the empty string by default, matching bash. For
|
|
307
|
+
required credentials, use `${VAR:?message}` so an unset variable fails loudly
|
|
308
|
+
at load time with `message` instead of silently resolving to empty:
|
|
309
|
+
|
|
310
|
+
```json
|
|
311
|
+
{ "api_key": "${CODEBERG_TOKEN:?set CODEBERG_TOKEN}" }
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
Headers (both MCP `headers` and provider `extra_headers`) whose value
|
|
315
|
+
resolves to the empty string are dropped from the outgoing request rather
|
|
316
|
+
than sent as `Header:`. That keeps optional env-gated headers like
|
|
317
|
+
`"OpenAI-Organization": "$OPENAI_ORG_ID"` clean when the variable is unset.
|
|
318
|
+
|
|
319
|
+
Provider `extra_body` is a non-expanding JSON passthrough; put env-driven
|
|
320
|
+
values in `extra_headers` or the provider's `api_key` / `base_url`, all of
|
|
321
|
+
which do expand.
|
|
322
|
+
|
|
323
|
+
> **Security note:** `crush.json` is trusted code. Any `$(...)` in it runs at
|
|
324
|
+
> load time with your shell's privileges, before the UI appears. Don't launch
|
|
325
|
+
> Crush in a directory whose `crush.json` you haven't reviewed.
|
|
300
326
|
|
|
301
327
|
```json
|
|
302
328
|
{
|
|
@@ -419,6 +445,8 @@ The global paths we looks for skills are:
|
|
|
419
445
|
* `$CRUSH_SKILLS_DIR`
|
|
420
446
|
* `$XDG_CONFIG_HOME/agents/skills` or `~/.config/agents/skills/`
|
|
421
447
|
* `$XDG_CONFIG_HOME/crush/skills` or `~/.config/crush/skills/`
|
|
448
|
+
* `~/.agents/skills/`
|
|
449
|
+
* `~/.claude/skills/`
|
|
422
450
|
* On Windows, we _also_ look at
|
|
423
451
|
* `%LOCALAPPDATA%\agents\skills\` or `%USERPROFILE%\AppData\Local\agents\skills\`
|
|
424
452
|
* `%LOCALAPPDATA%\crush\skills\` or `%USERPROFILE%\AppData\Local\crush\skills\`
|
|
@@ -522,8 +550,7 @@ it creates. You can customize this behavior with the `attribution` option:
|
|
|
522
550
|
|
|
523
551
|
- `trailer_style`: Controls the attribution trailer added to commit messages
|
|
524
552
|
(default: `assisted-by`)
|
|
525
|
-
- `assisted-by`: Adds `Assisted-by: [
|
|
526
|
-
(includes the model name)
|
|
553
|
+
- `assisted-by`: Adds `Assisted-by: Crush:[ModelID]` as specified in [the convention](https://docs.kernel.org/process/coding-assistants.html#attribution)
|
|
527
554
|
- `co-authored-by`: Adds `Co-Authored-By: Crush <crush@charm.land>`
|
|
528
555
|
- `none`: No attribution trailer
|
|
529
556
|
- `generated_with`: When true (default), adds `💘 Generated with Crush` line to
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@charmland/crush",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.68.0",
|
|
5
5
|
"description": "A powerful terminal-based AI assistant for developers, providing intelligent coding assistance directly in your terminal.",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"postinstall": "node install.js",
|
|
@@ -27,82 +27,82 @@
|
|
|
27
27
|
},
|
|
28
28
|
"archives": {
|
|
29
29
|
"darwin-arm64": {
|
|
30
|
-
"name": "crush_0.
|
|
31
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
30
|
+
"name": "crush_0.68.0_Darwin_arm64.tar.gz",
|
|
31
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.68.0/crush_0.68.0_Darwin_arm64.tar.gz",
|
|
32
32
|
"bins": [
|
|
33
33
|
"crush"
|
|
34
34
|
],
|
|
35
35
|
"format": "tar.gz",
|
|
36
36
|
"checksum": {
|
|
37
37
|
"algorithm": "sha256",
|
|
38
|
-
"digest": "
|
|
38
|
+
"digest": "6faf033a60f7ab6a127ba58b4e7a050349c34b829fa77c762d767cfff4f68890"
|
|
39
39
|
},
|
|
40
|
-
"wrappedIn": "crush_0.
|
|
40
|
+
"wrappedIn": "crush_0.68.0_Darwin_arm64"
|
|
41
41
|
},
|
|
42
42
|
"darwin-x64": {
|
|
43
|
-
"name": "crush_0.
|
|
44
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
43
|
+
"name": "crush_0.68.0_Darwin_x86_64.tar.gz",
|
|
44
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.68.0/crush_0.68.0_Darwin_x86_64.tar.gz",
|
|
45
45
|
"bins": [
|
|
46
46
|
"crush"
|
|
47
47
|
],
|
|
48
48
|
"format": "tar.gz",
|
|
49
49
|
"checksum": {
|
|
50
50
|
"algorithm": "sha256",
|
|
51
|
-
"digest": "
|
|
51
|
+
"digest": "1816e08d6a7da1fa73575d5250ea8905c7386a841eab2645273b56a8bf21972f"
|
|
52
52
|
},
|
|
53
|
-
"wrappedIn": "crush_0.
|
|
53
|
+
"wrappedIn": "crush_0.68.0_Darwin_x86_64"
|
|
54
54
|
},
|
|
55
55
|
"linux-arm64": {
|
|
56
|
-
"name": "crush_0.
|
|
57
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
56
|
+
"name": "crush_0.68.0_Linux_arm64.tar.gz",
|
|
57
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.68.0/crush_0.68.0_Linux_arm64.tar.gz",
|
|
58
58
|
"bins": [
|
|
59
59
|
"crush"
|
|
60
60
|
],
|
|
61
61
|
"format": "tar.gz",
|
|
62
62
|
"checksum": {
|
|
63
63
|
"algorithm": "sha256",
|
|
64
|
-
"digest": "
|
|
64
|
+
"digest": "97c537ac167cf37bda7bdcec42cba74f3417e8aaca563890b34f74c678d61760"
|
|
65
65
|
},
|
|
66
|
-
"wrappedIn": "crush_0.
|
|
66
|
+
"wrappedIn": "crush_0.68.0_Linux_arm64"
|
|
67
67
|
},
|
|
68
68
|
"linux-x64": {
|
|
69
|
-
"name": "crush_0.
|
|
70
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
69
|
+
"name": "crush_0.68.0_Linux_x86_64.tar.gz",
|
|
70
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.68.0/crush_0.68.0_Linux_x86_64.tar.gz",
|
|
71
71
|
"bins": [
|
|
72
72
|
"crush"
|
|
73
73
|
],
|
|
74
74
|
"format": "tar.gz",
|
|
75
75
|
"checksum": {
|
|
76
76
|
"algorithm": "sha256",
|
|
77
|
-
"digest": "
|
|
77
|
+
"digest": "9a0260aef836ea7c17bb99c2afc505ccccf817db345d5ab8873274a9e15d3086"
|
|
78
78
|
},
|
|
79
|
-
"wrappedIn": "crush_0.
|
|
79
|
+
"wrappedIn": "crush_0.68.0_Linux_x86_64"
|
|
80
80
|
},
|
|
81
81
|
"win32-arm64": {
|
|
82
|
-
"name": "crush_0.
|
|
83
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
82
|
+
"name": "crush_0.68.0_Windows_arm64.zip",
|
|
83
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.68.0/crush_0.68.0_Windows_arm64.zip",
|
|
84
84
|
"bins": [
|
|
85
85
|
"crush.exe"
|
|
86
86
|
],
|
|
87
87
|
"format": "zip",
|
|
88
88
|
"checksum": {
|
|
89
89
|
"algorithm": "sha256",
|
|
90
|
-
"digest": "
|
|
90
|
+
"digest": "2cf23a3d316fdb9656192b20a258aa5db8ad6d1db1c2e8294e7c778461896790"
|
|
91
91
|
},
|
|
92
|
-
"wrappedIn": "crush_0.
|
|
92
|
+
"wrappedIn": "crush_0.68.0_Windows_arm64"
|
|
93
93
|
},
|
|
94
94
|
"win32-x64": {
|
|
95
|
-
"name": "crush_0.
|
|
96
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
95
|
+
"name": "crush_0.68.0_Windows_x86_64.zip",
|
|
96
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.68.0/crush_0.68.0_Windows_x86_64.zip",
|
|
97
97
|
"bins": [
|
|
98
98
|
"crush.exe"
|
|
99
99
|
],
|
|
100
100
|
"format": "zip",
|
|
101
101
|
"checksum": {
|
|
102
102
|
"algorithm": "sha256",
|
|
103
|
-
"digest": "
|
|
103
|
+
"digest": "fb54731ec69e9e35f89cd462416a965be81353185e2f7f00df7347449cf61a75"
|
|
104
104
|
},
|
|
105
|
-
"wrappedIn": "crush_0.
|
|
105
|
+
"wrappedIn": "crush_0.68.0_Windows_x86_64"
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
}
|