# video-to-skill (V2S) > video-to-skill 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 rather than trusting the transcript alone, and a fresh sandboxed sub-agent executes every step before the skill ships. Free and open source under the MIT license. - Installation command: `npx skills@latest add brenoepics/video-to-skill` - Supported agents: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode, Amp. Since v0.2.3 a generated skill installs for every agent detected on the machine: one real copy in `~/.agents/skills`, with a relative symlink from each of the others. - Supported platforms: macOS (Metal-accelerated on Apple Silicon) and Linux. - Implementation language: Rust. Current version: 0.2.3. - Screen-reading evidence: a transcript heard "some" where the screen read `=SUM(B3:B10)`; "QBang" where the screen read `:q!`; "the first extension called Vim" where the screen showed `vscodevim.vim v1.18.9`. - Verification model: a fresh sandboxed sub-agent that sees only the generated package, never the video, executes each step against its success criteria. Badges are ✅ verified, 🟡 partially verified, ⚠ not verified. Steps that would be unsafe to execute are skipped and labelled. - Provenance: every step carries a `[t=MM:SS]` timestamp plus the source frame. Low-confidence steps ship flagged. Non-procedural videos are refused rather than fabricated into steps. - Growth: folding a second video of the same task gives agreements dual provenance, turns conflicts into cited variants, and records the fold history in a Sources section. - Privacy: everything runs locally. The video never leaves the machine, only agent-inspected frames enter model context, and there are no accounts, API keys or telemetry. - Security: downloads are checksum-pinned with GitHub build-provenance attestations verifiable via `gh attestation verify`. The compiler rejects secret-shaped strings and fetch-pipe-exec scripts. Video text addressed to the agent is treated as suspected prompt injection. - Performance: a 2-minute 720p tutorial processes end to end in 3.3 s wall / 36.5x realtime on an Apple M5 with Metal, and in 67.5 s / 1.8x realtime on a 3-core CPU-only GitHub macOS runner. Transcription alone is 8.0x realtime locally, 1.3x in CI. Reproducible with `vts-extract bench`. - Limitations: 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. ## Documentation - [video-to-skill — full documentation and FAQ](https://v2s.dev/): the landing page, including what V2S is, why the transcript alone is not enough, how verification works, how V2S compares with video-to-docs tools and workflow recorders, benchmarks, privacy and security, and limitations. - [llms-full.txt](https://v2s.dev/llms-full.txt): the same documentation as a single plain-markdown file. - [README](https://github.com/brenoepics/video-to-skill#readme): the technical deep-dive, including the pipeline diagram. ## Project - [Source repository](https://github.com/brenoepics/video-to-skill): the Rust implementation, issue tracker and releases. - [skills.sh listing](https://www.skills.sh/brenoepics/video-to-skill): the skill registry entry. - [MIT license](https://github.com/brenoepics/video-to-skill/blob/main/LICENSE): the full license text. ## Optional - [Sitemap](https://v2s.dev/sitemap.xml): the canonical URL list for this site — the x-default root plus one URL per language. - Localized editions: the same documentation, fully rendered, at https://v2s.dev/en/, /pt-BR/, /es/, /zh-CN/, /hi/, /fr/, /de/, /ja/ and /ar/. Every edition is a static document that needs no JavaScript, and the ten URLs are cross-linked with reciprocal hreflang; https://v2s.dev/ is the x-default. Last updated: 2026-08-07