---
title: "Capabilities"
sidebar_label: "Capabilities"
description: "Kotlin binding reference: Capabilities."
---

<!-- Generated by tools/api_reference/generate_api_docs.py. Do not edit. -->

//[clika-runtime](../../../index.md)/[io.clika.modelverse](../index.md)/[Capabilities](index.md)

# Capabilities

[common]\
data class [Capabilities](index.md)(val inputModalities: [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt;, val outputModalities: [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt;, val hasChatTemplate: [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html), val contextLength: [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html), val maxImagesPerRequest: [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html), val thinking: [ThinkingControl](../ThinkingControl/index.md), val defaults: [GenerationConfig](../GenerationConfig/index.md), val family: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html), val modelType: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html), val device: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html), val voices: [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt; = emptyList(), val languages: [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt; = emptyList(), val needsReference: [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false, val speakKnobs: [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[SpeakKnob](../SpeakKnob/index.md)&gt; = emptyList(), val visionTasks: [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt; = emptyList(), val labels: [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt; = emptyList(), val openVocabulary: [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false, val embeddingDim: [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) = 0, val defaultImageWidth: [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) = 0, val defaultImageHeight: [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) = 0, val defaultFrames: [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) = 0, val defaultFps: [Double](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html) = 0.0, val metricDepth: [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false, val supportsRepetitionKnobs: [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false, val supportsTools: [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false, val toolCallFormat: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html) = &quot;&quot;, val templateRendersTools: [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false)

What a loaded model can take and give, read from the checkpoint's documents and the family's registration when the model opens. A consumer greys out the controls a model cannot serve from this and nothing else.

## Constructors

| | |
|---|---|
| [Capabilities](Capabilities.md) | [common]<br>constructor(inputModalities: [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt;, outputModalities: [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt;, hasChatTemplate: [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html), contextLength: [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html), maxImagesPerRequest: [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html), thinking: [ThinkingControl](../ThinkingControl/index.md), defaults: [GenerationConfig](../GenerationConfig/index.md), family: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html), modelType: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html), device: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html), voices: [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt; = emptyList(), languages: [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt; = emptyList(), needsReference: [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false, speakKnobs: [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[SpeakKnob](../SpeakKnob/index.md)&gt; = emptyList(), visionTasks: [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt; = emptyList(), labels: [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt; = emptyList(), openVocabulary: [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false, embeddingDim: [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) = 0, defaultImageWidth: [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) = 0, defaultImageHeight: [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) = 0, defaultFrames: [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) = 0, defaultFps: [Double](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html) = 0.0, metricDepth: [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false, supportsRepetitionKnobs: [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false, supportsTools: [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false, toolCallFormat: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html) = &quot;&quot;, templateRendersTools: [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false) |

## Properties

| Name | Summary |
|---|---|
| [contextLength](contextLength.md) | [common]<br>val [contextLength](contextLength.md): [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)<br>The context window the model loaded with, in tokens. |
| [defaultFps](defaultFps.md) | [common]<br>val [defaultFps](defaultFps.md): [Double](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html) = 0.0 |
| [defaultFrames](defaultFrames.md) | [common]<br>val [defaultFrames](defaultFrames.md): [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) = 0<br>The frame count and the frame rate a video-generation request of zeros takes (a video-generation model; 0 otherwise). |
| [defaultImageHeight](defaultImageHeight.md) | [common]<br>val [defaultImageHeight](defaultImageHeight.md): [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) = 0 |
| [defaultImageWidth](defaultImageWidth.md) | [common]<br>val [defaultImageWidth](defaultImageWidth.md): [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) = 0<br>The picture size an image-generation request of 0 by 0 takes (an image-generation model; 0 otherwise). |
| [defaults](defaults.md) | [common]<br>val [defaults](defaults.md): [GenerationConfig](../GenerationConfig/index.md)<br>The sampling defaults the checkpoint ships (`generation_config.json`); a zero temperature decodes greedily. |
| [device](device.md) | [common]<br>val [device](device.md): [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)<br>The device the weights landed on, as the compute API's name (`CPU`; an accelerator among several carries its ordinal, `CUDA:1`). |
| [embeddingDim](embeddingDim.md) | [common]<br>val [embeddingDim](embeddingDim.md): [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) = 0<br>The width of the vectors an embedding model answers; 0 for every other model. |
| [family](family.md) | [common]<br>val [family](family.md): [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)<br>The model family as the library names it (`qwen`, `llama`). |
| [hasChatTemplate](hasChatTemplate.md) | [common]<br>val [hasChatTemplate](hasChatTemplate.md): [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)<br>True when the chat route renders a template: the checkpoint's own, or its family's. |
| [inputModalities](inputModalities.md) | [common]<br>val [inputModalities](inputModalities.md): [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt;<br>The modalities the model's requests may carry, in the library's own spellings: `text`, `audio`, `vision`, `video`, `bounding_boxes`, `embedding`, `depth`, `segmentation`, `ranking`, `keypoints`. A model whose inputs carry `vision` takes images in its turns ([ChatMessage.images](../ChatMessage/images.md)); [maxImagesPerRequest](maxImagesPerRequest.md) says how many one request may carry. |
| [labels](labels.md) | [common]<br>val [labels](labels.md): [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt;<br>A detector's own label table, in id order; empty for an open-vocabulary detector (its labels are the request's) and for every other model. |
| [languages](languages.md) | [common]<br>val [languages](languages.md): [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt;<br>The language codes a speech model declares; empty when it declares none. |
| [maxImagesPerRequest](maxImagesPerRequest.md) | [common]<br>val [maxImagesPerRequest](maxImagesPerRequest.md): [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)<br>The most images one request may carry across all of its turns: the model's image slots for a model that takes images, 0 for one that does not. A request past it is refused before any decode. |
| [metricDepth](metricDepth.md) | [common]<br>val [metricDepth](metricDepth.md): [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false<br>True when a depth model's values are meters; false for relative depth (larger is closer). |
| [modelType](modelType.md) | [common]<br>val [modelType](modelType.md): [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)<br>The checkpoint's own type (`qwen3`, `llama`). |
| [needsReference](needsReference.md) | [common]<br>val [needsReference](needsReference.md): [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false<br>True when a text-to-speech model conditions every utterance on a reference voice ([TtsModel.speak](../TtsModel/speak.md) with a [VoiceReference](../VoiceReference/index.md)); a request without one is refused and ends in [SpeakListener.onError](../SpeakListener/onError.md). False for a model that speaks its own voice, and for every model that is not a text-to-speech model. |
| [openVocabulary](openVocabulary.md) | [common]<br>val [openVocabulary](openVocabulary.md): [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false<br>True for a detector that looks for the phrases a request names ([DetectOptions.labels](../DetectOptions/labels.md)). |
| [outputModalities](outputModalities.md) | [common]<br>val [outputModalities](outputModalities.md): [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt;<br>The modalities a reply carries, in the same spellings (`text`). |
| [speakKnobs](speakKnobs.md) | [common]<br>val [speakKnobs](speakKnobs.md): [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[SpeakKnob](../SpeakKnob/index.md)&gt;<br>The synthesis knobs a text-to-speech model reads, each with the range the binding accepts and the value that keeps the family's own default; empty for every other model. |
| [supportsRepetitionKnobs](supportsRepetitionKnobs.md) | [common]<br>val [supportsRepetitionKnobs](supportsRepetitionKnobs.md): [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false<br>True when the library carries the repetition knobs ([GenerationConfig.repetitionPenalty](../GenerationConfig/repetitionPenalty.md), [GenerationConfig.noRepeatNgramSize](../GenerationConfig/noRepeatNgramSize.md)); false refuses any value but their defaults. |
| [supportsTools](supportsTools.md) | [common]<br>val [supportsTools](supportsTools.md): [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false<br>True when the model takes tool definitions and its replies' calls are read: it has a chat template whose call syntax a known format reads. |
| [templateRendersTools](templateRendersTools.md) | [common]<br>val [templateRendersTools](templateRendersTools.md): [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) = false<br>True when the chat template renders the offered tools itself (a tools block in the prompt). |
| [thinking](thinking.md) | [common]<br>val [thinking](thinking.md): [ThinkingControl](../ThinkingControl/index.md)<br>The reasoning controls the model admits. |
| [toolCallFormat](toolCallFormat.md) | [common]<br>val [toolCallFormat](toolCallFormat.md): [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)<br>The call format stamped at the load: the first of the family's formats the chat template writes (`hermes`, `mistral`, `llama3_json`, `pythonic`, `qwen_xml`), else `generic`, the fallback reader, a model without a template included; whether the model takes tools is [supportsTools](supportsTools.md). |
| [visionTasks](visionTasks.md) | [common]<br>val [visionTasks](visionTasks.md): [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt;<br>The tasks a vision model serves, as the [VisionTask](../VisionTask/index.md) constants spell them ([VisionTask.DETECT](../VisionTask/DETECT.md), [VisionTask.DEPTH](../VisionTask/DEPTH.md), [VisionTask.OCR](../VisionTask/OCR.md), [VisionTask.EMBED](../VisionTask/EMBED.md), [VisionTask.CLASSIFY](../VisionTask/CLASSIFY.md)); a [VisionModel.detect](../VisionModel/detect.md) on a model whose list lacks the task ends in [VisionListener.onError](../VisionListener/onError.md). Empty for every other model. |
| [voices](voices.md) | [common]<br>val [voices](voices.md): [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt;<br>The preset voices a text-to-speech model names; empty for a model that clones the reference voice it is given, and for every model that is not a speech model. |