← Kling AI for TerminalCONTENT HISTORY

Update to Kling AI for Terminal

Snapshot Oct 24, 2026 · 12:58 UTC · version 1.1.2

Collection source: downloaded plugin package. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.

WHAT CHANGED

Payment or plan references changed

Full description — Now says: images or videos with Kling AI in Codex, or handle existing tasks, conversation references, subject and motion libraries, credits, and account connections....

Observed in published text. Live prices and checkout terms have not been verified by this change.

Save Kling AI for Terminal and check future changes in Following.

Up to 10 plugins free · no card required.

All fields and original values.

Full description

Before

Sep 30, 2026 · 23:14 UTC

Kling images and videos in local Codex, including text-to-image, image-to-image, text-to-video, image-to-video, reusable Elements, and motion control. Also handles login, credits, uploads, feedback, and task status through the Global CLI.

After

Oct 24, 2026 · 12:58 UTC

images or videos with Kling AI in Codex, or handle existing tasks, conversation references, subject and motion libraries, credits, and account connections. Capabilities depend on the current account's live CLI response. Do not use for me...

Skill instructions

Before

Sep 30, 2026 · 23:14 UTC

Kling images and videos in local Codex, including text-to-image, image-to-image, text-to-video, image-to-video, reusable Elements, and motion control. Also handles login, credits, uploads, feedback, and task status through the Global CLI...

After

Oct 24, 2026 · 12:58 UTC

images or videos with Kling AI in Codex, or handle existing tasks, conversation references, subject and motion libraries, credits, and account connections. Capabilities depend on the current account's live CLI response. Do not use for me...

Supporting files

Before

Sep 30, 2026 · 23:14 UTC

[{"relative_path":"agents/openai.yaml","size_in_bytes":287},{"relative_path":"references/cli-contract.md","size_in_bytes":6310},{"relative_path":"references/elements-motion-feedback.md","size_in_bytes":7895}]

After

Oct 24, 2026 · 12:58 UTC

