Source profileQuality 93/100

KyaniteLabs/kinocut/skills/kinocut/SKILL.md

kinocut

Use Kinocut for guarded video editing, source-backed planning, FFmpeg operations, media analysis, subtitles, audio workflows, Hyperframes rendering, repurposing packages, and release checkpoints through an MCP server, Python client, or CLI. Trigger when an agent needs to inspect, plan, edit, render, validate, or package local media safely.

Source repository stars
128
Declared platforms
0
Static risk flags
1
Last source update
2026-08-25
Source checked
2026-08-28

Decision brief

What it does: where it fits

Use Kinocut when an agent needs a structured video-editing surface instead of hand-writing FFmpeg commands. It exposes MCP tools, a Python client, and a CLI for editing, analysis, subtitles, audio, Hyperframes, layered compositing, and local repurposing workflows.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/KyaniteLabs/kinocut --skill "skills/kinocut"
    Safe inspection promptEditorial

    Inspect the Agent Skill "kinocut" from https://github.com/KyaniteLabs/kinocut/blob/882137f74b1a11ec2ff68f8c97d0b2f8c79a33be/skills/kinocut/SKILL.md at commit 882137f74b1a11ec2ff68f8c97d0b2f8c79a33be. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Governed AI-video Review and Salvage

      Use videoverdict, videoacceptanceeval, videobodyswap, and videosalvage (or their flat CLI and Python equivalents) for exact-asset editorial decisions and derivative recovery. A non-approved verdict may capture agent analysis, but an approved disposition must bind an active, exac…

      Use videoverdict, videoacceptanceeval, videobodyswap, and videosalvage (or their flat CLI and Python equivalents) for exact-asset editorial decisions and derivative recovery. A non-approved verdict may capture agent ana…Never invent a decision id, pass an unstored approval, or look for a force/override route. Body swap rejects duration mismatch unless the caller chooses an explicit policy. Salvage requires an existing private project,…Acceptance evaluation takes active stored acceptancespecid and verdictids, never caller-built evidence objects. Public body swap always takes projectdir first and both source paths must resolve to active assets in that…
    2. 02

      Agent Workflow Engine

      When the edit is a multi-step job (not a single tool call), use the workflow engine to plan, validate, render, recover, and prove it from one JSON job-spec — through videoworkflow (MCP), workflow- (CLI), or Client.workflow (Python). Ops are a small allowlist (probe | trim | resi…

      workflow-validate --spec job.json — cheap structural gate; renders nothing.workflow-plan --spec job.json --save-plan plan.json — dry-run op graph + source probes/hashes; renders zero media.workflow-render --spec job.json --save-receipt receipt.json — execute sequentially; emit a provenance receipt (per-step hashes, cleanup manifest, determinism caveat). Add --all-variants for batch variants.
    3. 03

      Workflow

      1. Inspect the input first: kino info or the MCP/Python equivalent. 2. Make a low-risk plan: trim, resize, normalize audio, subtitles, overlays, effects, or Hyperframes render. 3. Prefer previews or dry-run manifests before expensive or destructive exports: - preview for quick v…

      Inspect the input first: kino info or the MCP/Python equivalent.Make a low-risk plan: trim, resize, normalize audio, subtitles, overlays, effects, or Hyperframes render.Prefer previews or dry-run manifests before expensive or destructive exports:
    4. 04

      MCP Setup

      Review the “MCP Setup” section in the pinned source before continuing.

      Review and apply the “MCP Setup” source section.
    5. 05

      Default path (do this first)

      1. kino doctor then kino --format json info . 2. Plan with videointent (optional goal= compiles a cutfile; a 360/desk/table/x4 goal also proposes a 360assemblyplan) — do not list 196 tools. 3. Render (videocutfilerender, videoedit, workflow, or a single engine tool). For 360: vi…

      kino doctor then kino --format json info .Plan with videointent (optional goal= compiles a cutfile; a 360/desk/table/x4 goal also proposes a 360assemblyplan) — do not list 196 tools.Render (videocutfilerender, videoedit, workflow, or a single engine tool). For 360: videoreviewdecide approve/reject on that plan, then render — never render a proposed plan. .insv is rejected; need a stitched 360 MP4.…

    Permission review

    Static risk signals and limitations

    Reads files

    low · line 144

    The documentation asks the agent to read local files, directories, or repositories.

    Inspect the input first: `kino info <file>` or the MCP/Python equivalent.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score93/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars128SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    KyaniteLabs/kinocut
    Skill path
    skills/kinocut/SKILL.md
    Commit
    882137f74b1a11ec2ff68f8c97d0b2f8c79a33be
    License
    Apache-2.0
    Collected
    2026-08-28
    Default branch
    master
    View the original SKILL.md

    Kinocut

    Use Kinocut when an agent needs a structured video-editing surface instead of hand-writing FFmpeg commands. It exposes MCP tools, a Python client, and a CLI for editing, analysis, subtitles, audio, Hyperframes, layered compositing, and local repurposing workflows.

    Default path (do this first)

    1. kino doctor then kino --format json info <file>.
    2. Plan with video_intent (optional goal= compiles a cutfile; a 360/desk/table/x4 goal also proposes a 360_assembly_plan) — do not list 196 tools.
    3. Render (video_cutfile_render, video_edit, workflow, or a single engine tool). For 360: video_review_decide approve/reject on that plan, then render — never render a proposed plan. .insv is rejected; need a stitched 360 MP4. Guide: docs/360_ASSEMBLY.md.
    4. video-quality-check / assert_quality. Sync repurpose and shorts-package fail-closed at score 80 unless skipped/allow_fail.
    5. Human visual/audio review. Never treat a receipt as published.

    Depth (rescue, salvage, composite, Hyperframes, thin sound S12): docs/TOOLS.md, docs/RESCUE.md, docs/WORKFLOWS.md. Workflow allowlist: probe, trim, resize, convert, crop, add_text, merge, composite_layers, burn_in.

    Start Here

    • Read ../../README.md for install and the safety contract.
    • Run kino doctor before FFmpeg / Hyperframes / AI extras.

    Choose A Surface

    • MCP: best for Claude Code, Cursor, Codex-style clients, and other agent hosts. Configure uvx --from kinocut kino.
    • CLI: best for direct local edits, quick diagnostics, composite-layers --dry-run, batch jobs, and CI-friendly JSON output.
    • Python client: best for repeatable pipelines that need structured results, output paths, and saved layer-plan receipts.

    360 dual-cam assembly (published 1.14.0)

    Use when the source is a stitched equirect 360 MP4 from any camera (Insta360, Ricoh Theta, GoPro MAX, DJI Osmo 360, …) and the ask is two virtual cameras as split / switch / PiP / single.

    1. video_intent(verb="reformat_vertical", goal="desk 360 split 9:16", source=ABS_PATH) or Client.propose_360_assembly(...).
    2. Show cameras, layout, and storyboard stills. Do not invent yaw/pitch.
    3. video_review_decide / Client.decide_360_assembly with approve or reject.
    4. Render only an approved plan (Client.render_360_assembly or video_review_decide + output_path).

    There is no video_360_* MCP tool and no kino 360 command. CLI intent and review-decide do not run this compiler. Director plugs (Ollama first; cloud only with allow_cloud) may propose JSON; they never write pixels. In pip 1.14.0.

    Product / object matte (landing; not in 1.15.0)

    Use the existing hyperframes-remove-background / hyperframes_remove_background command. Default model is people. For catalog SKUs, jewelry, bottles, shoes, packaging, or anything that is not a person:

    1. hyperframes_remove_background(info=true) — lists models, no download.
    2. pip install "kinocut[object-matte]" then model="birefnet-general".
    3. Optional --mask-interval 3 on product video. Optional equipment overlay for leftover turntable/stand/tripod/sweep.
    4. Composite onto a shop plate with composite-layers. Keep every src inside the spec directory.

    Do not invent video_product_matte or a 197th tool. Do not fall back to the people model when the object extra is missing. Guide: docs/PRODUCT_MATTE.md. Example: examples/product-matte/.

    Dedicated Video Rescue

    Use video_rescue_*, rescue-*, or Client.rescue_* when the request is to fix one local clip while preserving its source, story, and timeline.

    Required sequence:

    1. Call plan and save the plan artifact.
    2. Present safe_repairs, recommendations, unavailable_repairs, blocked_repairs, previews, package intents, capabilities, and estimate to the user.
    3. Inspect the plan before render. Obtain or infer explicit approval only for IDs in safe_repairs; omitting the ID list means all safe IDs in the reviewed plan.
    4. Call render with exactly those approved safe IDs.
    5. Inspect the render receipt, then report package paths, unavailable sidecars, integrity, gating verification, privacy, resume, and cleanup state.

    Never render directly from an unreviewed plan. Never add recommendation IDs, unavailable IDs, or blocked IDs to approval. Never use cloud tools, burn rescue captions, rewrite the source, or treat unavailable as automatic failure. A cancellation or verification failure must remain unpromoted or quarantined.

    Deterministic AI-video Inspection

    Use video_ingest, video_preflight, and video_inspect_temporal (or their flat CLI and Python equivalents) when generated footage needs evidence before an edit decision. Ingest first, then address the asset by its returned hash. Never replace that asset id with a host path or construct an AssetRecord at the public boundary. Temporal inspection returns the full sampled-frame and motion-strip package, deterministic findings, and explicit unavailable provider capabilities. Provider absence is expected and must not trigger a download or a network fallback.

    Governed AI-video Review and Salvage

    Use video_verdict, video_acceptance_eval, video_body_swap, and video_salvage (or their flat CLI and Python equivalents) for exact-asset editorial decisions and derivative recovery. A non-approved verdict may capture agent analysis, but an approved disposition must bind an active, exact human decision with explicit requirement, role, and artifact evidence. Acceptance evaluation is derived rather than an approval action, and every salvage output starts in a fresh non-approved review slot.

    Never invent a decision id, pass an unstored approval, or look for a force/override route. Body swap rejects duration mismatch unless the caller chooses an explicit policy. Salvage requires an existing private project, a stored source asset, a bounded recipe policy, and an exact acceptance-spec id.

    Acceptance evaluation takes active stored acceptance_spec_id and verdict_ids, never caller-built evidence objects. Public body swap always takes project_dir first and both source paths must resolve to active assets in that exact project.

    Read docs/AI_VIDEO_REVIEW_AND_SALVAGE.md before operating this workflow. Treat every derivative as new non-approved work and keep the explicit human visual/audio gate before publication.

    Post-Rescue Planning

    Use the matching video_* MCP tool, flat CLI command, or Client method when the request needs semantic retrieval, ordinary cleanup edits, subject-aware transforms, restoration, composition, creative coordination, or remote egress. Pass JSON-compatible evidence and intent; present the returned plan and diff before any separate render step.

    Never invent source descriptions, hide uncertainty, infer approval from a plan, or treat a missing local executor as permission to use a cloud provider. Remote work requires a separate egress manifest and approval. A planner that lacks evidence or capability must abstain.

    Layered Compositing

    Use composite-layers / video_composite_layers when the edit is an ordered stack of image, video, or solid layers, especially lower thirds, picture-in-picture variants, blurback plates, masks/mattes, or platform-specific layout variants.

    Prefer this path over raw FFmpeg filtergraphs when an agent needs transforms, opacity, start/duration windows, mask/matte alpha sources, or a receipt that can be reviewed before publishing.

    Plan-first flow:

    1. Write a JSON spec with canvas, ordered layers, and explicit output.
    2. Run kino composite-layers --spec layers.json --dry-run --save-layer-plan layer-plan.json.
    3. Inspect the layer plan for source hashes, filtergraph hash, transforms, rotation/pivot, blend modes, timing windows, and masks.
    4. Render only after the plan looks right.
    5. Run video-quality-check, storyboard or thumbnail, and video_release_checkpoint.

    The compositor supports allowlisted full-canvas and positioned blend modes (multiply, screen, overlay, darken, lighten) and rotation with a pivot reference point; the layer_plan receipt is v2. Positioned non-normal blend requires explicit width and height, an integral nonnegative in-canvas position, full opacity, and no scale, rotation/pivot, mask/matte, or timing window. It crops the running base, blends the same-size layer, and overlays the result back. Full-canvas blend remains supported; other blend geometry fails closed with unsupported_blend_geometry. The receipt uses existing per-layer position and transform fields plus additive features.positioned_blend. Output is video-only, and anchor remains a position alias distinct from pivot. Still deferred and fail-closed: other positioned/scaled/masked/timed blend combinations, rotation + mask, per-layer effect routing, audio compositing, and full NLE adapters. Do not use composite-layers as a full NLE replacement.

    Agent Workflow Engine

    When the edit is a multi-step job (not a single tool call), use the workflow engine to plan, validate, render, recover, and prove it from one JSON job-spec — through video_workflow_* (MCP), workflow-* (CLI), or Client.workflow_* (Python). Ops are a small allowlist (probe | trim | resize | convert | merge | add_text) mapped 1:1 to vetted engines; media references are symbolic (@sources.*, @work/*, @outputs.*) and workspace-confined; everything fails closed. See ../../docs/WORKFLOWS.md.

    Plan → validate → render → inspect → resume:

    1. workflow-validate --spec job.json — cheap structural gate; renders nothing.
    2. workflow-plan --spec job.json --save-plan plan.json — dry-run op graph + source probes/hashes; renders zero media.
    3. workflow-render --spec job.json --save-receipt receipt.json — execute sequentially; emit a provenance receipt (per-step hashes, cleanup manifest, determinism caveat). Add --all-variants for batch variants.
    4. workflow-inspect --receipt receipt.json — read-only integrity re-check + human-review pointers before trusting a receipt.
    5. workflow-render --spec job.json --resume receipt.json — resume a job that failed with intermediates kept (fail-closed on a changed spec).

    Receipts store workspace-relative paths only — keep specs and example receipts free of home paths, usernames, and tokens.

    Workflow

    1. Inspect the input first: kino info <file> or the MCP/Python equivalent.
    2. Make a low-risk plan: trim, resize, normalize audio, subtitles, overlays, effects, or Hyperframes render.
    3. Prefer previews or dry-run manifests before expensive or destructive exports:
      • preview for quick visual review.
      • repurpose-plan before repurpose.
      • Hyperframes inspect, snapshot, or still before full render.
      • For saved shorts plans: shorts-plan-showshorts-reviewshorts-rendershorts-package.
      • For thin sound: sound-capabilities then sound-plan-validate / sound-voice-batch / sound-mix-render / sound-qa-loudness / sound-qa-asr (or kino sound <action>).
    4. Produce release artifacts before publishing:
      • video-quality-check
      • storyboard or thumbnail
      • video_release_checkpoint through MCP or Client.release_checkpoint() through Python
    5. Ask for human visual/audio review before treating generated media as final. Stream-shorts packages still require a separate listening gate (G004); automation does not close it. Do not claim full-episode sound completion from the thin S12 public join alone.

    CLI Examples

    kino doctor
    kino --format json info interview.mp4
    kino trim interview.mp4 -s 00:02:15 -d 45
    kino video-ai-transcribe clip.mp4 --output captions.srt
    kino subtitles clip.mp4 captions.srt
    # subtitles accept .srt, .vtt, or authored .ass; SRT/VTT render dimension-aware.
    # Add --style "FontSize=24,PrimaryColour=&H00FFFFFF&" to override force_style;
    # omit --style to preserve an authored .ass file's PlayRes, styles, and positions.
    kino resize clip.mp4 --aspect-ratio 9:16
    kino composite-layers --spec layers.json --dry-run --save-layer-plan layer-plan.json
    kino composite-layers --spec layers.json -o composite.mp4 --save-layer-plan layer-plan.json
    kino video-quality-check clip.mp4
    kino repurpose-plan clip.mp4 --platforms youtube-shorts instagram-reel tiktok
    kino repurpose clip.mp4 --platforms youtube-shorts instagram-reel tiktok
    # Saved-plan stream shorts (after a plan exists under PLAN_DIR):
    kino shorts-plan-show PLAN_DIR --format json
    kino shorts-review PLAN_DIR --candidate-id candidate_01 --decision approve
    kino shorts-render PLAN_DIR --candidate-id candidate_01
    kino shorts-package PLAN_DIR --candidate-id candidate_01
    # Thin sound public join (local-first; not full-episode completion):
    kino --format json sound-capabilities
    kino --format json sound plan-validate
    kino --format json sound-voice-batch
    kino --format json sound-qa-loudness
    

    Python Example

    from kinocut import Client
    
    video = Client()
    plan = video.composite_layers(
        "layers.json",
        output="composite.mp4",
        save_layer_plan="layer-plan.json",
        dry_run=True,
    )
    

    MCP Setup

    {
      "mcpServers": {
        "kinocut": {
          "command": "uvx",
          "args": ["--from", "kinocut", "kino"]
        }
      }
    }
    

    Guardrails

    • Do not publish or hand off media without a quality check and human review.
    • Prefer structured Kinocut tools over raw FFmpeg shell commands; use composite-layers/video_composite_layers for ordered layer stacks instead of hand-written filtergraphs.
    • Keep output paths explicit so generated media is easy to inspect.
    • For Hyperframes, verify project structure and rendered snapshots before full video export.

    Frequently asked questions

    What to verify before installation and use

    What does the kinocut source document cover?

    Use Kinocut when an agent needs a structured video-editing surface instead of hand-writing FFmpeg commands. It exposes MCP tools, a Python client, and a CLI for editing, analysis, subtitles, audio, Hyperframes, layered compositing, and local repurposing workflows.

    How do I install kinocut?

    The source record exposes this install command: npx skills add https://github.com/KyaniteLabs/kinocut --skill "skills/kinocut". Inspect the command and pinned source before running it.

    Which permission-related actions were detected?

    Static rules flagged read-files in the source; the page lists the matching lines and excerpts.

    Alternatives

    Compare before choosing

    Computed 9536,049

    K-Dense-AI/scientific-agent-skills

    simpy

    Build, inspect, test, and analyze bounded process-based discrete-event simulations with SimPy, including events, resources, interrupts, monitoring, replications, warm-up, and reproducible output analysis.

    Computed 94159

    datadog-labs/agent-skills

    agent-observability-eval-bootstrap

    Bootstrap evaluators from production traces — by default propose online LLM-judge evaluators and, after you confirm, create them in Datadog as disabled drafts (never auto-enabled); on request emit Python SDK code or a framework-agnostic JSON spec instead. Use when user says "bootstrap evaluators", "generate evaluators", "create evals from traces", "eval bootstrap", "write evaluators", "build eval suite", "publish evaluators", or wants to generate BaseEvaluator/LLMJudge code or online judge confi

    Computed 936

    mgiovani/cc-arsenal

    ci-local

    Run the checks a GitHub Actions workflow would run, locally, when Actions is unavailable or out of quota. Parses .github/workflows/*.yml, extracts the jobs/steps that gate merges (lint, typecheck, test, build), translates them to local commands respecting the workflow's pinned node/python versions and env, executes them sequentially, and reports a parity table of what passed locally vs. what can't be replicated (service containers, secrets, matrix dimensions) and why. Activates on "CI quota", "A

    Computed 9152

    adriannoes/awesome-agentic-ai

    detecting-typosquatting-packages-in-npm-pypi

    Detects typosquatting attacks in npm and PyPI package registries by analyzing package name similarity using Levenshtein distance and other string metrics, examining publish date heuristics to identify recently created packages mimicking established ones, and flagging download count anomalies where suspicious packages have disproportionately low usage compared to their legitimate targets. The analyst queries the PyPI JSON API and npm registry API to gather package metadata for automated compariso