askill
video

videoSafety 90Repository

Analyze a video or screen recording by extracting frames and spawning an analysis agent

0 stars
1.2k downloads
Updated 2/11/2026

Package Files

Loading files...
SKILL.md

STOP - READ THESE RULES FIRST

FORBIDDEN ACTIONS (will break the plugin):

  1. NEVER use the Bash tool - no commands at all, the hooks handle everything
  2. NEVER run docker commands - no docker pull, docker images, docker run, NOTHING
  3. NEVER make up registry names - no ghcr.io/anything, no anthropic, no ellyseum
  4. NEVER run cv-run, yt-dlp, ffmpeg, ffprobe - the hooks handle this
  5. NEVER improvise - only do exactly what this skill says

YOUR ONLY ACTIONS ARE:

  • Check the STATUS from hook output
  • If CACHED: spawn the video-analyzer agent (Task tool)
  • Otherwise: say the MESSAGE from hook output and STOP

If you don't know what to do: say "Something went wrong with video processing" and STOP.


Instructions

When this command is invoked, a hook has already started processing. Look for the hook output in context (starts with "=== VIDEO HOOK RESULT ===").

Command Variants

CommandDescription
/video <url/path> <question>Analyze video
/video follow-up <question>Ask about most recently analyzed video
/video --listShow all cached videos
/video --clearRemove all cached videos

Step 1: Check Hook Status

IMPORTANT: Look for "=== VIDEO HOOK RESULT ===" in the system context. The hook output contains key:value pairs. Parse them carefully:

Example hook output:

=== VIDEO HOOK RESULT ===
STATUS: PROCESSING
LOG_FILE: /tmp/video-process-12345.log
CACHE_DIR: /home/user/.claude/claude-vision/video-cache/abc123
MESSAGE: Started video processing...
=== USE THESE EXACT PATHS ===

Extract the EXACT values - do not use placeholder numbers. If the hook says LOG:/tmp/video-process-89328.log, use exactly that path, not a different number.

Fields:

  • STATUS: - Current state
  • CACHE: - Path to cached data
  • LOG: - Path to processing log (use this EXACT path)
  • MESSAGE: - User-friendly status message

Handle based on STATUS:

StatusAction
CACHEDProceed to Step 2 (spawn agent)
PROCESSINGSay the MESSAGE and tell user to try again in a moment
READYNo URL was provided - ask user for a video URL
DOCKER_PULLINGSay the MESSAGE (it includes progress %)
DOCKER_FAILEDSay the MESSAGE
NOT_CONFIGUREDSay: "Video not configured. Run /claude-vision-setup first."
NO_TOOLSSay the MESSAGE

For any status except CACHED: just say the message and STOP. Do not use Bash. Do not try to wait or poll.


Step 2: Spawn Video Analyzer Agent

Once you have the CACHE_DIR path from hook context, spawn the video-analyzer agent.

Read the metadata first using Read tool (NOT Bash):

  • Read file: <CACHE_DIR>/metadata.json

Then spawn the agent with Task tool:

Task tool:
  subagent_type: "claude-vision:video-analyzer"
  description: "Analyze video"
  prompt: |
    Analyze this video and answer the user's question.

    ## Video Information
    - Cache directory: <CACHE path>
    - Title: <from metadata>
    - Duration: <from metadata> seconds
    - Frames: <frame_count from metadata>

    ## User's Question
    <the user's original question about the video>

    ## Instructions
    1. Read the transcript from <CACHE>/subtitles.srt if it exists
    2. Read all frames from <CACHE>/frames/
    3. Analyze the content and answer the question

The agent will read the frames and transcript with its fresh 200k context.


Step 3: Return Results

Present the agent's analysis to the user. The main conversation stays lean.


Special Commands

/video --list

CACHE_DIR="$HOME/.claude/claude-vision/video-cache"
for dir in "$CACHE_DIR"/*/; do
  [[ -f "${dir}metadata.json" ]] && cat "${dir}metadata.json" && echo ""
done

Present as a table: hash, title, duration, cached date.

/video --clear

rm -rf "$HOME/.claude/claude-vision/video-cache"
echo "Cache cleared."

/video follow-up <question>

Find most recent cache by timestamp in metadata.json, then spawn agent with that cache.


Notes

  • All video processing happens in the hook (background)
  • Do NOT use Bash for the main video flow - just check status and spawn agent
  • The agent sees all frames; you only see the analysis
  • Cache persists across sessions

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

65/100Analyzed 2/19/2026

Well-structured skill with clear step-by-step instructions and comprehensive status handling. Strong on clarity and actionability within its specific context. However, it's tightly coupled to a single plugin (ellyseum/claude-vision) with hardcoded paths and specific tool names, significantly limiting reusability. The forbidden actions section is appropriate but restrictive. Tags are generic ["llm", "prompting"] and don't reflect the video processing focus.

90
90
30
75
85

Metadata

Licenseunknown
Version-
Updated2/11/2026
Publisherellyseum

Tags

llmprompting