[{"relative_path":"agents/openai.yaml","size_in_bytes":300},{"relative_path":"references/asset-workflows.md","size_in_bytes":7805},{"relative_path":"references/audio-options.md","size_in_bytes":1521},{"relative_path":"references/capabili...

Compare saved observations

Download comparison JSON

SKILL.md text changes

− removed · + added

--- before
+++ after
@@ -1,59 +1,49 @@
 ---
 name: kling-ai
-description: Generate Kling images and videos in local Codex, including text-to-image, image-to-image, text-to-video, image-to-video, reusable Elements, and motion control. Also handles login, credits, uploads, feedback, and task status through the Global CLI.
+description: Generate images or videos with Kling AI in Codex, or handle existing tasks, conversation references, subject and motion libraries, credits, and account connections. Capabilities depend on the current account's live CLI response. Do not use for media analysis that does not call Kling.
 ---
 
-# Kling AI
+# Kling AI for Terminal
 
-## Capabilities
+Use only the pinned Global CLI in the [CLI contract](references/cli-contract.md). This is a local Skills-only plugin. The CLI owns browser OAuth; do not request or log credentials, private account fields, or signed URLs.
 
-| Request | Command | Guidance |
-| --- | --- | --- |
-| Generate an image from text | `text_to_image` | [Image generation](../kling-ai-generate-image/SKILL.md) |
-| Edit or restyle a reference image | `image_to_image` | [Image generation](../kling-ai-generate-image/SKILL.md) |
-| Generate a video from text | `text_to_video` | [Video generation](../kling-ai-generate-video/SKILL.md) |
-| Animate an image / use first and tail frames | `image_to_video` | [Video generation](../kling-ai-generate-video/SKILL.md) |
-| Create a reusable subject from images or a video | `element_create` | [Create an Element](references/elements-motion-feedback.md#reusable-elements) |
-| List saved subjects and their IDs | `element_list` | [List Elements](references/elements-motion-feedback.md#reusable-elements) |
-| Read a subject's full details and resources | `element_get` | [Inspect an Element](references/elements-motion-feedback.md#reusable-elements) |
-| Update a subject's name, description, tags, or supported resources | `element_update` | [Update an Element](references/elements-motion-feedback.md#reusable-elements) |
-| Delete a specified saved subject | `element_delete` | [Delete an Element](references/elements-motion-feedback.md#reusable-elements) |
-| List saved motions and their IDs | `motion_library_list` | [Browse saved motions](references/elements-motion-feedback.md#motion-library-and-motion-control) |
-| Generate a video by driving a subject image with a motion video or saved motion ID | `motion_control` | [Generate with motion control](references/elements-motion-feedback.md#motion-library-and-motion-control) |
-| Upload a local asset and return its URL | `file_upload` | [Explicit upload](references/elements-motion-feedback.md#explicit-asset-upload) |
-| Query a generation's status and results | `query_tasks` | [Task results](references/cli-contract.md#output) |
-| Check membership and remaining credits | `account` | [Account](references/cli-contract.md#commands) |
-| Log in with browser OAuth | `login` | [Login](references/cli-contract.md#runtime) |
-| Log out on the server and clear local credentials | `logout` | [Logout](references/cli-contract.md#commands) |
-| Read the current identity, available models, and parameter specifications | `who_am_i` | [Model discovery](references/cli-contract.md#commands) |
-| List the server's available tools and input schemas | `tool_list` | [Tool discovery](references/cli-contract.md#commands) |
-| Report a stuck task, billing anomaly, or unexpected result with user authorization | `feedback` | [Issue feedback](references/elements-motion-feedback.md#issue-feedback) |
-
-To reuse a saved subject in generation, inspect it with `element_get`, then bind it using `--elements` and `<<<id>>>` in a compatible generation command; see [binding rules](references/elements-motion-feedback.md#bind-an-element-to-generation). Creating an Element alone does not generate an image or video.
-
-For a capability question, briefly describe image generation, video generation, reusable subjects, and motion control. Do not run a paid command.
-
-Read [CLI commands and output](references/cli-contract.md) before the first remote operation. For Elements, motion control, explicit uploads, or feedback, also read [capability rules](references/elements-motion-feedback.md). Route image creation to `kling-ai-generate-image` and video creation/motion transfer to `kling-ai-generate-video`.
-
-## Runtime and account
-
-- Require shell access, Node.js 18+, and npm. Use `npm exec --yes --registry=https://registry.npmjs.org --package=@klingai/cli-global@0.2.0 -- kling --version`; use exactly CLI 0.2.0 for this plugin release. npm may download and execute that package from the official registry; explain this dependency before first use and respect host execution approvals. Do not change the version or bypass a denied command. If unavailable, report the limitation; do not substitute another generator or register an MCP server.
-- Start with `who_am_i`. If authentication is needed, launch `login --skill-name kling-ai-cli --skill-version 1.0.5`; the user completes browser OAuth. Then run `tool_list` and `who_am_i`. Never request, read, print, or log credentials, tokens, or cookies.
-- Use only the Global package and its service configuration. To switch accounts, run `logout` → `login` → `who_am_i`; stop if logout/login fails. Sign-out alone ends after `logout`.
-
-## Submit and retrieve
-
-1. A clear request authorizes one paid generation per explicitly requested step. Resolve only material ambiguities; do not add redundant confirmations or unrequested paid steps.
-2. Select a live model from `who_am_i`; use its declared parameters, defaults, enums, and inputs. Rebuild flags after changing models. Preserve user facts and supplied copy; do not invent unsupported settings or commercial claims.
-3. For pasted or attached media, resolve its path and role; pass correctly quoted arguments to the CLI for auto-upload. Never evaluate user text as shell code. Do not replace a failed reference workflow with text-only generation.
-4. Immediately before every paid command, run `account`. Stop on zero or known insufficient credits. Keep at most one non-terminal paid task per objective; submit each authorized step at most once.
-5. Preserve the returned `generationId`. Poll that task at provider-permitted intervals until terminal state, user cancellation, or turn timeout; a status-only request queries once. Return status, consumed credits when supplied, and the selected `works[]` URL. Stable identity is task number plus work index and content type. Result URLs expire after 24 hours; use a returned watermark-free URL only when authorized. Claim visual inspection only after doing it.
-6. For dependent steps, continue only after the preceding step succeeds and the selected work is unambiguous; otherwise terminate the chain. Before reusing older Kling media, refresh its task once and use the same work index's current URL. If unavailable, request a fresh attachment; do not query repeatedly or select a substitute.
-
-Element operations are synchronous: they return persistent subject IDs, not generation IDs. Do not poll them with `query_tasks`. Uploading an asset or selecting an Element does not authorize generation.
-
-## Failures
-
-- Only an explicitly pre-billing argument rejection with no `generationId` permits one correction: the original authorization remains unused. Refresh the live schema, preserve intent, recheck `account`, and submit the corrected command once. Stop after one correction.
-- Credits/membership, queue/rate limits, media errors, safety restrictions, provider errors, or ambiguous billing: report the diagnostic and stop. Do not switch models, alter media, bypass restrictions, or automatically resubmit. Never claim a refund or non-billing without provider confirmation.
-- If the submission response is lost, query only a known task number. Without one, report unknown state; a replacement requires that the user explicitly accepts possible duplicate billing. Feedback sends an issue summary and related task IDs to Kling. Send only with user authorization covering that data; existing authorization does not need repeated confirmation. State briefly when a report is sent and preserve host approval controls. Feedback does not fix or retry the task.
+## Load rules by request
+
+- Image generation, editing, posters, and reference-based creation: use `kling-ai-generate-image`.
+- Video generation, keyframes, omni references, motion control, and shot planning: first read the [video Skill](../kling-ai-generate-video/SKILL.md) and follow its entry-point routing before choosing a model. Reading only this core Skill and the submission workflow is insufficient.
+- Progress, existing results, or refreshed output links: read only [task results](references/task-results.md), without generation recommendations, model parameters, or creative references.
+- New generation, edits, or authorized retries: select through the relevant creative Skill, then follow [generation submission](references/tool-workflows.md). Execute dependent steps in order.
+- Subject library, motion library, or conversation references: read [asset workflows](references/asset-workflows.md). Read-only asset queries never submit generation.
+- Before generation, read [capability discovery](references/capability-discovery.md). After selecting an available model, use the [parameter module table](references/model-parameters.md) to load only supported rules needed for this request.
+- Authorization, upload, model, or service errors: read [troubleshooting](references/troubleshooting.md). Read [examples](references/prompt-examples.md) when examples are needed.
+
+## Account visibility and rollout
+
+- The current account's live `who_am_i` response governs models, parameters, specifications, input types, and combination limits. `tool_list` establishes tool availability and call structure; membership pages, tool descriptions, and static examples cannot override account capabilities.
+- Display, recommend, or call a model name only when the current `tool_list` exposes its tool and `who_am_i.availableModels` lists it under that tool. Tool counts, newly exposed omni tools, example names, and default-model fields are not substitutes for membership in that model set.
+- Compare "latest" only within available models supporting the required output type and intent. Do not mix image and video versions; `defaultModel` does not mean latest. Qualify the conclusion as the latest image/video model available to the current account. If no suitable new model is returned, use an available model without mentioning higher versions, unreleased names, allowlists, or better hidden models. Never fill gaps from Skills, snapshots, other accounts, or earlier sessions.
+- If a requested model is absent from filtered discovery, expand discovery as described in [capability discovery](references/capability-discovery.md). If it exists only for another output type, explain the mismatch and let the user choose whether to keep the requested medium or use the model's supported medium; do not switch silently. After complete discovery, report only that the current connection did not return the requested model, without repeating hidden names. Alternatives must be actually available and suitable.
+- Rediscover tools and models after reconnecting or changing account/environment. If discovery fails or model membership cannot be established, do not submit using a static fallback.
+
+## Creative and capability selection
+
+Read the video Skill even for read-only video model selection. When `omni_ref_video` exists, inspect its `who_am_i` model set before choosing or falling back. Text-only input does not imply `text_to_video` is the only option: required assets depend on the selected model's input and combination rules, not the tool's name.
+
+Honor supplied asset roles, model, sound, ratio, and quality requirements. Ask only about missing information that materially changes the result. Prefer a user-specified available model; otherwise use these branches without maintaining fixed model lists:
+
+| Live capability | Selection |
+| --- | --- |
+| The current entry point, or a new one supporting the same intent, returns a suitable newer-generation model | Prefer the newer model. Use live descriptions for quality or speed preferences and actual billing information for budget comparisons. |
+| No suitable new model is returned, including a new tool exposing only existing models | Keep the existing entry point and its available `defaultModel`; if that default does not meet requirements, select a suitable model within its available set. Do not mention unopened models. |
+
+Determine newer generations from current descriptions and comparable versions within the same family, not tool count, a new tool, or speed-related names alone. If uncertain, use the existing branch without guessing. Include a new entry point only when it supports the user's asset roles and intent; never move models between tools.
+
+Both branches require live parameters and account visibility. Stop selection when capability reading fails. Required identity/product consistency, text, motion, and sound come before version preferences. Defaults cannot override assets, duration, speed, or budget; do not silently raise resolution/count or reduce requirements. "Best quality" is not synonymous with maximum resolution or fastest generation, and does not justify claims about uninspected results.
+
+Status, display, and link refresh are read-only. Explicit edits, variants, or video creation are new authorized steps: refresh and select the source work, then submit through the shared workflow. A dependent step must wait for a successful predecessor and a clearly selected work.
+
+## Runtime and delivery
+
+Require local shell access and Node.js 18+. Execute the pinned runtime from the CLI contract; explain the npm dependency before first use and respect execution approvals. Capture `who_am_i` stdout in a private temporary regular file and parse it after the process exits; CLI 0.2.1 may truncate a large capability response when stdout is a pipe. Delete the temporary file after reading and do not expose account identity fields. A zero exit code with incomplete JSON is a discovery failure. Start with `who_am_i`; if unauthorized, execute `login --skill-name kling-ai-cli --skill-version 1.1.2`, let the user complete browser consent, then verify identity. Account switching requires an explicit request and `logout` → `login` → `who_am_i`; stop on failure. Never read credentials or call HTTP/MCP directly.
+
+Submit each confirmed paid step at most once. An accepted task is not a completed work: require terminal success and a usable primary media URL of the requested type; a video cover is not a video. Preserve `generationId` and the CLI trace identifier. Use `query_tasks` for status and returned result links for delivery; this CLI does not mount an MCP App. Do not author Markdown image/video syntax, a separate media attachment, or a duplicate download link. Do not claim visual/audio inspection without actually inspecting the result.
Full technical diff · 3 changed fields

changed /description

BEFORE
"Generate Kling images and videos in local Codex, including text-to-image, image-to-image, text-to-video, image-to-video, reusable Elements, and motion control. Also handles login, credits, uploads, feedback, and task status through the Global CLI."
AFTER
"Generate images or videos with Kling AI in Codex, or handle existing tasks, conversation references, subject and motion libraries, credits, and account connections. Capabilities depend on the current account's live CLI response. Do not use for media analysis that does not call Kling."

changed /included_files

BEFORE
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 287
  },
  {
    "relative_path": "references/cli-contract.md",
    "size_in_bytes": 6310
  },
  {
    "relative_path": "references/elements-motion-feedback.md",
    "size_in_bytes": 7895
  }
]
AFTER
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 300
  },
  {
    "relative_path": "references/asset-workflows.md",
    "size_in_bytes": 7805
  },
  {
    "relative_path": "references/audio-options.md",
    "size_in_bytes": 1521
  },
  {
    "relative_path": "references/capability-discovery.md",
    "size_in_bytes": 2060
  },
  {
    "relative_path": "references/cli-contract.md",
    "size_in_bytes": 5801
  },
  {
    "relative_path": "references/model-parameters.md",
    "size_in_bytes": 1726
  },
  {
    "relative_path": "references/output-options.md",
    "size_in_bytes": 2204
  },
  {
    "relative_path": "references/prompt-examples.md",
    "size_in_bytes": 2643
  },
  {
    "relative_path": "references/reference-inputs.md",
    "size_in_bytes": 2788
  },
  {
    "relative_path": "references/task-results.md",
    "size_in_bytes": 2049
  },
  {
    "relative_path": "references/tool-workflows.md",
    "size_in_bytes": 2048
  },
  {
    "relative_path": "references/troubleshooting.md",
    "size_in_bytes": 1823
  }
]

changed /skill_md_contents

BEFORE
"---\nname: kling-ai\ndescription: Generate Kling images and videos in local Codex, including text-to-image, image-to-image, text-to-video, image-to-video, reusable Elements, and motion control. Also handles login, credits, uploads, feedback, and task status through the Global CLI.\n---\n\n# Kling AI\n\n## Capabilities\n\n| Request | Command | Guidance |\n| --- | --- | --- |\n| Generate an image from text | `text_to_image` | [Image generation](../kling-ai-generate-image/SKILL.md) |\n| Edit or restyle a reference image | `image_to_image` | [Image generation](../kling-ai-generate-image/SKILL.md) |\n| Generate a video from text | `text_to_video` | [Video generation](../kling-ai-generate-video/SKILL.md) |\n| Animate an image / use first and tail frames | `image_to_video` | [Video generation](../kling-ai-generate-video/SKILL.md) |\n| Create a reusable subject from images or a video | `element_create` | [Create an Element](references/elements-motion-feedback.md#reusable-elements) |\n| List saved subjects and their IDs | `element_list` | [List Elements](references/elements-motion-feedback.md#reusable-elements) |\n| Read a subject's full details and resources | `element_get` | [Inspect an Element](references/elements-motion-feedback.md#reusable-elements) |\n| Update a subject's name, description, tags, or supported resources | `element_update` | [Update an Element](references/elements-motion-feedback.md#reusable-elements) |\n| Delete a specified saved subject | `element_delete` | [Delete an Element](references/elements-motion-feedback.md#reusable-elements) |\n| List saved motions and their IDs | `motion_library_list` | [Browse saved motions](references/elements-motion-feedback.md#motion-library-and-motion-control) |\n| Generate a video by driving a subject image with a motion video or saved motion ID | `motion_control` | [Generate with motion control](references/elements-motion-feedback.md#motion-library-and-motion-control) |\n| Upload a local asset and return its URL | `file_upload` | [Explicit upload](references/elements-motion-feedback.md#explicit-asset-upload) |\n| Query a generation's status and results | `query_tasks` | [Task results](references/cli-contract.md#output) |\n| Check membership and remaining credits | `account` | [Account](references/cli-contract.md#commands) |\n| Log in with browser OAuth | `login` | [Login](references/cli-contract.md#runtime) |\n| Log out on the server and clear local credentials | `logout` | [Logout](references/cli-contract.md#commands) |\n| Read the current identity, available models, and parameter specifications | `who_am_i` | [Model discovery](references/cli-contract.md#commands) |\n| List the server's available tools and input schemas | `tool_list` | [Tool discovery](references/cli-contract.md#commands) |\n| Report a stuck task, billing anomaly, or unexpected result with user authorization | `feedback` | [Issue feedback](references/elements-motion-feedback.md#issue-feedback) |\n\nTo reuse a saved subject in generation, inspect it with `element_get`, then bind it using `--elements` and `<<<id>>>` in a compatible generation command; see [binding rules](references/elements-motion-feedback.md#bind-an-element-to-generation). Creating an Element alone does not generate an image or video.\n\nFor a capability question, briefly describe image generation, video generation, reusable subjects, and motion control. Do not run a paid command.\n\nRead [CLI commands and output](references/cli-contract.md) before the first remote operation. For Elements, motion control, explicit uploads, or feedback, also read [capability rules](references/elements-motion-feedback.md). Route image creation to `kling-ai-generate-image` and video creation/motion transfer to `kling-ai-generate-video`.\n\n## Runtime and account\n\n- Require shell access, Node.js 18+, and npm. Use `npm exec --yes --registry=https://registry.npmjs.org --package=@klingai/cli-global@0.2.0 -- kling --version`; use exactly CLI 0.2.0 for this plugin release. npm may download and execute that package from the official registry; explain this dependency before first use and respect host execution approvals. Do not change the version or bypass a denied command. If unavailable, report the limitation; do not substitute another generator or register an MCP server.\n- Start with `who_am_i`. If authentication is needed, launch `login --skill-name kling-ai-cli --skill-version 1.0.5`; the user completes browser OAuth. Then run `tool_list` and `who_am_i`. Never request, read, print, or log credentials, tokens, or cookies.\n- Use only the Global package and its service configuration. To switch accounts, run `logout` → `login` → `who_am_i`; stop if logout/login fails. Sign-out alone ends after `logout`.\n\n## Submit and retrieve\n\n1. A clear request authorizes one paid generation per explicitly requested step. Resolve only material ambiguities; do not add redundant confirmations or unrequested paid steps.\n2. Select a live model from `who_am_i`; use its declared parameters, defaults, enums, and inputs. Rebuild flags after changing models. Preserve user facts and supplied copy; do not invent unsupported settings or commercial claims.\n3. For pasted or attached media, resolve its path and role; pass correctly quoted arguments to the CLI for auto-upload. Never evaluate user text as shell code. Do not replace a failed reference workflow with text-only generation.\n4. Immediately before every paid command, run `account`. Stop on zero or known insufficient credits. Keep at most one non-terminal paid task per objective; submit each authorized step at most once.\n5. Preserve the returned `generationId`. Poll that task at provider-permitted intervals until terminal state, user cancellation, or turn timeout; a status-only request queries once. Return status, consumed credits when supplied, and the selected `works[]` URL. Stable identity is task number plus work index and content type. Result URLs expire after 24 hours; use a returned watermark-free URL only when authorized. Claim visual inspection only after doing it.\n6. For dependent steps, continue only after the preceding step succeeds and the selected work is unambiguous; otherwise terminate the chain. Before reusing older Kling media, refresh its task once and use the same work index's current URL. If unavailable, request a fresh attachment; do not query repeatedly or select a substitute.\n\nElement operations are synchronous: they return persistent subject IDs, not generation IDs. Do not poll them with `query_tasks`. Uploading an asset or selecting an Element does not authorize generation.\n\n## Failures\n\n- Only an explicitly pre-billing argument rejection with no `generationId` permits one correction: the original authorization remains unused. Refresh the live schema, preserve intent, recheck `account`, and submit the corrected command once. Stop after one correction.\n- Credits/membership, queue/rate limits, media errors, safety restrictions, provider errors, or ambiguous billing: report the diagnostic and stop. Do not switch models, alter media, bypass restrictions, or automatically resubmit. Never claim a refund or non-billing without provider confirmation.\n- If the submission response is lost, query only a known task number. Without one, report unknown state; a replacement requires that the user explicitly accepts possible duplicate billing. Feedback sends an issue summary and related task IDs to Kling. Send only with user authorization covering that data; existing authorization does not need repeated confirmation. State briefly when a report is sent and preserve host approval controls. Feedback does not fix or retry the task.\n"
AFTER
"---\nname: kling-ai\ndescription: Generate images or videos with Kling AI in Codex, or handle existing tasks, conversation references, subject and motion libraries, credits, and account connections. Capabilities depend on the current account's live CLI response. Do not use for media analysis that does not call Kling.\n---\n\n# Kling AI for Terminal\n\nUse only the pinned Global CLI in the [CLI contract](references/cli-contract.md). This is a local Skills-only plugin. The CLI owns browser OAuth; do not request or log credentials, private account fields, or signed URLs.\n\n## Load rules by request\n\n- Image generation, editing, posters, and reference-based creation: use `kling-ai-generate-image`.\n- Video generation, keyframes, omni references, motion control, and shot planning: first read the [video Skill](../kling-ai-generate-video/SKILL.md) and follow its entry-point routing before choosing a model. Reading only this core Skill and the submission workflow is insufficient.\n- Progress, existing results, or refreshed output links: read only [task results](references/task-results.md), without generation recommendations, model parameters, or creative references.\n- New generation, edits, or authorized retries: select through the relevant creative Skill, then follow [generation submission](references/tool-workflows.md). Execute dependent steps in order.\n- Subject library, motion library, or conversation references: read [asset workflows](references/asset-workflows.md). Read-only asset queries never submit generation.\n- Before generation, read [capability discovery](references/capability-discovery.md). After selecting an available model, use the [parameter module table](references/model-parameters.md) to load only supported rules needed for this request.\n- Authorization, upload, model, or service errors: read [troubleshooting](references/troubleshooting.md). Read [examples](references/prompt-examples.md) when examples are needed.\n\n## Account visibility and rollout\n\n- The current account's live `who_am_i` response governs models, parameters, specifications, input types, and combination limits. `tool_list` establishes tool availability and call structure; membership pages, tool descriptions, and static examples cannot override account capabilities.\n- Display, recommend, or call a model name only when the current `tool_list` exposes its tool and `who_am_i.availableModels` lists it under that tool. Tool counts, newly exposed omni tools, example names, and default-model fields are not substitutes for membership in that model set.\n- Compare \"latest\" only within available models supporting the required output type and intent. Do not mix image and video versions; `defaultModel` does not mean latest. Qualify the conclusion as the latest image/video model available to the current account. If no suitable new model is returned, use an available model without mentioning higher versions, unreleased names, allowlists, or better hidden models. Never fill gaps from Skills, snapshots, other accounts, or earlier sessions.\n- If a requested model is absent from filtered discovery, expand discovery as described in [capability discovery](references/capability-discovery.md). If it exists only for another output type, explain the mismatch and let the user choose whether to keep the requested medium or use the model's supported medium; do not switch silently. After complete discovery, report only that the current connection did not return the requested model, without repeating hidden names. Alternatives must be actually available and suitable.\n- Rediscover tools and models after reconnecting or changing account/environment. If discovery fails or model membership cannot be established, do not submit using a static fallback.\n\n## Creative and capability selection\n\nRead the video Skill even for read-only video model selection. When `omni_ref_video` exists, inspect its `who_am_i` model set before choosing or falling back. Text-only input does not imply `text_to_video` is the only option: required assets depend on the selected model's input and combination rules, not the tool's name.\n\nHonor supplied asset roles, model, sound, ratio, and quality requirements. Ask only about missing information that materially changes the result. Prefer a user-specified available model; otherwise use these branches without maintaining fixed model lists:\n\n| Live capability | Selection |\n| --- | --- |\n| The current entry point, or a new one supporting the same intent, returns a suitable newer-generation model | Prefer the newer model. Use live descriptions for quality or speed preferences and actual billing information for budget comparisons. |\n| No suitable new model is returned, including a new tool exposing only existing models | Keep the existing entry point and its available `defaultModel`; if that default does not meet requirements, select a suitable model within its available set. Do not mention unopened models. |\n\nDetermine newer generations from current descriptions and comparable versions within the same family, not tool count, a new tool, or speed-related names alone. If uncertain, use the existing branch without guessing. Include a new entry point only when it supports the user's asset roles and intent; never move models between tools.\n\nBoth branches require live parameters and account visibility. Stop selection when capability reading fails. Required identity/product consistency, text, motion, and sound come before version preferences. Defaults cannot override assets, duration, speed, or budget; do not silently raise resolution/count or reduce requirements. \"Best quality\" is not synonymous with maximum resolution or fastest generation, and does not justify claims about uninspected results.\n\nStatus, display, and link refresh are read-only. Explicit edits, variants, or video creation are new authorized steps: refresh and select the source work, then submit through the shared workflow. A dependent step must wait for a successful predecessor and a clearly selected work.\n\n## Runtime and delivery\n\nRequire local shell access and Node.js 18+. Execute the pinned runtime from the CLI contract; explain the npm dependency before first use and respect execution approvals. Capture `who_am_i` stdout in a private temporary regular file and parse it after the process exits; CLI 0.2.1 may truncate a large capability response when stdout is a pipe. Delete the temporary file after reading and do not expose account identity fields. A zero exit code with incomplete JSON is a discovery failure. Start with `who_am_i`; if unauthorized, execute `login --skill-name kling-ai-cli --skill-version 1.1.2`, let the user complete browser consent, then verify identity. Account switching requires an explicit request and `logout` → `login` → `who_am_i`; stop on failure. Never read credentials or call HTTP/MCP directly.\n\nSubmit each confirmed paid step at most once. An accepted task is not a completed work: require terminal success and a usable primary media URL of the requested type; a video cover is not a video. Preserve `generationId` and the CLI trace identifier. Use `query_tasks` for status and returned result links for delivery; this CLI does not mount an MCP App. Do not author Markdown image/video syntax, a separate media attachment, or a duplicate download link. Do not claim visual/audio inspection without actually inspecting the result.\n"
Full snapshot data
{
  "description": "Generate images or videos with Kling AI in Codex, or handle existing tasks, conversation references, subject and motion libraries, credits, and account connections. Capabilities depend on the current account's live CLI response. Do not use for media analysis that does not call Kling.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 300
    },
    {
      "relative_path": "references/asset-workflows.md",
      "size_in_bytes": 7805
    },
    {
      "relative_path": "references/audio-options.md",
      "size_in_bytes": 1521
    },
    {
      "relative_path": "references/capability-discovery.md",
      "size_in_bytes": 2060
    },
    {
      "relative_path": "references/cli-contract.md",
      "size_in_bytes": 5801
    },
    {
      "relative_path": "references/model-parameters.md",
      "size_in_bytes": 1726
    },
    {
      "relative_path": "references/output-options.md",
      "size_in_bytes": 2204
    },
    {
      "relative_path": "references/prompt-examples.md",
      "size_in_bytes": 2643
    },
    {
      "relative_path": "references/reference-inputs.md",
      "size_in_bytes": 2788
    },
    {
      "relative_path": "references/task-results.md",
      "size_in_bytes": 2049
    },
    {
      "relative_path": "references/tool-workflows.md",
      "size_in_bytes": 2048
    },
    {
      "relative_path": "references/troubleshooting.md",
      "size_in_bytes": 1823
    }
  ],
  "name": "kling-ai",
  "skill_md_contents": "---\nname: kling-ai\ndescription: Generate images or videos with Kling AI in Codex, or handle existing tasks, conversation references, subject and motion libraries, credits, and account connections. Capabilities depend on the current account's live CLI response. Do not use for media analysis that does not call Kling.\n---\n\n# Kling AI for Terminal\n\nUse only the pinned Global CLI in the [CLI contract](references/cli-contract.md). This is a local Skills-only plugin. The CLI owns browser OAuth; do not request or log credentials, private account fields, or signed URLs.\n\n## Load rules by request\n\n- Image generation, editing, posters, and reference-based creation: use `kling-ai-generate-image`.\n- Video generation, keyframes, omni references, motion control, and shot planning: first read the [video Skill](../kling-ai-generate-video/SKILL.md) and follow its entry-point routing before choosing a model. Reading only this core Skill and the submission workflow is insufficient.\n- Progress, existing results, or refreshed output links: read only [task results](references/task-results.md), without generation recommendations, model parameters, or creative references.\n- New generation, edits, or authorized retries: select through the relevant creative Skill, then follow [generation submission](references/tool-workflows.md). Execute dependent steps in order.\n- Subject library, motion library, or conversation references: read [asset workflows](references/asset-workflows.md). Read-only asset queries never submit generation.\n- Before generation, read [capability discovery](references/capability-discovery.md). After selecting an available model, use the [parameter module table](references/model-parameters.md) to load only supported rules needed for this request.\n- Authorization, upload, model, or service errors: read [troubleshooting](references/troubleshooting.md). Read [examples](references/prompt-examples.md) when examples are needed.\n\n## Account visibility and rollout\n\n- The current account's live `who_am_i` response governs models, parameters, specifications, input types, and combination limits. `tool_list` establishes tool availability and call structure; membership pages, tool descriptions, and static examples cannot override account capabilities.\n- Display, recommend, or call a model name only when the current `tool_list` exposes its tool and `who_am_i.availableModels` lists it under that tool. Tool counts, newly exposed omni tools, example names, and default-model fields are not substitutes for membership in that model set.\n- Compare \"latest\" only within available models supporting the required output type and intent. Do not mix image and video versions; `defaultModel` does not mean latest. Qualify the conclusion as the latest image/video model available to the current account. If no suitable new model is returned, use an available model without mentioning higher versions, unreleased names, allowlists, or better hidden models. Never fill gaps from Skills, snapshots, other accounts, or earlier sessions.\n- If a requested model is absent from filtered discovery, expand discovery as described in [capability discovery](references/capability-discovery.md). If it exists only for another output type, explain the mismatch and let the user choose whether to keep the requested medium or use the model's supported medium; do not switch silently. After complete discovery, report only that the current connection did not return the requested model, without repeating hidden names. Alternatives must be actually available and suitable.\n- Rediscover tools and models after reconnecting or changing account/environment. If discovery fails or model membership cannot be established, do not submit using a static fallback.\n\n## Creative and capability selection\n\nRead the video Skill even for read-only video model selection. When `omni_ref_video` exists, inspect its `who_am_i` model set before choosing or falling back. Text-only input does not imply `text_to_video` is the only option: required assets depend on the selected model's input and combination rules, not the tool's name.\n\nHonor supplied asset roles, model, sound, ratio, and quality requirements. Ask only about missing information that materially changes the result. Prefer a user-specified available model; otherwise use these branches without maintaining fixed model lists:\n\n| Live capability | Selection |\n| --- | --- |\n| The current entry point, or a new one supporting the same intent, returns a suitable newer-generation model | Prefer the newer model. Use live descriptions for quality or speed preferences and actual billing information for budget comparisons. |\n| No suitable new model is returned, including a new tool exposing only existing models | Keep the existing entry point and its available `defaultModel`; if that default does not meet requirements, select a suitable model within its available set. Do not mention unopened models. |\n\nDetermine newer generations from current descriptions and comparable versions within the same family, not tool count, a new tool, or speed-related names alone. If uncertain, use the existing branch without guessing. Include a new entry point only when it supports the user's asset roles and intent; never move models between tools.\n\nBoth branches require live parameters and account visibility. Stop selection when capability reading fails. Required identity/product consistency, text, motion, and sound come before version preferences. Defaults cannot override assets, duration, speed, or budget; do not silently raise resolution/count or reduce requirements. \"Best quality\" is not synonymous with maximum resolution or fastest generation, and does not justify claims about uninspected results.\n\nStatus, display, and link refresh are read-only. Explicit edits, variants, or video creation are new authorized steps: refresh and select the source work, then submit through the shared workflow. A dependent step must wait for a successful predecessor and a clearly selected work.\n\n## Runtime and delivery\n\nRequire local shell access and Node.js 18+. Execute the pinned runtime from the CLI contract; explain the npm dependency before first use and respect execution approvals. Capture `who_am_i` stdout in a private temporary regular file and parse it after the process exits; CLI 0.2.1 may truncate a large capability response when stdout is a pipe. Delete the temporary file after reading and do not expose account identity fields. A zero exit code with incomplete JSON is a discovery failure. Start with `who_am_i`; if unauthorized, execute `login --skill-name kling-ai-cli --skill-version 1.1.2`, let the user complete browser consent, then verify identity. Account switching requires an explicit request and `logout` → `login` → `who_am_i`; stop on failure. Never read credentials or call HTTP/MCP directly.\n\nSubmit each confirmed paid step at most once. An accepted task is not a completed work: require terminal success and a usable primary media URL of the requested type; a video cover is not a video. Preserve `generationId` and the CLI trace identifier. Use `query_tasks` for status and returned result links for delivery; this CLI does not mount an MCP App. Do not author Markdown image/video syntax, a separate media attachment, or a duplicate download link. Do not claim visual/audio inspection without actually inspecting the result.\n"
}

SHA-256 of public snapshot: 012fd904fa5684d02beb3458ea312cc48858c5472a11cbefb1c9a46713f7f450