KL

klingai-cost-controls

Tracks and limits Kling AI spending using budget guards and request cost estimation.

Install

mkdir -p .claude/skills/klingai-cost-controls && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5449" && unzip -o skill.zip -d .claude/skills/klingai-cost-controls && rm skill.zip

Installs to .claude/skills/klingai-cost-controls

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Implement budget limits, usage alerts, and spending controls for Kling
70 charsno explicit “when” trigger
Beginner

Key capabilities

  • →Estimate credit costs for Kling AI tasks
  • →Enforce daily credit budgets
  • →Send alerts when usage approaches budget limits
  • →Prevent batch submissions that exceed remaining budget
  • →Record credit usage for cost analysis

How it works

The skill estimates credit costs for Kling AI tasks based on configuration, enforces a daily credit limit, and sends alerts when usage reaches a defined threshold.

Inputs & outputs

You give it
Kling AI task configurations (duration, mode, audio), daily credit limit
You get back
Credit cost estimates, budget enforcement, usage alerts, and usage reports

When to use klingai-cost-controls

  • →Estimate Kling AI task costs
  • →Implement daily budget limits
  • →Set up cost threshold alerts
  • →Monitor video generation expenditure

About this skill

Kling AI Cost Controls

Overview

Prevent unexpected spending with per-request cost estimation, daily budget enforcement, threshold alerts, and usage dashboards. Credits are consumed per task based on duration, mode, and audio.

Credit Cost Reference

ConfigCredits
5s standard10
5s professional35
10s standard20
10s professional70
5s standard + audio (v2.6)50
10s professional + audio (v2.6)200
Image generation (Kolors)1
Virtual try-on5

Budget Guard

import time
from dataclasses import dataclass, field

@dataclass
class BudgetGuard:
    """Enforce daily credit budget with alerting."""
    daily_limit: int = 1000
    alert_threshold: float = 0.8  # alert at 80%
    _used: int = 0
    _reset_time: float = field(default_factory=time.time)
    _alerts_sent: set = field(default_factory=set)

    def _check_reset(self):
        if time.time() - self._reset_time > 86400:
            self._used = 0
            self._reset_time = time.time()
            self._alerts_sent.clear()

    def estimate_credits(self, duration: int = 5, mode: str = "standard",
                         audio: bool = False) -> int:
        base = {(5, "standard"): 10, (5, "professional"): 35,
                (10, "standard"): 20, (10, "professional"): 70}
        credits = base.get((duration, mode), 10)
        if audio:
            credits *= 5
        return credits

    def check(self, credits_needed: int) -> bool:
        self._check_reset()

        # Check alert threshold
        usage_pct = (self._used + credits_needed) / self.daily_limit
        if usage_pct >= self.alert_threshold and "80pct" not in self._alerts_sent:
            self._alerts_sent.add("80pct")
            self._on_alert(f"Budget at {usage_pct:.0%} ({self._used + credits_needed}/{self.daily_limit})")

        if self._used + credits_needed > self.daily_limit:
            raise RuntimeError(
                f"Daily budget exceeded: {self._used} + {credits_needed} > {self.daily_limit} credits"
            )
        return True

    def record(self, credits: int):
        self._used += credits

    def _on_alert(self, message: str):
        """Override for custom alerting (Slack, email, PagerDuty)."""
        print(f"ALERT: {message}")

    @property
    def remaining(self) -> int:
        self._check_reset()
        return max(0, self.daily_limit - self._used)

    @property
    def usage_report(self) -> dict:
        self._check_reset()
        return {
            "used": self._used,
            "limit": self.daily_limit,
            "remaining": self.remaining,
            "usage_pct": f"{(self._used / self.daily_limit) * 100:.1f}%",
        }

Pre-Batch Cost Check

def pre_batch_check(prompts: list, budget: BudgetGuard,
                    duration: int = 5, mode: str = "standard"):
    """Estimate and validate batch cost before submission."""
    per_video = budget.estimate_credits(duration, mode)
    total = len(prompts) * per_video

    print(f"Batch estimate: {len(prompts)} videos x {per_video} credits = {total} credits")
    print(f"Budget remaining: {budget.remaining}")

    if total > budget.remaining:
        raise RuntimeError(
            f"Batch needs {total} credits but only {budget.remaining} remaining. "
            f"Reduce to {budget.remaining // per_video} videos or lower mode."
        )
    return total

Cost-Aware Client

