Kitta AI Docs
Kitta CLI

Command reference

Parameters, defaults and constraints generated from CLI schemas and help.

CLI version: 0.2.0.

Generated by scripts/generate-audio-cli-docs.mjs from the built CLI and operation contract.

API-required fields are separate from CLI workflow options. TTS text can come from --text-file or --text -. Binary downloads require --output. A default of — means no CLI default; the server may apply its own defaults.

Only commands backed by a server idempotency key expose --idempotency-key. Create operations with retry=idempotent in their schema may retry transient failures. Read the recovery guide.

Recovery and billing

kitta files upload

kitta files upload --help
kitta files upload --schema

HTTP: POST /api/open/v1/uploads. Retry: never.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--file <value>Required. file—
--type <value>Required. type—

API field constraints

FlagRequiredSchema
--fileyes{"type":"string","format":"binary"}
--typeyes{"type":"string","enum":["audio","image","video"]}

kitta auth status

kitta auth status --help
kitta auth status --schema

HTTP: GET /api/open/v1/profile. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—

kitta auth profile update

kitta auth profile update --help
kitta auth profile update --schema

HTTP: POST /api/open/v1/profile. Retry: never.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—

kitta audio models list

kitta audio models list --help
kitta audio models list --schema

HTTP: GET /api/open/v3/speech/tts/capabilities. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—

kitta audio voices list

kitta audio voices list --help
kitta audio voices list --schema

HTTP: GET /api/open/v3/voices. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--page <value>page—
--page-size <value>pageSize—
--search <value>search—
--include-personalincludePersonal—
--no-include-personalSet includePersonal to false—
--allFetch all pages—
--max-pages <count>Maximum pages to fetch100
--language <code>Filter fetched voices by primary or supported language—

API field constraints

FlagRequiredSchema
--pageno{"type":"integer","minimum":1,"default":1}
--page-sizeno{"type":"integer","minimum":1,"maximum":100,"default":20}
--searchno{"type":"string"}
--include-personalno{"type":"boolean","default":false}

kitta audio voices get

kitta audio voices get --help
kitta audio voices get --schema

HTTP: GET /api/open/v3/voices/{voiceId}. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--voice <value>Required. voiceId—

API field constraints

FlagRequiredSchema
--voiceyes{"type":"string"}

kitta audio tts

kitta audio tts --help
kitta audio tts --schema

HTTP: POST /api/open/v3/speech/tts/jobs. Retry: idempotent.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--text <value>Required. text—
--voice <value>Required. voiceId—
--model <value>Public TTS engine model id. When omitted, the platform uses the default engine for the selected voice provider, such as fishaudio-s21pro-flash for Kitta AI voices.—
--format <value>format—
--speed <value>speed—
--volume <value>volume—
--pitch <value>pitch—
--stability <value>stability—
--similarity <value>similarity—
--language <value>language—
--emotion <value>emotion—
--instruction <value>instruction—
--text-normalizationtextNormalization—
--no-text-normalizationSet textNormalization to false—
--filter-emojiExperimental, disabled by default. Currently removes only selected decorative kaomoji, not graphical emoji. Independent of textNormalization. Ambiguous text is preserved. Billing uses filtered text; an empty result returns 400 before charging.—
--no-filter-emojiSet filterEmoji to false—
--idempotency-key <key>Stable submission key; retry policy is shown by --schema—
--output <path>Save binary output to a new file—
--text-file <path>Read UTF-8 text—
--waitWait for downloadable audio—
--wait-timeout <seconds>Maximum local wait600

API field constraints

