Adding Custom Providers
Beyond the 23 built-in providers, you can add custom providers through the plugin system.
Plugin Providers
Section titled “Plugin Providers”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
Implementation
Section titled “Implementation”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 fileexport 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.
OpenAI-Compatible Endpoints
Section titled “OpenAI-Compatible Endpoints”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:
- Go to Settings > Providers > OpenAI
- Set the Base URL to your endpoint (e.g.,
http://localhost:8000/v1) - Set the API key if required
This works with vLLM, llama.cpp server, LocalAI, and other OpenAI-compatible services.
Ollama
Section titled “Ollama”For local models, Ollama is the recommended approach. It’s a built-in provider that requires no API key:
- Install and run Ollama on your machine
- Pull models:
ollama pull llama3orollama pull nomic-embed-text - 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.