# Kilo Code

Add Laminarity as a custom OpenAI-compatible Kilo Code provider with model discovery and explicit capabilities.

> Verification: contract-tested; checked 2026-09-01; Kilo Code CLI 7.5.6 — The real CLI loads the trusted configuration and model list, sends max_tokens, and parses a streaming Chat Completions response against a local contract server. Production-key certification is tracked separately.

## Add a custom provider

Open Kilo Code Settings, choose Providers, select Custom provider, and use `laminarity` as the provider id. Select OpenAI Compatible, enter `https://api.laminarity.ai/v1`, and provide a Laminarity project key.

Kilo can fetch models from the authenticated OpenAI-compatible `/models` endpoint. Review the returned list before saving because project policy and price caps can change it.

## Trusted CLI configuration

For the CLI, use Kilo's documented `openai-compatible` provider id. Put this in Kilo's trusted global config or pass it through `KILO_CONFIG`; do not commit it as a project-level `kilo.json` or `opencode.json`.

Kilo intentionally refuses `{env:...}` resolution in repository config because an untrusted repository could otherwise point the key at an attacker-controlled base URL. A connected credential from the Providers UI is the safer choice for project use.

```json
{
  "$schema": "https://app.kilo.ai/config.json",
  "model": "openai-compatible/auto",
  "provider": {
    "openai-compatible": {
      "options": {
        "apiKey": "{env:LAMINARITY_API_KEY}",
        "baseURL": "https://api.laminarity.ai/v1"
      },
      "models": {
        "auto": {
          "name": "Laminarity Auto",
          "tool_call": true,
          "limit": { "context": 64000, "output": 16000 }
        }
      }
    }
  }
}
```

## Capabilities and variants

Declare `tool_call`, `reasoning`, attachment support, and token limits for concrete models rather than relying on custom-model fallbacks. Add reasoning variants only to concrete models and only for effort values advertised by `/v1/models`.

Use `openai-compatible/auto` in the CLI, or `laminarity/auto` when that is the provider id created through the UI. A concrete id pins one model and disables Laminarity fallback.

## Verify

Confirm the provider appears in `kilo models`, run a short text request, then run a tool-using request. If a model is missing, refresh discovery and confirm the same key can retrieve it from `/v1/models`. Treat a warning that an environment reference was ignored as evidence that the config is in an untrusted project location; move the credential configuration to a trusted location.

## Upstream documentation

- [Kilo Code custom models](https://kilo.ai/docs/code-with-ai/agents/custom-models)
