@charmland/crush 0.76.0 → 0.78.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 +45 -19
  2. package/package.json +25 -25
package/README.md CHANGED
@@ -402,6 +402,33 @@ down. There is a short grace window right after `POST /v1/workspaces` so a
402
402
  client that has created the workspace but not yet opened its event stream
403
403
  does not get reaped before it can attach.
404
404
 
405
+ ### Global context files
406
+
407
+ Crush automatically includes two files for cross-project instructions.
408
+
409
+ - `~/.config/crush/CRUSH.md`: Crush-specific rules that would confuse other
410
+ agentic coding tools. If you only use Crush, this is the only one you need to
411
+ edit.
412
+ - `~/.config/AGENTS.md`: generic instructions that other coding tools might
413
+ read. Avoid referring to Crush-specific features or workflows here. You
414
+ probably only care about this if you use multiple agentic coding tools and
415
+ want to share instructions between them.
416
+
417
+ You can customize these paths using the `global_context_paths` option in your
418
+ configuration:
419
+
420
+ ```jsonc
421
+ {
422
+ "$schema": "https://charm.land/crush.json",
423
+ "options": {
424
+ "global_context_paths": [
425
+ "~/path/to/custom/context/file.md",
426
+ "/full/path/to/folder/of/files/" // recursively load all .md files in folder
427
+ ]
428
+ }
429
+ }
430
+ ```
431
+
405
432
  ### Ignoring Files
406
433
 
407
434
  Crush respects `.gitignore` files by default, but you can also create a
@@ -743,9 +770,9 @@ To add specific models to the configuration, configure as such:
743
770
 
744
771
  ### Local Models
745
772
 
746
- Local models can also be configured via OpenAI-compatible API. Here are two common examples:
747
-
748
- #### Ollama
773
+ Crush can auto-discovers models from local providers. Add a custom provider
774
+ with `type` set to `omlx`, `lmstudio`, `litellm`, or `ollama` and leave out
775
+ the models list. Crush will populate the model list automatically.
749
776
 
750
777
  ```json
751
778
  {
@@ -753,37 +780,36 @@ Local models can also be configured via OpenAI-compatible API. Here are two comm
753
780
  "ollama": {
754
781
  "name": "Ollama",
755
782
  "base_url": "http://localhost:11434/v1/",
756
- "type": "openai-compat",
757
- "models": [
758
- {
759
- "name": "Qwen 3 30B",
760
- "id": "qwen3:30b",
761
- "context_window": 256000,
762
- "default_max_tokens": 20000
763
- }
764
- ]
783
+ "type": "ollama"
765
784
  }
766
785
  }
767
786
  }
768
787
  ```
769
788
 
770
- #### LM Studio
789
+ #### Manual Model Configuration
790
+
791
+ You can still list models explicitly. User-defined models always take
792
+ precedence over discovered ones, and any fields you set won't be overwritten
793
+ by auto-discovery. Auto discovery will run if the model list is empty for any
794
+ `openai-compat` provider or if you pass `"auto_discovery": true` it will merge
795
+ the found models with your hand configured ones.
771
796
 