FlagRequiredSchema
--textyes{"type":"string","minLength":1,"maxLength":10000}
--voiceyes{"type":"string","minLength":1}
--modelno{"type":"string","enum":["fishaudio-s21pro","fishaudio-s2pro","fishaudio-s1","fishaudio-s21pro-flash","fishaudio-s2pro-enterprise","minimax-2.8-turbo","minimax-2.8-hd","minimax-2.6-turbo","minimax-2.6-hd","qwen3-tts-flash","qwen-audio-3.0-tts-plus","qwen-audio-3.0-tts-flash","cosyvoice-v3-flash","doubao-tts-2.0","elevenlabs-flash-v2.5","elevenlabs-multilingual-v2"],"description":"Public TTS engine model id. When omitted, the platform uses the default engine for the selected voice provider, such as fishaudio-s21pro-flash for Kitta AI voices."}
--formatno{"type":"string","enum":["mp3","wav"],"default":"mp3"}
--speedno{"type":"number","minimum":0.5,"maximum":2,"default":1}
--volumeno{"type":"number","minimum":-20,"maximum":20,"default":0}
--pitchno{"type":"number","minimum":-12,"maximum":12}
--stabilityno{"type":"number","minimum":0.5,"maximum":1.5}
--similarityno{"type":"number","minimum":0.5,"maximum":1.5}
--languageno{"type":"string","minLength":1,"maxLength":64}
--emotionno{"type":"string","minLength":1,"maxLength":64}
--instructionno{"type":"string","minLength":1,"maxLength":1600}
--text-normalizationno{"type":"boolean"}
--filter-emojino{"type":"boolean","default":false,"description":"Experimental, disabled by default. Currently removes only selected decorative kaomoji, not graphical emoji. Independent of textNormalization. Ambiguous text is preserved. Billing uses filtered text; an empty result returns 400 before charging."}

kitta audio jobs list

kitta audio jobs list --help
kitta audio jobs list --schema

HTTP: GET /api/open/v3/speech/tts/jobs. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--page <value>page—
--limit <value>limit—
--status <value>status—
--created-after <value>createdAfter—
--allFetch all pages—
--max-pages <count>Maximum pages to fetch100

API field constraints

FlagRequiredSchema
--pageno{"type":"integer","minimum":1,"default":1}
--limitno{"type":"integer","minimum":1,"maximum":100,"default":20}
--statusno{"type":"string","enum":["pending","processing","success","partial_fail","fail"]}
--created-afterno{"type":"string","format":"date-time"}

kitta audio jobs get

kitta audio jobs get --help
kitta audio jobs get --schema

HTTP: GET /api/open/v3/speech/tts/jobs/{jobId}. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--job <value>Required. jobId—

API field constraints

FlagRequiredSchema
--jobyes{"type":"string"}

kitta audio jobs download

kitta audio jobs download --help
kitta audio jobs download --schema

HTTP: GET /api/open/v3/speech/tts/jobs/{jobId}/audio. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--job <value>Required. jobId—
--downloaddownload—
--no-downloadSet download to false—
--output <path>Save binary output to a new file—

API field constraints

FlagRequiredSchema
--jobyes{"type":"string"}
--downloadno{"type":"boolean","default":false}

kitta audio jobs segment download

kitta audio jobs segment download --help
kitta audio jobs segment download --schema

HTTP: GET /api/open/v3/speech/tts/jobs/{jobId}/segments/{segmentIndex}. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--job <value>Required. jobId—
--segment <value>Required. segmentIndex—
--output <path>Save binary output to a new file—

API field constraints

FlagRequiredSchema
--jobyes{"type":"string"}
--segmentyes{"type":"integer","minimum":0}

kitta audio transcribe

kitta audio transcribe --help
kitta audio transcribe --schema

HTTP: POST /api/open/v1/speech/transcriptions. Retry: never.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--audio-url <value>Required. audio_url—
--language <value>language—
--ignore-timestampsignore_timestamps—
--no-ignore-timestampsSet ignore_timestamps to false—
--file-name <value>file_name—

API field constraints

FlagRequiredSchema
--audio-urlyes{"type":"string","format":"uri"}
--languageno{"type":"string"}
--ignore-timestampsno{"type":"boolean","default":false}
--file-nameno{"type":"string"}

kitta audio voices clone

kitta audio voices clone --help
kitta audio voices clone --schema

HTTP: POST /api/open/v1/voices. Retry: never.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--name <value>Required. Voice display name.—
--audio-file <values...>Required. Audio files used to create the voice model.—
--description <value>description—
--reference-text <value>Optional transcript text.—
--visibility <value>visibility—
--languages <value>JSON string array of language codes, such as ["zh","en"].—

API field constraints

FlagRequiredSchema
--nameyes{"type":"string","description":"Voice display name."}
--audio-fileyes{"type":"array","items":{"type":"string","format":"binary"},"description":"Audio files used to create the voice model."}
--descriptionno{"type":"string"}
--reference-textno{"type":"string","description":"Optional transcript text."}
--visibilityno{"type":"string","enum":["private","public"]}
--languagesno{"type":"string","description":"JSON string array of language codes, such as [\"zh\",\"en\"]."}

