{
  "id": "ollama",
  "doctorContract": {
    "configRepair": true
  },
  "activation": {
    "onStartup": true
  },
  "enabledByDefault": true,
  "providers": [
    "ollama",
    "ollama-cloud"
  ],
  "providerCatalogEntry": "./provider-discovery.js",
  "providerRequest": {
    "providers": {
      "ollama": {
        "family": "ollama"
      },
      "ollama-cloud": {
        "family": "ollama-cloud"
      }
    }
  },
  "modelPricing": {
    "providers": {
      "ollama": {
        "external": false
      },
      "ollama-cloud": {
        "external": true
      }
    }
  },
  "syntheticAuthRefs": [
    "ollama"
  ],
  "nonSecretAuthMarkers": [
    "ollama-local"
  ],
  "setup": {
    "providers": [
      {
        "id": "ollama",
        "envVars": [
          "OLLAMA_API_KEY"
        ]
      },
      {
        "id": "ollama-cloud",
        "envVars": [
          "OLLAMA_API_KEY"
        ]
      }
    ]
  },
  "providerAuthChoices": [
    {
      "provider": "ollama",
      "method": "local",
      "choiceId": "ollama",
      "appGuidedDiscovery": true,
      "appGuidedActionLabel": "Choose connection",
      "choiceLabel": "Ollama",
      "choiceHint": "Connect to an Ollama server and select a cloud or local model",
      "icon": "https://cdn.simpleicons.org/ollama",
      "website": "https://ollama.com/download",
      "groupId": "ollama",
      "groupLabel": "Ollama",
      "groupHint": "Cloud and local open models"
    },
    {
      "provider": "ollama-cloud",
      "method": "api-key",
      "choiceId": "ollama-cloud",
      "appGuidedSecret": true,
      "choiceLabel": "Ollama Cloud",
      "choiceHint": "Hosted models via ollama.com",
      "icon": "https://cdn.simpleicons.org/ollama",
      "website": "https://ollama.com/download",
      "groupId": "ollama",
      "groupLabel": "Ollama",
      "groupHint": "Cloud and local open models",
      "optionKey": "ollamaCloudApiKey",
      "cliFlag": "--ollama-cloud-api-key",
      "cliOption": "--ollama-cloud-api-key <key>",
      "cliDescription": "Ollama Cloud API key"
    }
  ],
  "modelCatalog": {
    "modelsDev": {
      "ollama-cloud": "ollama-cloud"
    },
    "runtimeAugment": true,
    "providers": {
      "ollama-cloud": {
        "baseUrl": "https://ollama.com",
        "api": "ollama",
        "models": [
          {
            "id": "kimi-k2.5",
            "status": "deprecated",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 262144,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "kimi-k2.6",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 262144,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "kimi-k2.7-code",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 262144,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "kimi-k3",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "cost": {
              "input": 3,
              "output": 15,
              "cacheRead": 0.3
            },
            "contextWindow": 1048576,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true,
              "codeMode": "capable"
            }
          },
          {
            "id": "deepseek-v4-flash",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 1048576,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true,
              "codeMode": "capable"
            }
          },
          {
            "id": "deepseek-v4-flash:0731",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 1048576,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "deepseek-v4-flash:preview",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 1048576,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "deepseek-v4-pro",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 1048576,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true,
              "codeMode": "capable"
            }
          },
          {
            "id": "deepseek-v4-pro:0813",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 1048576,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "deepseek-v4-pro:preview",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 524288,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "gemma4",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 262144,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "gemma4:31b",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 262144,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "glm-5.1",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 202752,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true,
              "codeMode": "capable"
            }
          },
          {
            "id": "glm-5.2",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 1000000,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true,
              "codeMode": "capable"
            }
          },
          {
            "id": "gpt-oss:120b",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 131072,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "gpt-oss:20b",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 131072,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "minimax-m2.7",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 196608,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "minimax-m3",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 524288,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "mistral-large-3:675b",
            "reasoning": false,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 262144,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "nemotron-3-nano:30b",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 262144,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "nemotron-3-super",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 262144,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "nemotron-3-ultra",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 262144,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "qwen3.5",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 262144,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          },
          {
            "id": "qwen3.5:397b",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 262144,
            "maxTokens": 8192,
            "compat": {
              "supportsTools": true,
              "supportsUsageInStreaming": true
            }
          }
        ]
      }
    },
    "discovery": {
      "ollama": "refreshable",
      "ollama-cloud": "refreshable"
    }
  },
  "contracts": {
    "embeddingProviders": [
      "ollama"
    ],
    "tools": [
      "node_inference"
    ],
    "webSearchProviders": [
      "ollama"
    ]
  },
  "configSchema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "discovery": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "enabled": {
            "type": "boolean"
          }
        }
      },
      "nodeInference": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "enabled": {
            "type": "boolean"
          }
        }
      },
      "webSearch": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "baseUrl": {
            "type": "string"
          }
        }
      }
    }
  },
  "uiHints": {
    "discovery": {
      "label": "Model Discovery",
      "help": "Plugin-owned controls for Ollama model auto-discovery."
    },
    "discovery.enabled": {
      "label": "Enable Discovery",
      "help": "When false, OpenClaw keeps the Ollama plugin available but skips implicit startup discovery of ambient local or remote Ollama models."
    },
    "nodeInference": {
      "label": "Node Inference",
      "help": "Controls whether this node host advertises its local Ollama models to agents."
    },
    "nodeInference.enabled": {
      "label": "Enable Node Inference",
      "help": "When false, this node host does not advertise or accept Ollama node-inference commands."
    },
    "webSearch": {
      "label": "Web Search",
      "help": "Plugin-owned Ollama web search connection settings.",
      "advanced": true
    },
    "webSearch.baseUrl": {
      "label": "Web Search Base URL",
      "help": "Optional Ollama host override used only for web search.",
      "advanced": true
    }
  }
}
