#Subject: Local AI Liberty: Why block custom OpenAI-compatible models?

1 messages · Page 1 of 1 (latest)

foggy plover
#

Message: Hi team. I'm a user running Clawdbot (v2026.1.24-3) on WSL2, connecting to a local LM Studio (RTX 5060 Ti).

My setup is 100% correct, and curl confirms the model is responding perfectly. However, Clawdbot throws an Unknown model error just because I'm using a local model name: openai/openai-gpt-oss-20b-abliterated-uncensored-neo-imatrix.

In an open-source automation tool, it feels like an absurd limitation to hardcode allowed model IDs and block local OpenAI-compatible endpoints that don't match your internal list.

Can we get a fix to allow ANY model ID when a custom baseUrl is provided? Local AI users need this freedom.

swift yokeBOT
#

Hey! I looked into the model validation code. The issue is that Clawdbot checks if your model is in a known registry, and when it's not found, it only creates a fallback model if you have provider configuration set up.

For local LM Studio (or any OpenAI-compatible endpoint), you need to configure the provider in your config. Here's what to add:

{
  models: {
    providers: {
      "openai-local": {
        // Point to your LM Studio endpoint
        baseUrl: "http://localhost:1234/v1",
        // Optional: specify API type (usually "openai-chat-completions" for LM Studio)
        api: "openai-chat-completions",
        // No need to list models - they'll be accepted dynamically!
        models: []
      }
#
    }
  },
  agents: {
    defaults: {
      model: {
        // Use the provider name you defined above
        primary: "openai-local/openai-gpt-oss-20b-abliterated-uncensored-neo-imatrix"
      }
    }
  }
}

Key points:

  1. Define a provider with baseUrl pointing to your local endpoint
  2. Set models: [] (empty array) - this triggers the fallback logic that accepts any model ID
#
  1. Reference it as provider-name/model-id

The empty models: [] array is the trick - it tells Clawdbot "I know what I'm doing, accept any model ID for this provider." This is the intended behavior for custom/local endpoints.

Let me know if that works! 🦐