on main help sign in
docs(readme): add Ollama and LMStudio config (#538)

* docs: improve readme with more info * chore: small punctuation changes * chore: small markdwon improvements * docs(readme): copyedits * docs(readme): remove implicit colon * docs(readme): fix ephemeral config path on Widows --------- Co-authored-by: Christian Rocha <christian@rocha.is>

commit2673806884a295b144be542278b5e71aa6ebf423 authorKujtim Hoxha <kujtimii.h@gmail.com> dateTue 5 Aug 2025, 14:15 (1 year ago) parentd2535e2
1 file changed+62−5
README.md+62−5
README.md+62−5
@@ -138,19 +138,29 @@ Crush runs great with no configuration. That said, if you do need or want to
138138customize Crush, configuration can be added either local to the project itself,
139139or globally, with the following priority:
140140
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`)
144144
145145Configuration itself is stored as a JSON object:
146146
147147```json
148148{
149− "this-setting": { }
150− "that-setting": { }
149+ "this-setting": {"this": "that"},
150+ "that-setting": ["ceci", "cela"]
151151}
152152```
153153
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+
154164### LSPs
155165
156166Crush can use LSPs for additional context to help inform its decisions, just
@@ -245,6 +255,53 @@ permissions. Use this with care.
245255You can also skip all permission prompts entirely by running Crush with the
246256`--yolo` flag. Be very, very careful with this feature.
247257
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+
248305### Custom Providers
249306
250307Crush supports custom provider configurations for both OpenAI-compatible and