Install
$ agentstack add skill-avenoxai-avenoxskills-avenox-video ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Avenox Studio — operator router
The fast operator guide for a local-first, agent-operated video pipeline. Everything runs on your own machine: no cloud editor, no upload-to-render.
The human directs and approves quality; the agent runs the pipeline.
Setup
export STUDIO_JOBS="$HOME/video/projects" # heavy media lives here
export STUDIO_ROOT="/path/to/this/repo" # scripts, templates, brand
Requirements: macOS (hardware encode via h264_videotoolbox; Apple Silicon for mlx-whisper), ffmpeg, python3, melt/MLT, Node (for HyperFrames). Most of this works on Linux with libx264 and a CUDA whisper build substituted in.
Operating principles
- Media discipline. Heavy media NEVER in a cloud-synced folder — sync will
thrash on multi-GB intermediates and can corrupt in-flight writes. Jobs live in $STUDIO_JOBS// (raw/ cut/ graphics/ audio/ outputs/). Your notes system holds only the brain: this system, the brand spec, edit.json plans.
- Director loop. Produce a preview (graphics stills + a fast draft
render) → send for notes → only then final render. Never ship a final without sign-off. This is the single most important rule; an agent that renders finals unreviewed will burn hours on a rejected cut.
- Brand is a hard constraint, not a suggestion. Read
brand/frame.md
before making any graphic. Define it once and lock it. (The reference implementation is deliberately anti-"AI slop": premium editorial, warm paper
- ink + a single accent, no neon/gradient/glassmorphism/3D-gloss.)
- Format: YouTube 16:9 1080p60. Preset in
brand/presets/youtube-16x9.json. - Finishing is hybrid. Auto-generate the draft; the same
.mltopens in
Kdenlive or Shotcut for hand-finishing. Don't try to automate taste.
- Transcription defaults to LOCAL
mlx-whisperwith
whisper-large-v3-turbo — fast, free, and strong on non-English audio. Note that most LLM-routing proxies expose no whisper endpoint; if you go remote, use a dedicated speech API.
Scripts (scripts/)
| Script | Does | |---|---| | autocut.sh IN.mp4 [balanced\|aggressive\|conservative] | silence-cut → _cut.xml (Premiere) or --export variants | | transcribe.py IN.mp4 PREFIX | → transcript/PREFIX_timed.json + _narration.txt | | mltgen.py edit.json out.mlt --base | edit-list → MLT project (Kdenlive/Shotcut/melt) | | vrender.sh project.mlt out.mp4 [fast\|quality] | render (fast = HW draft, quality = CRF18 master) | | grabshot.sh | clipboard screenshot → disk | | slides2png.sh | legacy static slides — prefer HyperFrames | | remove-silence.py | standalone silence pass |
The 7 steps
- Intake — copy raw →
$STUDIO_JOBS//raw/. Confirm the brief and
which segments actually matter.
- Rough cut —
autocut.sh raw.mov balanced→cut/screen_cut.mp4;
transcribe.py for the script. Full recipe → avenox-roughcut skill.
- Graphics — HyperFrames. Route via the
hyperframesskill → usually
motion-graphics (short beats), faceless-explainer (concept stretches), or general-video. Read brand/frame.md first; render animated MP4s into graphics/. Full recipe → avenox-graphics skill.
- Assemble — write
edit.json(template intemplates/edit.json) mixing
cut/*.mp4 + graphics/*.mp4 + music → mltgen.py edit.json project.mlt --base .
- Captions —
transcribe.py→.srt; applybrand/caption-corrections.json
(copy it from caption-corrections.example.json — a find/replace map for terms your ASR reliably mangles). Ship as YouTube CC, not burned-in.
- Music — bed under everything, sidechain-duck under voice, target
~-14 LUFS. Track attribution in CREDITS.md.
- Export —
vrender.sh project.mlt draft.mp4 fast→ director review →
vrender.sh … final.mp4 quality → prune scratch files.
Graphics quality bar
HyperFrames clips must obey brand/frame.md. Prefer type-driven, restrained, weighty motion. If a beat doesn't need motion, a clean static frame is fine — don't animate for the sake of animating.
Reference
- Rough cut:
avenox-roughcut· Graphics:avenox-graphics - HyperFrames skills:
hyperframes(router),hyperframes-cli,
hyperframes-animation, hyperframes-creative, motion-graphics, faceless-explainer, general-video
- Brand spec:
brand/frame.md(fill in frombrand/frame.template.md)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: avenoxai
- Source: avenoxai/avenoxskills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.