2S

Videos teach people. Now they teach your AI.

Turn any tutorial into a skill your AI can actually use.

100% free · open source

npx skills@latest add brenoepics/video-to-skill

There’s a tutorial for everything.

Your AI has never seen any of them.

Point it at any video. It watches, learns the steps, and teaches them to your AI.

How to edit your first video

  • Trim the clips
  • Add music
  • Export in 4K

Learned

A two-minute tutorial? Learned in seconds — faster than you could watch it.

  • Spreadsheets
  • Video editing
  • Design tools
  • Coding
  • Anything on a screen

Captions mishear. It reads the actual screen.

The captions heard “some”. The screen actually read =SUM(B3:B10).

That’s the difference between hearing about it and seeing it done.

Before it trusts a lesson, it tries it. What works gets a badge. What can’t be tested says so.

Trim the clips
Add music
Export in 4K
One step it couldn’t try it says so
Tried it. It works.

Everything happens on your computer.

Your videos never go anywhere.

Teach your AI something today.

100% free. Open source. One command.

npx skills@latest add brenoepics/video-to-skill

Copy this into your AI’s terminal — it does the rest.

Which AI do you use?

Documentation

video-to-skill, in detail

This is the written reference behind the film above: what video-to-skill is, how it reads a video, how a step earns its badge, what it costs in time, and where it stops working.

What is video-to-skill?

video-to-skill (V2S) is a free, open-source tool that turns any tutorial video — a YouTube URL or a local file — into an installable, execution-verified skill for AI coding agents. It watches the video, reads the text on screen, tests every step it writes down, and hands your agent a skill it can actually run.

One command installs it:

npx skills@latest add brenoepics/video-to-skill

Since v0.2.3 a generated skill installs for every agent detected on the machine — Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Amp — as one real copy in ~/.agents/skills with a relative symlink from each of the others. One source of truth, so a later update reaches all of them.

Why the transcript alone isn’t enough

video-to-skill reads the on-screen text out of the frames, not only the audio transcript, because a transcript loses exactly the details that make a step runnable. Three mishearings recorded during real runs:

What the narration said What the frame showed
“some” =SUM(B3:B10)
“QBang” :q!
“the first extension called Vim” vscodevim.vim v1.18.9

On-screen text outranks narration everywhere in the pipeline: commands are read off pixels, never paraphrased. Every step also carries [t=MM:SS] provenance plus the frame it was read from, so any claim can be checked against the second of video it came from.

How verification works

Verification in video-to-skill is done by a fresh sandboxed sub-agent that sees only the generated package and never the video. It executes each step against that step’s own success criteria, and the badge is whatever the run earned:

  • ✅ verified — the step ran and its success criteria passed.
  • 🟡 partially verified — some criteria passed, others could not be checked.
  • ⚠ not verified — the step could not be executed, and the skill says so.

Steps that would be unsafe to execute are skipped by policy and labelled as skipped — never quietly marked green.

A repair from a real run: a tutorial’s paste step compiled to "+P, which pastes from Vim’s internal register rather than the system clipboard. The sandbox ran it, the criterion failed, the repair loop corrected it to "+p, and the re-run verified the paste against the real macOS clipboard.

Steps the pipeline is unsure about ship flagged as low-confidence instead of shipping silently, and a video with no procedure in it is refused with an analysis report rather than fabricated into steps.

How a skill grows across videos

Folding a second video of the same task into an existing skill makes it stronger instead of overwriting it: agreements between the two videos gain dual provenance, conflicts become cited variants rather than silent replacements, and a Sources section records the fold history. A fold invalidates the badge — verification runs again before the skill is reinstalled.

How V2S compares

video-to-skill sits next to two familiar tool families and does a different job from both. Video-to-docs tools turn a video into a document for a person; workflow recorders turn a session you perform into a guide for a person. V2S turns a video you did not record into steps an agent can execute.

