edit-footage-with-code@1.0.4
CAUTION· static onlyPublisher claims: "Edit real footage with an agent: turn raw takes of a talking head, podcast, vlog, course or ad into a clean cut, then add captions, B-roll, motion graphics and sound with HyperFrames or Remotion. Reads the take as text and audio, removes dead air, retakes and stumbles without clipping words, writes the cut as an edit list a person can review, keeps every graphic on the spoken word, and checks the result with numbers and frames before a person watches; tested scripts and defaults from 2,318 editors' posts. Use for "edit this video", "cut my footage", "remove the pauses", "cut the dead air", "clean up my talking head", "rough cut", "edit with HyperFrames", "edit with Remotion", "make it look edited", when an agent's edit keeps coming back wrong, or to rank cuts with an unbiased LLM judge ("which edit is better"). Not for generating video from a prompt (varg-ai), for choosing a hosted editing service (varg-video-editing), or for finding music, B-roll or sound effects (video-asset-sources)." Observed in sandbox: static analysis only — behavior not yet observed.
Coverage
Static only; nothing was run yet.The label rests on the code, the instruction files and the publisher. The honeypot run replaces this verdict when it completes.
Is [email protected] safe to install?
KillerSkills analysed it statically (a sandbox run is pending) on 2026-11-12 and scored it 57/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: HTML comment carrying imperative instructions to the agent. Summary: static analysis only — behavior not yet observed.
Behavior trace
Queued for honeypot run · static analysis onlyThis version has not been detonated yet. The score above counts behavior as unknown (50/100), so it cannot read Verified until the honeypot run completes and replaces this verdict.
Static findings
Generated by .github/readme/build.ts from SKILL.md files and .github/readme/*.json. Edit those and run `bun .github/readme/build.ts`; CI fails when this file isFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.raw = subprocess.run(["ffmpeg", "-v", "error", "-i", path, "-vn", "-ac", "1", "-ar", "16000",Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.raw = subprocess.run(["ffmpeg", "-v", "error", "-i", video, "-vf", "scale=64:36,format=gray", "-f", "rawvideo", "-"], capture_output=True).stdoutFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.out = subprocess.run(["ffprobe", "-v", "error", "-show_entries",Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.return subprocess.run(c, capture_output=True, text=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.npx hyperframes transcribe take.mp4 -d edit --model small.en --json # or any word-level JSON: [{text,start,end}]Fix: Pin versions and sources; vendor anything fetched at install time.npx hyperframes transcribe edit/acut.mp4 -d edit/heard --model small.en --jsonFix: Pin versions and sources; vendor anything fetched at install time.raw = subprocess.run(["ffmpeg", "-v", "error", "-i", video, "-vn", "-ac", "1", "-ar", "16000", "-f", "s16le", "-"], capture_output=True).stdoutFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.rate = int(json.loads(subprocess.run(["ffprobe", "-v", "error", "-select_streams", "a:0", "-show_entries", "stream=sample_rate", "-of", "json", a.take],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.r = subprocess.run(["ffmpeg", "-hide_banner", "-nostats", "-i", path, "-an", "-vf",Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.r = subprocess.run(["ffmpeg", "-hide_banner", "-nostats", "-i", path, "-an", "-vf", "blackdetect=d=0.05:pix_th=0.1", "-f", "null", "-"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.… on top - Time everything from the cut's own transcript, `edit/heard/transcript.json`. Do not push single-pass word times through the edit list: on our test clip that lost 23 of 222 words. With an engine you trust (Scribe, or the island pa…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.info = json.loads(subprocess.run(["ffprobe", "-v", "error", "-select_streams", "v:0", "-show_entries", "stream=width,height:format=duration",Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.raw = subprocess.run(["ffmpeg", "-v", "error", "-i", video, "-vn", "-ac", "1", "-ar", "16000", "-f", "s16le", "-"], capture_output=True).stdoutFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.return subprocess.run(cmd, capture_output=True, text=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.r = subprocess.run(cmd, shell=True, capture_output=True, text=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.p.add_argument("--cmd", default="npx hyperframes transcribe {wav} -d {dir} --model {model} --json",Fix: Pin versions and sources; vendor anything fetched at install time.subprocess.run(["ffmpeg", "-y", "-v", "error", "-ss", "%.3f" % s0, "-to", "%.3f" % e0, "-i", a.take, "-vn", "-ac", "1", "-ar", "16000", wav], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.--transcribe "npx hyperframes transcribe {video} -d {dir} --model small.en --json"Fix: Pin versions and sources; vendor anything fetched at install time.subprocess.run(a.transcribe.format(video=shlex.quote(wav), dir=shlex.quote(tmp)), shell=True, capture_output=True, text=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(["ffmpeg", "-y", "-v", "error", "-i", v, "-vn", "-ac", "1", "-ar", "16000", wav], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.raw = subprocess.run(["ffmpeg", "-v", "error", "-i", video, "-vf", "scale=64:36,format=gray", "-f", "rawvideo", "-"], capture_output=True).stdoutFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.
What would make this Verified
23 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim vargai: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Hidden instructions≈ +6 on the totalRemove HTML comments, zero-width characters and white-on-white text that carry instructions. Everything the agent is meant to read should be visible to the person reading the file.
- Python subprocess execution detected≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
- npx invocation of non-well-known package≈ +2 on the totalPin versions and sources; vendor anything fetched at install time.
- File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.