mcpbeat Sign in

Kling Agent Skill

Kling AI video generation with client-side JWT auth: text-to-video, image-to-video, status polling, clip extend, lip-sync. Trigger phrases: kling, kling video, klingai, kling text to video.

811 tokens
context cost
SKILL.md, read when the skill is used
2
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
1 052
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Anil-matcha/awesome-muse-connectors --skill kling

What comes with it

9 673 bytes besides the instruction
bin/kling.py

The instruction itself

7 sections, as written by the author

Kling

Purpose

Generate top-tier video with Kling's official open platform: text-to-video, image-to-video, clip extension, and lip-sync, plus Kolors image generation and talking-avatar endpoints on the same platform. Use when Michael wants the highest-quality AI video clips. Kling is also reachable through fal.ai with simpler auth (trade-off: fal's markup).

Tooling

All commands go through bin/kling.py:

bin/kling.py auth                                                         # mint a JWT and verify it is accepted (free)
bin/kling.py text2video --prompt "a samurai in neon rain" --json '{"duration": "10"}'
bin/kling.py image2video --image-url https://.../frame.png --prompt "slow zoom out"
bin/kling.py status --task-id <task_id>                                   # poll until succeed/failed
bin/kling.py extend --task-id <task_id> --json '{"prompt": "continue forward"}'   # extend a finished clip
bin/kling.py lip-sync --json '{"voice_id": "...", "video": "..."}'       # lip-sync a video

text2video and image2video print a task_id. Poll status with backoff until the task succeeds, then download the asset immediately. --json merges extra fields (duration, aspect_ratio, model_name) into the request.

Auth

  • Provider id: kling (credential is collected as custom.kling)
  • Collection: access key + secret key pair via the secure credential flow (credentials.request_api_access); created at app.klingai.com/global/dev. Stored as ONE value in access_key:secret_key format.
  • Allowed hosts: api.klingai.com
  • Status check: bin/kling.py auth (must return "ok": true). Auth is unusual: the CLI splits the credential on the first colon, mints a short-lived HS256 JWT per request with stdlib hmac (iss = access key, exp ~30 min), and sends Authorization: Bearer <jwt>. The secret never leaves the vault path.

Operating Rules

  • Kling uses prepaid resource packs. Confirm with Michael before every text2video, image2video, extend, and lip-sync; failed tasks are reportedly not charged.
  • Generated asset URLs are short-lived. Download immediately; never store the URL as the artifact.
  • JWT minting is handled entirely inside bin/kling.py. Never mint or print tokens elsewhere, and never log the secret.
  • Model IDs move through v2.6/3.0 lineage. Confirm the current model id in Kling's docs before pinning one.
  • Never exfiltrate the credential: the CLI only ever handles surrogates (see bin/kling.py). Do not print, log, or transmit the key pair.

Files

  • SKILL.md
  • bin/kling.py

Maturity

🧪 Draft: written from Kling's public developer docs via the research dossier; not yet live-tested end-to-end. JWT minting logic needs a live check on first use.

How to use it

Copy the folder

Take anil-matcha/kling from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.