media-use@r14
VERIFIED· install onlyPublisher claims: "Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Nothing executable in the bundle ran; the trace covers the install step only.- Tested
- every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
Is media-use@r14 safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-13 and scored it 81/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 1 scenarios · 0 deviationsStatic findings
// A project .env may supply provider keys and harmless settings only, the same policy as the CLI. EverythingFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// A missing `.env`, or a `.env` folder (some home dirs have one), is no env file: null. Read without checking first,Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.npx hyperframes media-use resolve --type <type> --intent "<what you need>" --project <dir>Fix: Pin versions and sources; vendor anything fetched at install time.// Walk up ≤5 dirs from startDir; load the first .env (shell env always wins).Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.| Voiceover (`voice`) | Voice Turbo, Free plan: 3 min a month | Voice Turbo on a paid plan, other HeyGen voices, cloning | `npx hyperframes tts` (Kokoro on device) |Fix: Pin versions and sources; vendor anything fetched at install time.…les](../hyperframes/references/plugin-installation.md). **Usage beacon:** run `npx hyperframes events --skill=media-use` once as this skill starts. It sends the skill's name …Fix: Pin versions and sources; vendor anything fetched at install time.// $HYPERFRAMES_API_KEY (or a nearby .env) → the API key saved inFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.test("spawnP uses the resolved node+npx-cli command for npx on win32", async () => {Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.// ── audio_meta.json (output, id-keyed) ───────────────────────────────────────Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.test("a project's .env supplies provider keys only, never programs, runtime options or another account", () => {Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// letting npx resolve `hyperframes` from the project.Fix: Pin versions and sources; vendor anything fetched at install time.parser.add_argument("-o", "--output", default="audio-data.json", help="Output JSON path")Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.| Transcripts | `npx hyperframes transcribe` (Parakeet or whisper) | | |Fix: Pin versions and sources; vendor anything fetched at install time."Out of HyperFrames credits. Run `npx hyperframes billing add-credits --skill media-use`: it opens the page and waits.",Fix: Pin versions and sources; vendor anything fetched at install time.// Regression: on Windows, npx resolves to npx.cmd, which spawn() cannot execFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.console.log(`✓ ${output}${durStr}${wordCount ? ` · ${wordsPath} (${wordCount} words)` : ""}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.const res = synthResult({ status: 2 }, "/tmp/none.wav", "kokoro (npx hyperframes tts)");Fix: Pin versions and sources; vendor anything fetched at install time.mkdirSync(join(project, ".env"), { recursive: true });Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.test("resolveSpawnCommand preserves Windows npx shell metacharacters as argv data", () => {Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.return Response.json({status:'completed', steps:[{type:'model_output', content:[Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why."HeyGen OAuth token expired — run `npx hyperframes auth refresh` (or `npx hyperframes auth login`)",Fix: Pin versions and sources; vendor anything fetched at install time.test("spawnP does not enable shell for npx on darwin/linux", async () => {Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.writeFileSync(join(dir, ".env"), "");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.return "This needs a HyperFrames plan. Run `npx hyperframes billing subscribe --skill media-use`: it opens the page and waits.";Fix: Pin versions and sources; vendor anything fetched at install time.fs.writeFileSync(output + ".json", JSON.stringify({ input, text, consumed, args }));Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.test("loadEnvFromDir skips a .env folder and loads the .env file above it", () => {Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// `npx hyperframes` runs that same CLI with the same Node. Without one it fails rather thanFix: Pin versions and sources; vendor anything fetched at install time.writeFileSync(join(root, ".env"), "ELEVENLABS_API_KEY=from-parent\n");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.test("resolveSpawnCommand routes npx through node+npx-cli on win32 without shell:true", () => {Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.// On Windows, npx resolves to npx.cmd, which Node cannot execute directly.Fix: Pin versions and sources; vendor anything fetched at install time.| Cutouts | | Video: `--type cutout` | `npx hyperframes remove-background` |Fix: Pin versions and sources; vendor anything fetched at install time."no HyperFrames credentials — set $HEYGEN_API_KEY, or run `npx hyperframes auth login` (writes ~/.hyperframes/credentials)",Fix: Pin versions and sources; vendor anything fetched at install time.const label = provider === "elevenlabs" ? "elevenlabs (python)" : "kokoro (npx hyperframes tts)";Fix: Pin versions and sources; vendor anything fetched at install time.`HeyGen credentials at ${cred.unreadable.file} can't be read (${cred.unreadable.code}) — fix or remove that path, then run \`npx hyperframes auth login\``,Fix: Pin versions and sources; vendor anything fetched at install time.return synthResult(r, wavAbs, "kokoro (npx hyperframes tts)");Fix: Pin versions and sources; vendor anything fetched at install time.// ── audio_request.json (input) ────────────────────────────────────────────────Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.result = subprocess.run(cmd, capture_output=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out."This needs a HyperFrames plan. Run `npx hyperframes billing subscribe --skill media-use`: it opens the page and waits.",Fix: Pin versions and sources; vendor anything fetched at install time.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.