kitta audio voices design

kitta audio voices design --help
kitta audio voices design --schema

HTTP: POST /api/open/v1/voice-designs. Retry: never.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--prompt <value>Required. prompt—
--preview-text <value>Required. previewText—
--providers <values...>providers—
--idempotency-key <key>Stable submission key; retry policy is shown by --schema—

API field constraints

FlagRequiredSchema
--promptyes{"type":"string"}
--preview-textyes{"type":"string"}
--providersno{"type":"array","minItems":1,"maxItems":2,"items":{"type":"string","enum":["fishaudio","minimax"]},"default":["fishaudio","minimax"]}

kitta audio voices save

kitta audio voices save --help
kitta audio voices save --schema

HTTP: POST /api/open/v1/voice-designs/{designId}/voices. Retry: never.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--design <value>Required. designId—
--candidate <value>Required. candidateId—
--name <value>Required. name—
--description <value>description—
--visibility <value>visibility—
--language <value>Primary language of the saved voice. Defaults to the request language.—
--reference-text <value>referenceText—
--idempotency-key <key>Stable submission key; retry policy is shown by --schema—

API field constraints

FlagRequiredSchema
--designyes{"type":"string"}
--candidateyes{"type":"string"}
--nameyes{"type":"string","maxLength":100}
--descriptionno{"type":"string","maxLength":500}
--visibilityno{"type":"string","enum":["private","public"],"default":"private"}
--languageno{"type":"string","enum":["en","zh","ru","zh-hant","es","ja","ko","fr","ar","de","pt","hi","tr","it","id","th","pl","tl","uk","nl","ms","el","ro","vi"],"description":"Primary language of the saved voice. Defaults to the request language."}
--reference-textno{"type":"string","maxLength":150}

kitta audio voices preview

kitta audio voices preview --help
kitta audio voices preview --schema

HTTP: GET /api/open/v1/voice-designs/{designId}/candidates/{candidateId}/audio. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--design <value>Required. designId—
--candidate <value>Required. candidateId—
--output <path>Save binary output to a new file—

API field constraints

FlagRequiredSchema
--designyes{"type":"string"}
--candidateyes{"type":"string"}

kitta audio voices delete

kitta audio voices delete --help
kitta audio voices delete --schema

HTTP: DELETE /api/open/v1/voices/{voiceId}. Retry: never.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--voice <value>Required. voiceId—
--yesConfirm the destructive operation—

API field constraints

FlagRequiredSchema
--voiceyes{"type":"string"}

kitta audio voices update

kitta audio voices update --help
kitta audio voices update --schema

HTTP: PATCH /api/open/v1/voices/{voiceId}. Retry: never.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--voice <value>Required. voiceId—
--title <value>title—
--description <value>description—
--visibility <value>visibility—
--language <value>language—

API field constraints

FlagRequiredSchema
--voiceyes{"type":"string"}
--titleno{"type":"string","minLength":1,"maxLength":80}
--descriptionno{"type":"string","maxLength":500}
--visibilityno{"type":"string","enum":["public","private"]}
--languageno{"type":"string"}

kitta audio personal-voice generate

kitta audio personal-voice generate --help
kitta audio personal-voice generate --schema

HTTP: POST /api/open/v1/speech/voice-clone-tts/jobs. Retry: idempotent.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--source-audio-url <value>Required. Customer-owned or authorized reference audio URL downloadable by Kitta AI.—
--text <value>Required. text—
--voice-name <value>voice_name—
--file-name <value>file_name—
--model-id <value>model_id—
--format <value>format—
--speed <value>Speaking speed supported by all current TTS engines.—
--volume <value>Platform volume control. The service maps it to the selected TTS engine.—
--stability <value>Stability control for Kitta AI models.—
--similarity <value>Voice consistency control for Kitta AI models.—
--pitch <value>Pitch adjustment for MiniMax and Qwen models.—
--language <value>language—
--emotion <value>emotion—
--instruction <value>instruction—
--text-normalizationtext_normalization—
--no-text-normalizationSet text_normalization to false—
--idempotency-key <key>Stable submission key; retry policy is shown by --schema—
--output <path>Save binary output to a new file—
--waitWait for a terminal task state—
--wait-timeout <seconds>Maximum local wait600

