Own model in the cloud
Since v0.89-beta the administrator of a hosted instance (KB Cloud Lite, Pro and AI Agent) can connect an own model in Organization settings: the AI assistant then no longer thinks on our AI but on a service you specify — typically your PC with a graphics card at home or at work, or a provider of your choice (OpenAI, OpenRouter or any other OpenAI-compatible API — then all you need is their address and your API key, no tunnel).
What you get:
- Your hardware, from anywhere. Turn on the PC with the model at home, sign in to killBottleneck from the office, the train or your phone — and the assistant thinks on your machine.
- Turns without quota. Turns on your own model do not count towards the plan's weekly quota. You pay for the compute (electricity, or your provider's bill), so we charge nothing for them.
- Pages are written by your model too. Presentations and overviews from the Pages panel don't use the quota either. On a slow PC behind a tunnel they may come out shorter or end with an error (a single call may take at most 120 s); at a provider such as OpenAI they work in full.
- Your data goes where you say. The assistant's conversations, map extracts and the material for pages are sent to the address you enter — not to us or to our AI supplier.
What stays on our AI even with an own model (and uses the quota): reading photos in the assistant and voice transcription. Images through the own model will come in a later version.
What you need
- A model with an OpenAI-compatible API (the address usually ends in
/v1). At home that is most often llama.cppllama-serveror Ollama (it speaks the OpenAI format on/v1); a provider gives you the address, the model name and a key. - A public HTTPS address our server can reach. Addresses in your network (
192.168.…,10.…),localhostand Tailscale addresses (100.x) cannot be used from the cloud — our server must not see them (this protects the other customers on a shared machine). The answer is a tunnel, see below. - A key on the model. A model on the internet without a key means anyone can compute on it. Turn it on (
llama-server --api-key …) and enter the same key in killBottleneck.
Exposing a home PC safely
Detailed step-by-step guide
Installing llama.cpp, the key, the tunnel, autostart and ten safety rules for Windows, Mac and Linux: A model at home on your PC.
Never open the model's port straight to the internet
Port forwarding on your router exposes the model (and often the rest of your PC) to the whole world without encryption. Use one of the paths below — all give you HTTPS for free and need no open port.
A) Cloudflare Tunnel (the easiest to try)
# 1) the model with a key, on the local address only
llama-server -m model.gguf --port 8080 --host 127.0.0.1 --api-key MY-SECRET-KEY
# 2) the tunnel — prints a public address https://…trycloudflare.com
cloudflared tunnel --url http://127.0.0.1:8080The quick tunnel's address changes on every start; for permanent use create a named tunnel on your own domain (free, guide at Cloudflare).
B) Tailscale Funnel — if you use Tailscale, tailscale funnel 8080 exposes the port on a public address https://pc.tailnet.ts.net. Note: the tailnet address itself (100.x) does not work from the cloud, Funnel does.
C) Your own reverse proxy (Caddy, nginx) on a public server with HTTPS and a key check. For Ollama, which has no key of its own, a proxy that checks the Authorization header is the only right way.
Setting it up in killBottleneck
- Organization settings → Own model or API key.
- Fill in the API address (e.g.
https://my-gpu.example.com/v1), the model (exact name at your service, e.g.gpt-oss:20b) and, if needed, the API key. For a provider: OpenAI =https://api.openai.com/v1+ ask-…key, OpenRouter =https://openrouter.ai/api/v1+ the model name in their form (e.g.openai/gpt-4.1-mini) + ask-or-…key. - Test connection — killBottleneck calls
/modelsand a short chat request. Until the test passes, look for the problem in the tunnel or the model name, not in killBottleneck. - Turn on The assistant uses your own model and Save. From then on every assistant turn goes to your model; the AI credits section shows that turns are not counted.
The key is never returned to the browser and sits encrypted in the instance database. It only ever leaves for the address you entered — if you change the address to another service and do not enter a new key, the old one is deleted (it must not travel to a foreign service).
Advanced: extra fields sent with every call (JSON), e.g. turning thinking off in llama-server: {"chat_template_kwargs":{"enable_thinking":false}}.
When the own model does not respond
The assistant says plainly that your own model is not responding — and nothing silently switches to our AI (you chose the own model on purpose). Check that the PC is on, the tunnel is up and the key matches; or turn the own model off in administration and the assistant returns to our AI with the quota. The reply must arrive within 100 s (tunnels cut longer replies) — on a weak PC pick a smaller model.
Models that have proven themselves
The assistant calls tools (creates steps, reads My day…), so the model must support tool calling. Verified: gpt-oss:20b (16 GB graphics card), Qwen3.8 (27B, from 24 GB). Smaller models often answer but call tools unreliably. For a third-party provider the recommendations on the configuration page apply — avoid reasoning models (gpt-5-, o4-).
What it means legally
You choose the service the own model points to and you are responsible for it — it is not our sub-processor. Our commitment "AI always in the EU, no logs" applies to our AI; for the own model it depends on where you point it (a home PC = data never leaves your house). The exact wording is in the Terms (art. 9) and the Data processing agreement (art. 6.4).