772
797
  ```json
773
798
  {
774
799
  "providers": {
775
- "lmstudio": {
776
- "name": "LM Studio",
777
- "base_url": "http://localhost:1234/v1/",
778
- "type": "openai-compat",
800
+ "ollama": {
801
+ "name": "Ollama",
802
+ "base_url": "http://localhost:11434/v1/",
803
+ "type": "ollama",
779
804
  "models": [
780
805
  {
781
806
  "name": "Qwen 3 30B",
782
- "id": "qwen/qwen3-30b-a3b-2507",
807
+ "id": "qwen3:30b",
783
808
  "context_window": 256000,
784
809
  "default_max_tokens": 20000
785
810
  }
786
- ]
811
+ ],
812
+ "auto_discovery": true
787
813
  }
788
814
  }
789
815
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@charmland/crush",
3
3
  "type": "module",
4
- "version": "0.76.0",
4
+ "version": "0.78.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.76.0_Darwin_arm64.tar.gz",
31
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.76.0/crush_0.76.0_Darwin_arm64.tar.gz",
30
+ "name": "crush_0.78.0_Darwin_arm64.tar.gz",
31
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.78.0/crush_0.78.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": "6dec0cb0209219d95e4fbc64b62bb9acaf68ae6f1d44b342f69e2ec7098b56e1"
38
+ "digest": "9734fd4d9333dda96d730c6ba3888db284b3962d43a489440a6ac3931da1580f"
39
39
  },
40
- "wrappedIn": "crush_0.76.0_Darwin_arm64"
40
+ "wrappedIn": "crush_0.78.0_Darwin_arm64"
41
41
  },
42
42
  "darwin-x64": {
43
- "name": "crush_0.76.0_Darwin_x86_64.tar.gz",
44
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.76.0/crush_0.76.0_Darwin_x86_64.tar.gz",
43
+ "name": "crush_0.78.0_Darwin_x86_64.tar.gz",
44
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.78.0/crush_0.78.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": "694195deb650869abc895d5cae847bb0e8cda6fb3db03561689d2a38511bd9b5"
51
+ "digest": "fae814cff2b22aa0c7a4ee8e522793280ed9f90c645f42c2659143958b24ec5b"
52
52
  },
53
- "wrappedIn": "crush_0.76.0_Darwin_x86_64"
53
+ "wrappedIn": "crush_0.78.0_Darwin_x86_64"
54
54
  },
55
55
  "linux-arm64": {
56
- "name": "crush_0.76.0_Linux_arm64.tar.gz",
57
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.76.0/crush_0.76.0_Linux_arm64.tar.gz",
56
+ "name": "crush_0.78.0_Linux_arm64.tar.gz",
57
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.78.0/crush_0.78.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": "4294c60003bfb7a0b0d1684d9624da301014f8b52451748a066c82006c89e238"
64
+ "digest": "cd500a3165b18f3fd4b1122d7cf40aaf3f6961c3b37bbd50c4c6fd700a102390"
65
65
  },
66
- "wrappedIn": "crush_0.76.0_Linux_arm64"
66
+ "wrappedIn": "crush_0.78.0_Linux_arm64"
67
67
  },
68
68
  "linux-x64": {
69
- "name": "crush_0.76.0_Linux_x86_64.tar.gz",
70
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.76.0/crush_0.76.0_Linux_x86_64.tar.gz",
69
+ "name": "crush_0.78.0_Linux_x86_64.tar.gz",
70
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.78.0/crush_0.78.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": "0f66114171270485763ffbc96f63403de5d598124c4f3841bc478c3a3a0d1ec9"
77
+ "digest": "5823df024a2a290abe94396f18b9f1ebf693ef5cfa642c5687404356502c3a2b"
78
78
  },
79
- "wrappedIn": "crush_0.76.0_Linux_x86_64"
79
+ "wrappedIn": "crush_0.78.0_Linux_x86_64"
80
80
  },
81
81
  "win32-arm64": {
82
- "name": "crush_0.76.0_Windows_arm64.zip",
83
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.76.0/crush_0.76.0_Windows_arm64.zip",
82
+ "name": "crush_0.78.0_Windows_arm64.zip",
83
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.78.0/crush_0.78.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": "0726a4d231d1caf6f30803b16057c2a7991b584e5d68a6af832317ddcdacc104"
90
+ "digest": "55ce97983e1c96df9c93fa974446f883d5088275786e4d132e0c0ecea513b76a"
91
91
  },
92
- "wrappedIn": "crush_0.76.0_Windows_arm64"
92
+ "wrappedIn": "crush_0.78.0_Windows_arm64"
93
93
  },
94
94
  "win32-x64": {
95
- "name": "crush_0.76.0_Windows_x86_64.zip",
96
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.76.0/crush_0.76.0_Windows_x86_64.zip",
95
+ "name": "crush_0.78.0_Windows_x86_64.zip",
96
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.78.0/crush_0.78.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": "06ea40e14ab12cd0deaa46357b759a7a299ffd0e8d822351d7606fb646df02eb"
103
+ "digest": "0da8e0f478195ca5520d0244c51349cc7001bfdef3202d7762bf0f39ee3a830e"
104
104
  },
105
- "wrappedIn": "crush_0.76.0_Windows_x86_64"
105
+ "wrappedIn": "crush_0.78.0_Windows_x86_64"
106
106
  }
107
107
  }
108
108
  }