Klingai Usage AnalyticsSAFE
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
Overview
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
4f83675ca38aOBSERVED · 2026-10-09Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: klingai-usage-analytics description: 'Build usage analytics and reporting for Kling AI video generation. Use when tracking patterns, analyzing costs, or building dashboards. Trigger with phrases like ''klingai analytics'', ''kling ai usage report'', ''klingai metrics'', ''video generation stats''. ' allowed-tools: Read, Write, Edit, Bash(npm:*), Grep version: 1.18.0 license: MIT author: Jeremy Longshore <[email protected]> tags: - saas - kling-ai - analytics - reporting compatibility: Designed for Claude Code --- # Kling AI Usage Analytics ## Overview Track video generation usage with structured logging, aggregate metrics, daily reports, and cost analysis. Built on JSONL event logs that can feed into any analytics platform. ## Event Logger ```python import json import time from datetime import datetime from pathlib import Path class KlingEventLogger: """Append-only JSONL event log for Kling AI operations.""" def __init__(self, log_dir: str = "logs"): self.log_dir = Path(log_dir) self.log_dir.mkdir(exist_ok=True) def _write(self, event: dict): date = datetime.utcnow().strftime("%Y-%m-%d") filepath = self.log_dir / f"kling-{date}.jsonl" event["timestamp"] = datetime.utcnow().isoformat() with open(filepath, "a") as f: f.write(json.dumps(event) + "\n") def log_submission(self, task_id, prompt, model, duration, mode): self._write({ "event": "task_submitted", "task_id": task_id, "model": model, "duration": int(duration), "mode": mode, "prompt_len": len(prompt), }) def log_completion(self, task_id, status, elapsed_sec, credits_used): self._write({ "event": "task_completed", "task_id": task_id, "status": status, "elapsed_sec": elapsed_sec, "credits_used": credits_used, }) def log_error(self, task_id, error_type, message): self._write({ "event": "task_error", "task_id": task_id, "error_type": error_type, "message": message[:200], }) ``` ## Analytics Aggregator ```python from collections import defaultdict class UsageAnalytics: """Aggregate metrics from JSONL event logs.""" def __init__(self, log_dir: str = "logs"): self.log_dir = Path(log_dir) def _read_events(self, date: str = None): pattern = f"kling-{date}.jsonl" if date else "kling-*.jsonl" events = [] for filepath in sorted(self.log_dir.glob(pattern)): with open(filepath) as f: for line in f: events.append(json.loads(line)) return events def daily_summary(self, date: str = None) -> dict: date = date or datetime.utcnow().strftime("%Y-%m-%d") events = self._read_events(date) submitted = [e for e in events if e["event"] == "task_submitted"] completed = [e for e in events if e["event"] == "task_completed"] errors = [e for e in events if e["event"] == "task_error"] succeeded = [e for e in completed if e["status"] == "succeed"] failed = [e for e in completed if e["status"] == "failed"] total_credits = sum(e.get("credits_used", 0) for e in completed) avg_elapsed = (sum(e["elapsed_sec"] for e in succeeded) / len(succeeded) if succeeded else 0) by_model = defaultdict(int) for e in submitted: by_model[e["model"]] += 1 return { "date": date, "total_submitted": len(submitted), "succeeded": len(succeeded), "failed": len(failed), "errors": len(errors), "success_rate": f"{len(succeeded) / max(len(completed), 1) * 100:.1f}%", "total_credits": total_credits, "avg_generation_sec": round(avg_elapsed), "by_model": dict(by_model), } def print_report(self, date: str = None): s = self.daily_summary(date) print(f"\n=== Kling AI Usage Report: {s['date']} ===") print(f"Submitted: {s['total_submitted']}") print(f"Succeeded: {s['succeeded']}") print(f"Failed: {s['failed']}") print(f"Success rate: {s['success_rate']}") print(f"Credits used: {s['total_credits']}") print(f"Avg time: {s['avg_generation_sec']}s") print(f"By model:") for model, count in s["by_model"].items(): print(f" {model}: {count}") ``` ## Cost Analysis ```python def cost_analysis(analytics: UsageAnalytics, days: int = 7): """Analyze cost trends over recent days.""" from datetime import timedelta daily_costs = [] for i in range(days): date = (datetime.utcnow() - timedelta(days=i)).strftime("%Y-%m-%d") summary = analytics.daily_summary(date) daily_costs.append({ "date": date, "credits": summary["total_credits"], "videos": summary["total_submitted"], "estimated_usd": summary["total_credits"] * 0.14, }) total_credits = sum(d["credits"] for d in daily_costs) total_videos = sum(d["videos"] for d in daily_costs) total_cost = sum(d["estimated_usd"] for d in daily_costs) print(f"\n=== {days}-Day Cost Summary ===") print(f"Total credits: {total_credits}") print(f"Total videos: {total_videos}") print(f"Est. cost: ${total_cost:.2f}") print(f"Avg/day: ${total_cost / days:.2f}") for d in daily_costs: print(f" {d['date']}: {d['credits']} credits, {d['videos']} videos, ${d['estimated_usd']:.2f}") ``` ## Export to CSV ```python import csv def export_usage_csv(analytics: UsageAnalytics, output: str = "kling_usage.csv"): events = analytics._read_events() with open(output, "w", newline="") as f: writer = csv.DictWriter(f, fieldnames=["time
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (0)
No findings outside the package's declared scope.
Gates applied: no_behavioural_pass.
4f83675ca38afull audit observations/trust-audit/skill/jeremylongshore__klingai-usage-analytics.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-09 | 4f83675ca38a | SAFE | B | 89 | first audit |
Questions
What does the Klingai Usage Analytics skill do?
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
Is Klingai Usage Analytics safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Klingai Usage Analytics access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does Klingai Usage Analytics work with?
Its documentation mentions claude-code. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (4f83675ca38a), read on 2026-10-09. The repository is watched, and a new audit runs when it changes — this is the first audit.