API field constraints

FlagRequiredSchema
--source-audio-urlyes{"type":"string","format":"uri","description":"Customer-owned or authorized reference audio URL downloadable by Kitta AI."}
--textyes{"type":"string","minLength":1,"maxLength":5000}
--voice-nameno{"type":"string","minLength":1,"maxLength":100}
--file-nameno{"type":"string","minLength":1,"maxLength":255}
--model-idno{"type":"string","enum":["fishaudio-s21pro","fishaudio-s21pro-flash","fishaudio-s2pro","fishaudio-s1"],"default":"fishaudio-s21pro-flash"}
--formatno{"type":"string","enum":["mp3","wav"],"default":"mp3"}
--speedno{"type":"number","minimum":0.5,"maximum":2,"default":1,"description":"Speaking speed supported by all current TTS engines."}
--volumeno{"type":"number","minimum":-20,"maximum":20,"default":0,"description":"Platform volume control. The service maps it to the selected TTS engine."}
--stabilityno{"type":"number","minimum":0.5,"maximum":1.5,"default":1,"description":"Stability control for Kitta AI models."}
--similarityno{"type":"number","minimum":0.5,"maximum":1.5,"default":1,"description":"Voice consistency control for Kitta AI models."}
--pitchno{"type":"number","minimum":-12,"maximum":12,"default":0,"description":"Pitch adjustment for MiniMax and Qwen models."}
--languageno{"type":"string","maxLength":32}
--emotionno{"type":"string","maxLength":64}
--instructionno{"type":"string","maxLength":1600}
--text-normalizationno{"type":"boolean","default":true}

kitta audio personal-voice get

kitta audio personal-voice get --help
kitta audio personal-voice get --schema

HTTP: GET /api/open/v1/speech/voice-clone-tts/jobs/{jobId}. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--job <value>Required. jobId—

API field constraints

FlagRequiredSchema
--jobyes{"type":"string"}

kitta models list

kitta models list --help
kitta models list --schema

HTTP: GET /api/open/v1/media/models. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--media-type <value>mediaType—

API field constraints

FlagRequiredSchema
--media-typeno{"type":"string","enum":["image","video"]}

kitta image generate

kitta image generate --help
kitta image generate --schema

HTTP: POST /api/open/v1/media/images/jobs. Retry: idempotent.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--prompt <value>Required. prompt—
--model <value>model—
--image-url <value>image_url—
--image-urls <values...>Ordered reference images for edit mode. Do not combine with image_url. Limits depend on the selected model and resolution.—
--resolution <value>Use a verified model catalog variant; credits and reference limits vary by resolution.—
--mask-url <value>mask_url—
--generation-type <value>generation_type—
--response-format <value>response_format—
--aspect-ratio <value>aspect_ratio—
--idempotency-key <key>Stable submission key; retry policy is shown by --schema—
--output <path>Save binary output to a new file—
--waitWait for a terminal task state—
--wait-timeout <seconds>Maximum local wait600

API field constraints

