Skip to content

Adding Custom Providers

Beyond the 23 built-in providers, you can add custom providers through the plugin system.

Plugins can register new AI providers that appear alongside built-in ones in the Settings UI. This is useful for:

  • Proprietary or internal LLM endpoints
  • Custom model hosting (e.g., vLLM, TGI)
  • Specialized embedding or image generation services
  • Proxy services with custom authentication

A plugin exposes providers through its providers export. Each provider entry declares a definition (the implementation), display metadata, and its capabilities so KinBot knows where to use it.

// In your plugin's main file
export const providers = {
'my-llm': {
definition: myProviderImplementation,
displayName: 'My Custom LLM',
capabilities: ['llm', 'embedding'],
noApiKey: false,
apiKeyUrl: 'https://my-service.com/keys',
},
}

KinBot automatically registers plugin providers with a plugin_<name>_ prefix (e.g., plugin_my-plugin_my-llm). Once registered, the provider appears in Settings > Providers alongside built-in ones and can be configured with an API key and base URL.

Many self-hosted solutions expose an OpenAI-compatible API. For these, you can often use the built-in OpenAI or OpenRouter provider with a custom base URL, without needing a plugin:

  1. Go to Settings > Providers > OpenAI
  2. Set the Base URL to your endpoint (e.g., http://localhost:8000/v1)
  3. Set the API key if required

This works with vLLM, llama.cpp server, LocalAI, and other OpenAI-compatible services.

For local models, Ollama is the recommended approach. It’s a built-in provider that requires no API key:

  1. Install and run Ollama on your machine
  2. Pull models: ollama pull llama3 or ollama pull nomic-embed-text
  3. In KinBot, configure the Ollama provider with the base URL (default: http://localhost:11434)

From Docker, use http://host.docker.internal:11434 instead of localhost.