Skip to main content
GET/v1/capabilities

List a node’s served capabilities

Discover the exact id, version, I/O mode and schema a provider serves. Pin the returned revision when calling it.

Connect your node · optional read-only discovery

No token is stored or sent to Foxlight. This browser sends it only to the API origin you enter.

Example descriptors · not a live node

Text to speech

tts@1.0.0

Generate progressive encoded speech audio with a mounted Skulk™ text-to-speech model.

I/O modeserver_streaming
Revisioned1d93ce3af76b6c
Nodeexample-node
ContractJSON Schema 2020-12
modelstringrequired

textstringrequired

voicestring

response_format"mp3"

streaming_intervalnumber

speednumber

instructstring

lang_codestring

temperaturenumber

top_pnumber

top_kinteger

repetition_penaltynumber

max_tokensinteger

seedinteger

Complete selected schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"model": {
"type": "string",
"minLength": 1
},
"text": {
"type": "string",
"minLength": 1
},
"voice": {
"type": "string",
"minLength": 1
},
"response_format": {
"const": "mp3"
},
"streaming_interval": {
"type": "number",
"exclusiveMinimum": 0
},
"speed": {
"type": "number",
"exclusiveMinimum": 0
},
"instruct": {
"type": "string"
},
"lang_code": {
"type": "string"
},
"temperature": {
"type": "number"
},
"top_p": {
"type": "number"
},
"top_k": {
"type": "integer",
"minimum": 0
},
"repetition_penalty": {
"type": "number",
"exclusiveMinimum": 0
},
"max_tokens": {
"type": "integer",
"minimum": 1
},
"seed": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
}
},
"required": [
"model",
"text"
],
"additionalProperties": false
}

Raw descriptor

{
"id": "tts",
"version": "1.0.0",
"title": "Text to speech",
"description": "Generate progressive encoded speech audio with a mounted Skulk text-to-speech model.",
"input_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"model": {
"type": "string",
"minLength": 1
},
"text": {
"type": "string",
"minLength": 1
},
"voice": {
"type": "string",
"minLength": 1
},
"response_format": {
"const": "mp3"
},
"streaming_interval": {
"type": "number",
"exclusiveMinimum": 0
},
"speed": {
"type": "number",
"exclusiveMinimum": 0
},
"instruct": {
"type": "string"
},
"lang_code": {
"type": "string"
},
"temperature": {
"type": "number"
},
"top_p": {
"type": "number"
},
"top_k": {
"type": "integer",
"minimum": 0
},
"repetition_penalty": {
"type": "number",
"exclusiveMinimum": 0
},
"max_tokens": {
"type": "integer",
"minimum": 1
},
"seed": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
}
},
"required": [
"model",
"text"
],
"additionalProperties": false
},
"output_schema": null,
"io_mode": "server_streaming",
"input_chunk_schema": null,
"output_chunk_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"model": {
"type": "string"
},
"format": {
"const": "mp3"
},
"chunk_index": {
"type": "integer",
"minimum": 0
},
"sample_rate": {
"type": "integer",
"minimum": 1
},
"is_partial": {
"type": "boolean"
}
},
"required": [
"model",
"format",
"chunk_index",
"is_partial"
],
"additionalProperties": false
},
"annotations": {
"modality": "audio",
"latency": "interactive",
"runtime": "mlx_audio",
"stability": "experimental"
}
}

Call it · supply a schema-valid payload

session = await context.stream_capability(
"example-node", "tts",
"1.0.0", "ed1d93ce3af76b6c",
payload,
)