FlagRequiredSchema
--promptyes{"type":"string"}
--modelno{"type":"string"}
--image-urlno{"type":"string","format":"uri"}
--image-urlsno{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","format":"uri"},"description":"Ordered reference images for edit mode. Do not combine with image_url. Limits depend on the selected model and resolution."}
--resolutionno{"type":"string","enum":["1k","2k","4k"],"default":"1k","description":"Use a verified model catalog variant; credits and reference limits vary by resolution."}
--mask-urlno{"type":"string","format":"uri"}
--generation-typeno{"type":"string","enum":["generate","edit"]}
--response-formatno{"type":"string","enum":["url","b64_json"]}
--aspect-rationo{"type":"string"}

kitta image jobs list

kitta image jobs list --help
kitta image jobs list --schema

HTTP: GET /api/open/v1/media/images/jobs. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--page <value>page—
--limit <value>limit—
--status <value>status—
--generation-type <value>generation_type—
--allFetch all pages—
--max-pages <count>Maximum pages to fetch100

API field constraints

FlagRequiredSchema
--pageno{"type":"integer","minimum":1,"maximum":10000}
--limitno{"type":"integer","minimum":1,"maximum":100}
--statusno{"type":"string","maxLength":64}
--generation-typeno{"type":"string","enum":["generate","edit"]}

kitta image jobs get

kitta image jobs get --help
kitta image jobs get --schema

HTTP: GET /api/open/v1/media/images/jobs/{jobId}. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--job <value>Required. jobId—

API field constraints

FlagRequiredSchema
--jobyes{"type":"string"}

kitta video generate

kitta video generate --help
kitta video generate --schema

HTTP: POST /api/open/v1/media/videos/jobs. Retry: idempotent.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--prompt <value>Required. prompt—
--model <value>model—
--references <values...>references—
--size <value>size—
--seconds <value>seconds—
--watermarkwatermark—
--no-watermarkSet watermark to false—
--privateprivate—
--no-privateSet private to false—
--idempotency-key <key>Stable submission key; retry policy is shown by --schema—
--output <path>Save binary output to a new file—
--waitWait for a terminal task state—
--wait-timeout <seconds>Maximum local wait600

API field constraints

FlagRequiredSchema
--promptyes{"type":"string"}
--modelno{"type":"string"}
--referencesno{"type":"array","items":{"type":"object","required":["role","url"],"properties":{"role":{"type":"string","enum":["start_frame","end_frame","reference"]},"url":{"type":"string","format":"uri"}}}}
--sizeno{"type":"string"}
--secondsno{"oneOf":[{"type":"string"},{"type":"number"}]}
--watermarkno{"type":"boolean"}
--privateno{"type":"boolean"}

kitta video jobs list

kitta video jobs list --help
kitta video jobs list --schema

HTTP: GET /api/open/v1/media/videos/jobs. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--page <value>page—
--limit <value>limit—
--status <value>status—
--allFetch all pages—
--max-pages <count>Maximum pages to fetch100

API field constraints

FlagRequiredSchema
--pageno{"type":"integer","minimum":1,"maximum":10000}
--limitno{"type":"integer","minimum":1,"maximum":100}
--statusno{"type":"string","maxLength":64}

kitta video jobs get

kitta video jobs get --help
kitta video jobs get --schema

HTTP: GET /api/open/v1/media/videos/jobs/{jobId}. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--job <value>Required. jobId—

API field constraints

FlagRequiredSchema
--jobyes{"type":"string"}

kitta video lip-sync generate

kitta video lip-sync generate --help
kitta video lip-sync generate --schema

HTTP: POST /api/open/v1/media/lip-sync/jobs. Retry: never.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--video-url <value>Required. video_url—
--audio-url <value>Required. audio_url—
--model <value>model—
--video-extensionWhen false, billing uses the shorter video/audio input. When true, billing uses audio duration and the provider extends the video.—
--no-video-extensionSet video_extension to false—
--output <path>Save binary output to a new file—
--waitWait for a terminal task state—
--wait-timeout <seconds>Maximum local wait600

API field constraints

FlagRequiredSchema
--video-urlyes{"type":"string","format":"uri"}
--audio-urlyes{"type":"string","format":"uri"}
--modelno{"type":["string","null"]}
--video-extensionno{"type":"boolean","default":false,"description":"When false, billing uses the shorter video/audio input. When true, billing uses audio duration and the provider extends the video."}

kitta video lip-sync jobs list

kitta video lip-sync jobs list --help
kitta video lip-sync jobs list --schema

HTTP: GET /api/open/v1/media/lip-sync/jobs. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--page <value>page—
--limit <value>limit—
--status <value>status—
--allFetch all pages—
--max-pages <count>Maximum pages to fetch100

API field constraints

FlagRequiredSchema
--pageno{"type":"integer","minimum":1,"default":1}
--limitno{"type":"integer","minimum":1,"maximum":50,"default":10}
--statusno{"type":"string"}

kitta video lip-sync jobs get

kitta video lip-sync jobs get --help
kitta video lip-sync jobs get --schema

HTTP: GET /api/open/v1/media/lip-sync/jobs/{jobId}. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--job <value>Required. jobId—

API field constraints

FlagRequiredSchema
--jobyes{"type":"string"}

kitta video dubbing generate

kitta video dubbing generate --help
kitta video dubbing generate --schema

HTTP: POST /api/open/v1/media/video-dubbing/jobs. Retry: idempotent.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--video-url <value>Required. video_url—
--text <value>Required. text—
--reference-id <value>Required. Kitta AI voice id—
--model-id <value>model_id—
--speed <value>Speaking speed supported by all current TTS engines.—
--volume <value>Platform volume control. The service maps it to the selected TTS engine.—
--stability <value>Stability control for Kitta AI models.—
--similarity <value>Voice consistency control for Kitta AI models.—
--pitch <value>Pitch adjustment for MiniMax and Qwen models.—
--language <value>language—
--emotion <value>emotion—
--instruction <value>instruction—
--text-normalizationtext_normalization—
--no-text-normalizationSet text_normalization to false—
--idempotency-key <key>Stable submission key; retry policy is shown by --schema—
--output <path>Save binary output to a new file—
--waitWait for a terminal task state—
--wait-timeout <seconds>Maximum local wait600

API field constraints

FlagRequiredSchema
--video-urlyes{"type":"string","format":"uri"}
--textyes{"type":"string","minLength":1,"maxLength":5000}
--reference-idyes{"type":"string","description":"Kitta AI voice id"}
--model-idno{"type":"string","enum":["fishaudio-s21pro","fishaudio-s2pro","fishaudio-s1","fishaudio-s21pro-flash","minimax-2.8-turbo","minimax-2.8-hd","minimax-2.6-turbo","minimax-2.6-hd","qwen3-tts-flash","qwen-audio-3.0-tts-plus","qwen-audio-3.0-tts-flash","cosyvoice-v3-flash","doubao-tts-2.0"]}
--speedno{"type":"number","minimum":0.5,"maximum":2,"default":1,"description":"Speaking speed supported by all current TTS engines."}
--volumeno{"type":"number","minimum":-20,"maximum":20,"default":0,"description":"Platform volume control. The service maps it to the selected TTS engine."}
--stabilityno{"type":"number","minimum":0.5,"maximum":1.5,"default":1,"description":"Stability control for Kitta AI models."}
--similarityno{"type":"number","minimum":0.5,"maximum":1.5,"default":1,"description":"Voice consistency control for Kitta AI models."}
--pitchno{"type":"number","minimum":-12,"maximum":12,"default":0,"description":"Pitch adjustment for MiniMax and Qwen models."}
--languageno{"type":"string","maxLength":32}
--emotionno{"type":"string","maxLength":64}
--instructionno{"type":"string","maxLength":1600}
--text-normalizationno{"type":"boolean","default":true}

kitta video dubbing jobs get

kitta video dubbing jobs get --help
kitta video dubbing jobs get --schema

HTTP: GET /api/open/v1/media/video-dubbing/jobs/{jobId}. Retry: read.

OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--schemaShow the offline command contract—
--dry-runValidate and preview without network or state writes—
--job <value>Required. jobId—

API field constraints

FlagRequiredSchema
--jobyes{"type":"string"}

kitta audio jobs wait

kitta audio jobs wait --help
kitta audio jobs wait --schema
OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--job <id>Required. TTS task ID—
--wait-timeout <seconds>Maximum local wait600
--output <path>Download once ready—
--schemaDescribe this workflow offline—
--dry-runValidate and preview without network access—

kitta audio jobs wait

kitta audio jobs wait --help
kitta audio jobs wait --schema
OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--job <id>Required. Existing task ID—
--wait-timeout <seconds>Maximum local wait600
--output <path>Download the first result artifact to a new file—
--schemaDescribe this workflow offline—
--dry-runValidate and preview without network access—

kitta audio jobs wait

kitta audio jobs wait --help
kitta audio jobs wait --schema
OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--job <id>Required. Existing task ID—
--wait-timeout <seconds>Maximum local wait600
--output <path>Download the first result artifact to a new file—
--schemaDescribe this workflow offline—
--dry-runValidate and preview without network access—

kitta audio jobs wait

kitta audio jobs wait --help
kitta audio jobs wait --schema
OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--job <id>Required. Existing task ID—
--wait-timeout <seconds>Maximum local wait600
--output <path>Download the first result artifact to a new file—
--schemaDescribe this workflow offline—
--dry-runValidate and preview without network access—

kitta audio jobs wait

kitta audio jobs wait --help
kitta audio jobs wait --schema
OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--job <id>Required. Existing task ID—
--wait-timeout <seconds>Maximum local wait600
--output <path>Download the first result artifact to a new file—
--schemaDescribe this workflow offline—
--dry-runValidate and preview without network access—

kitta audio jobs wait

kitta audio jobs wait --help
kitta audio jobs wait --schema
OptionDescriptionCLI default
-V, --versionoutput the version number—
--jsonMachine-readable JSON output—
--api-url <origin>Kitta API originhttps://kittaai.com
--timeout <seconds>Per-request timeout30
--job <id>Required. Existing task ID—
--wait-timeout <seconds>Maximum local wait600
--output <path>Download the first result artifact to a new file—
--schemaDescribe this workflow offline—
--dry-runValidate and preview without network access—

Authentication and Skills workflows

kitta auth login

Usage: kitta auth login [options]

Validate an API key and store it in the system credential manager

Options:
  -h, --help  display help for command

kitta auth logout

Usage: kitta auth logout [options]

Remove the stored credential for this API origin

Options:
  -h, --help  display help for command

kitta skills generate

Usage: kitta skills generate [options]

Write version-matched CLI reference and audio workflows offline

Options:
  --output-dir <path>  New skill directory (default:
                       ".agents/skills/kitta-audio")
  -h, --help           display help for command

Login reads an API key from a hidden prompt. Logout removes only the keyring credential for the current origin. Skills generation creates a new directory offline and does not overwrite an existing directory.

Batch workflows

kitta batch validate

Usage: kitta batch validate [options] <manifest>

Validate a versioned JSON batch manifest without network access

Arguments:
  manifest    Batch manifest JSON file

Options:
  -h, --help  display help for command

kitta batch run

Usage: kitta batch run [options] <manifest>

Run a new recoverable batch

Arguments:
  manifest               Batch manifest JSON file

Options:
  --concurrency <count>  Override manifest concurrency (1-8)
  -h, --help             display help for command

kitta batch status

Usage: kitta batch status [options] <run-id>

Read a persisted batch run without network access

Arguments:
  run-id      Batch run UUID

Options:
  -h, --help  display help for command

kitta batch resume

Usage: kitta batch resume [options] <run-id>

Resume pending or failed tasks with their original idempotency keys

Arguments:
  run-id                 Batch run UUID

Options:
  --manifest <path>      Manifest path when the original file moved
  --concurrency <count>  Override saved concurrency (1-8)
  -h, --help             display help for command

Batch manifests use versioned JSON. Validate is offline, run returns a run ID, status reads redacted local state, and resume uses the original idempotency keys for incomplete items.

On this page

kitta files uploadAPI field constraintskitta auth statuskitta auth profile updatekitta audio models listkitta audio voices listAPI field constraintskitta audio voices getAPI field constraintskitta audio ttsAPI field constraintskitta audio jobs listAPI field constraintskitta audio jobs getAPI field constraintskitta audio jobs downloadAPI field constraintskitta audio jobs segment downloadAPI field constraintskitta audio transcribeAPI field constraintskitta audio voices cloneAPI field constraintskitta audio voices designAPI field constraintskitta audio voices saveAPI field constraintskitta audio voices previewAPI field constraintskitta audio voices deleteAPI field constraintskitta audio voices updateAPI field constraintskitta audio personal-voice generateAPI field constraintskitta audio personal-voice getAPI field constraintskitta models listAPI field constraintskitta image generateAPI field constraintskitta image jobs listAPI field constraintskitta image jobs getAPI field constraintskitta video generateAPI field constraintskitta video jobs listAPI field constraintskitta video jobs getAPI field constraintskitta video lip-sync generateAPI field constraintskitta video lip-sync jobs listAPI field constraintskitta video lip-sync jobs getAPI field constraintskitta video dubbing generateAPI field constraintskitta video dubbing jobs getAPI field constraintskitta audio jobs waitkitta audio jobs waitkitta audio jobs waitkitta audio jobs waitkitta audio jobs waitkitta audio jobs waitAuthentication and Skills workflowskitta auth loginkitta auth logoutkitta skills generateBatch workflowskitta batch validatekitta batch runkitta batch statuskitta batch resume