What differs video-to-skill Video-to-docs tools Workflow recorders
Who the output is for An AI coding agent, as an installable skill A person, as a document A person, as a step-by-step guide
Where the source comes from Any pre-existing video: a YouTube URL or a local file A video you supply A session you perform and record
What happens to the steps A sandboxed sub-agent executes each one; the badge is ✅, 🟡 or ⚠ Written up as described Recorded as performed
Where the work happens Entirely on your machine; the video never leaves it Varies by product Varies by product

The distinction that matters: a document explains a procedure to a person, while a skill hands an agent steps it can run — each one already executed once in a sandbox before it shipped.

Performance

video-to-skill processed a 2-minute 720p tutorial end to end in 3.3 seconds of wall time — 36.5x realtime — on an Apple M5 with Metal acceleration. The same clip takes 67.5 seconds, or 1.8x realtime, on a 3-core CPU-only GitHub macOS runner. Transcription alone runs at 8.0x realtime locally and 1.3x in CI.

Both figures are reproducible on your own hardware — the same suite prints the same table:

vts-extract bench

CI numbers come from shared 3-core virtual machines with no Metal acceleration, so they are the slow end of the range rather than the typical one.

Privacy and security

video-to-skill runs entirely on your own machine. The video never leaves it, and only the frames the agent chooses to inspect ever enter model context. There are no accounts, no API keys and no telemetry.

A video is untrusted input that flows toward executable steps, so the boundaries are explicit. Every download is checksum-pinned and carries a GitHub build-provenance attestation you can check yourself with gh attestation verify. The compiler rejects secret-shaped strings and fetch-pipe-exec scripts, and text in a video that addresses the agent directly is treated as suspected prompt injection rather than followed as an instruction.

Limitations

video-to-skill is best on screencasts, CLI and GUI tutorials, and talks. Fast physical demos lose motion detail between keyframes. GUI-only claims may be unverifiable by execution — those ship labelled as such, not hidden behind the badge. Non-procedural videos are refused rather than fabricated into steps, and low-confidence steps ship flagged.

Supported platforms are macOS, with Metal acceleration on Apple Silicon, and Linux.

Last updated:

Frequently asked questions

What is video-to-skill?

video-to-skill is a free, open-source tool that turns any tutorial video — a YouTube URL or a local file — into an installable, execution-verified skill for AI coding agents. It reads the text on screen, not just the transcript, and tests every step before the skill ships.

How do I install video-to-skill?

Run npx skills@latest add brenoepics/video-to-skill. That is the whole setup: one command, no account and no API key.

Is video-to-skill free?

Yes. video-to-skill is free and open source under the MIT license, with the full source on GitHub.

Does video-to-skill upload my video anywhere?

No. Everything runs on your own machine: the video never leaves it, and only the frames the agent chooses to inspect enter model context. There is no telemetry.

Which AI agents does video-to-skill work with?

Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Amp. Since v0.2.3 a generated skill installs for every one of them detected on the machine: one real copy in ~/.agents/skills, with a relative symlink from each of the others.

How is video-to-skill different from Loom AI, Scribe, or workflow recorders?

video-to-skill produces an installable, execution-verified skill for an AI agent rather than a document for a person to read. Video-to-docs tools and workflow recorders document a procedure — for a recorder, one you performed and captured yourself. V2S starts from a video you did not have to record and ships steps an agent can run, each executed in a sandbox first.

What does “verified” mean in video-to-skill?

Verified means a fresh sandboxed sub-agent — one that sees only the generated package and never the video — executed the step against its success criteria and it passed. The badges are ✅ verified, 🟡 partially verified and ⚠ not verified; steps that would be unsafe to run are skipped and labelled, never quietly marked green.

Which operating systems does video-to-skill support?

macOS and Linux. On Apple Silicon the transcription stage is Metal-accelerated.

Do I need an API key or an account?

No. video-to-skill needs no account, no API key and no sign-in, and it collects no telemetry.

What are the limitations of video-to-skill?

video-to-skill is best on screencasts, CLI and GUI tutorials, and talks. Fast physical demos lose motion detail between keyframes, GUI-only claims may be unverifiable by execution and ship labelled as such, and non-procedural videos are refused rather than fabricated into steps.

0:00 0:00 Space/K play · ←/→ 5 s · J/L 10 s · 0–9 jump