Use casesQuickstart

Point your OpenAI client at kibbu.

kibbu speaks the OpenAI API, so you keep your client and change three fields: the base URL to https://api.kibbu.io/v1, the API key to one from the kibbu console, and the model to one your fleet serves. The rest of your code stays as it is.

Before you start.

  1. Sign up at app.kibbu.io with your work email.
  2. Add your first node through the admin console.
  3. Open API keys in the sidebar and generate a key. The examples below read it from KIBBU_API_KEY.
  4. Open Models, pick a model and size, enable it, and click Copy model ID. The examples below read it from KIBBU_MODEL.

The three fields.

Endpoint, key and model. Each line marked changed is one of them; nothing else in the call is new.

TypeScript.

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.kibbu.io/v1",   // changed
  apiKey: process.env.KIBBU_API_KEY,     // changed
});

const r = await client.chat.completions.create({
  model: process.env.KIBBU_MODEL!,      // changed
  messages: [{ role: "user", content: "Summarise the evals." }],
});

console.log(r.choices[0].message.content);

Python.

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.kibbu.io/v1",  # changed
    api_key=os.environ["KIBBU_API_KEY"],     # changed
)

r = client.chat.completions.create(
    model=os.environ["KIBBU_MODEL"],         # changed
    messages=[{"role": "user", "content": "Summarise the evals."}],
)

print(r.choices[0].message.content)

curl.

curl https://api.kibbu.io/v1/chat/completions \
  -H "Authorization: Bearer $KIBBU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "'"$KIBBU_MODEL"'",
    "messages": [{ "role": "user", "content": "Summarise the evals." }]
  }'

In a platform you already run.

All four speak OpenAI. Test one workflow with kibbu, compare output quality, runtime and spend, then roll out.

PlatformThe change
DifyAdd kibbu as an OpenAI-compatible provider, then pick it per app.
DatabricksPoint the serving endpoint or notebook client at the kibbu base URL. The job definition stays as it is.
n8nEdit the OpenAI credential once. Every workflow using it follows.
LangflowSet the base URL and key on the OpenAI component. The rest of the flow is untouched.

What happens to each request.

  1. Route locally first. kibbu finds idle, plugged-in machines in your fleet and serves the request there, respecting battery and thermal state.
  2. The owner always wins. The moment someone is back at a machine, kibbu yields it.
  3. Fall back, transparently. When the fleet is at capacity, or the request needs more than your hardware can give it, it goes to OpenAI or Anthropic instead, priced, logged and attributed. Your application sees the same API either way.

When not to use kibbu.

Anything a person is waiting on in real time, like live chat, belongs on your current setup. So does work that needs a proprietary cloud model, and fleets too small to move an AI bill. kibbu.md lists every boundary, and the comparisons with Ollama on one machine and with an AI gateway say where each one fits better.

Start small

Find your first repeatable saving.

Bring one workflow and its current costs. We’ll help you evaluate its fit for your existing hardware.