@@ -770,9 +770,9 @@ To add specific models to the configuration, configure as such:
771### Local Models
771### Local Models
773−Local models can also be configured via OpenAI-compatible API. Here are two common examples:
773+Crush can auto-discovers models from local providers. Add a custom provider
774−
774+with `type` set to `omlx`, `lmstudio`, `litellm`, or `ollama` and leave out
775−#### Ollama
775+the models list. Crush will populate the model list automatically.
@@ -780,37 +780,36 @@ Local models can also be configured via OpenAI-compatible API. Here are two comm
780 "ollama": {
780 "ollama": {
781 "name": "Ollama",
781 "name": "Ollama",
782 "base_url": "http://localhost:11434/v1/",
782 "base_url": "http://localhost:11434/v1/",
783− "type": "openai-compat",
783+ "type": "ollama"
786− "name": "Qwen 3 30B",
788− "context_window": 256000,
789− "default_max_tokens": 20000
797−#### LM Studio
789+#### Manual Model Configuration
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.
801 "providers": {
799 "providers": {
802− "lmstudio": {
800+ "ollama": {
803− "name": "LM Studio",
801+ "name": "Ollama",
804− "base_url": "http://localhost:1234/v1/",
802+ "base_url": "http://localhost:11434/v1/",
805− "type": "openai-compat",
803+ "type": "ollama",
806 "models": [
804 "models": [
808 "name": "Qwen 3 30B",
806 "name": "Qwen 3 30B",
809− "id": "qwen/qwen3-30b-a3b-2507",
807+ "id": "qwen3:30b",
810 "context_window": 256000,
808 "context_window": 256000,
811 "default_max_tokens": 20000
809 "default_max_tokens": 20000
812+ "auto_discovery": true