class CostAwareKlingClient:
    """Kling client that enforces budget on every request."""

    def __init__(self, base_client, budget: BudgetGuard):
        self.client = base_client
        self.budget = budget

    def text_to_video(self, prompt: str, **kwargs):
        credits = self.budget.estimate_credits(
            kwargs.get("duration", 5),
            kwargs.get("mode", "standard"),
            kwargs.get("audio", False),
        )
        self.budget.check(credits)

        result = self.client.text_to_video(prompt, **kwargs)
        self.budget.record(credits)
        return result

Optimization Strategies

StrategySavingsImplementation
Standard for drafts3.5x cheapermode: "standard" for iterations
5s clips, extend later50% per clipGenerate 5s, use video-extend selectively
v2.5 Turbo over v2.6Faster (less queue cost)model: "kling-v2-5-turbo"
Skip audio, add in post5x cheapermotion_has_audio: false
Batch off-peakFaster processingSchedule overnight
Cache promptsAvoid duplicatesHash prompt + params, check before submitting

Usage Tracking

import json
from datetime import datetime

class UsageTracker:
    """Log every generation for cost analysis."""

    def __init__(self, log_file: str = "kling_usage.jsonl"):
        self.log_file = log_file

    def log(self, task_id: str, credits: int, model: str,
            duration: int, mode: str, prompt: str):
        entry = {
            "timestamp": datetime.utcnow().isoformat(),
            "task_id": task_id,
            "credits": credits,
            "model": model,
            "duration": duration,
            "mode": mode,
            "prompt_preview": prompt[:100],
        }
        with open(self.log_file, "a") as f:
            f.write(json.dumps(entry) + "\n")

Prerequisites

  • An approved credit budget, synthetic or rights-cleared test brief, authorized workspace, policy review, draft-only destination, redaction policy, and rollback owner.

Instructions

  1. Measure credit controls with a bounded sandbox canary and log aggregate consumption only; never store prompt previews, private data, asset URLs, or credentials in cost records.
  2. Verify the approved budget, policy/rights outcome, destination, retention, and cancellation path before submitting work.
  3. Halt and cancel queued drafts on a credit anomaly, policy concern, or retention drift; restore the prior budget configuration before retrying.
  4. Retain a redacted cost receipt only for the approved window, then remove temporary assets and test records.

Output

Produce a cost-control receipt with environment, approved/observed aggregate credits, model/duration category, policy/rights and draft-only checks, cancellation or rollback action, owner approval, and cleanup proof. Exclude prompts, asset URLs, identities, and secrets.

Error Handling

ConditionResponse
Credit cap is exceeded or usage is anomalousStop the canary, cancel queued work, and restore the approved budget configuration.
Sensitive data reaches a cost logDelete the record, correct redaction, and repeat only with aggregate fields.

Examples

env=ci-sandbox; category=standard-5s; budget=40-credits; observed=20-credits; policy=pass; destination=draft-only; cleanup=verified supports review.

Resources

How it compares

This skill automates budget enforcement and alerting for Kling AI tasks, which differs from manually tracking and managing spending.

Compared to similar skills

klingai-cost-controls side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
klingai-cost-controls (this skill)12moReviewBeginner
trading-ops-runbook06moNo flagsIntermediate
model-usage54moReviewBeginner
monitoring-whale-activity32moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by jeremylongshore

View all by jeremylongshore →

analyzing-logs

jeremylongshore

Analyze application logs to detect performance issues, identify error patterns, and improve stability by extracting key insights.

14123

ollama-setup

jeremylongshore

Configure auto-configure Ollama when user needs local LLM deployment, free AI alternatives, or wants to eliminate hosted API costs. Trigger phrases: "install ollama", "local AI", "free LLM", "self-hosted AI", "replace OpenAI", "no API costs". Use when appropriate context detected. Trigger with relevant phrases based on skill purpose.

1167

backtesting-trading-strategies

jeremylongshore

Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".

1071

generating-database-seed-data

jeremylongshore

Process this skill enables AI assistant to generate realistic test data and database seed scripts for development and testing environments. it uses faker libraries to create realistic data, maintains relational integrity, and allows configurable data volumes. u... Use when working with databases or data models. Trigger with phrases like 'database', 'query', or 'schema'.

1033

cursor-codebase-indexing

jeremylongshore

Execute set up and optimize Cursor codebase indexing. Triggers on "cursor index setup", "codebase indexing", "index codebase", "cursor semantic search". Use when working with cursor codebase indexing functionality. Trigger with phrases like "cursor codebase indexing", "cursor indexing", "cursor".

885

testing-mobile-apps

jeremylongshore

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

810

Search skills

Search the agent skills registry