Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
Claude에 영상 시청·이해 기능 제공, 프레임 추출·다중모달 오디오 분석 플러그인
Give Claude the ability to watch and understand videos — Claude Code plugin with frame extraction and multimodal audio analysis
플러그인TypeScriptGitHub @jordanrendric직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
설치형 프로젝트는 배포 도메인 없이도 확인할 수 있습니다. 개인 저장소는 GitHub 로그인으로, 조직 저장소는 위의 저장소 확인 파일로 직접 확인해 주세요.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Give Claude the ability to watch and understand videos.
A Claude Code plugin that extracts frames via ffmpeg and processes audio via multiple backends (Gemini API, local Whisper, or OpenAI API). Claude receives frames as images and audio transcription with timestamps — the plugin is a perception layer, not an interpretation layer.
yt-dlp, preserving source metadata and captions for context/setup-video-vision walks you through configurationInside Claude Code, run these commands one at a time:
/plugin marketplace add https://github.com/jordanrendric/claude-video-vision
Then:
/plugin install claude-video-vision
The MCP server will auto-install via npx from npm on first use — no build step required.
Alternative: local development
git clone https://github.com/jordanrendric/claude-video-vision.git
claude --plugin-dir /path/to/claude-video-vision
Inside Claude Code, run the interactive wizard:
/claude-video-vision:setup-video-vision
It will walk you through backend selection, whisper configuration (if local), frame options, and dependency verification.
/watch-video path/to/video.mp4
/watch-video tutorial.mp4 "what language is used in this tutorial?"
/watch-video https://www.youtube.com/watch?v=... "summarize this video"
Just mention a video file or YouTube URL — Claude will detect it:
"analyze this video for me: ~/Downloads/demo.mp4"
"take a look at the first second of ~/videos/bug-report.mov"
"summarize this YouTube Short: https://www.youtube.com/shorts/..."
Claude adapts parameters automatically:
00:00:00 to 00:00:01| Backend | Audio processing | Cost | Setup |
|---|---|---|---|
| Gemini API | Native (speech + non-speech events) | Free tier: 1500 req/day | GEMINI_API_KEY env var |
| Local (Whisper) | whisper.cpp or Python openai-whisper | Free, fully offline | brew install whisper-cpp + auto model download |
| OpenAI API | OpenAI Whisper API | Paid per usage | OPENAI_API_KEY env var |
All backends extract video frames via ffmpeg — Claude always has direct visual access.
┌───────────────────────────────────────────────────────┐
│ Claude Code (your session) │
│ │
│ /watch-video ──→ Skill: video-perception │
│ │ │
│ ▼ │
│ MCP tool: video_watch │
│ │ │
└────────────────────────┼──────────────────────────────┘
│
▼
┌────────────────────────────────────┐
│ MCP Server (Node.js) │
│ │
│ ┌──────────┐ ┌──────────────┐ │
│ │ ffmpeg │ │ Audio backend│ │
│ │ frames │ ║ │ (parallel) │ │
│ └──────────┘ └──────────────┘ │
│ │ │ │
└───────┼─────────────────┼──────────┘
▼ ▼
base64 images transcription
+ timestamps + audio events
│ │
└────────┬────────┘
▼
Claude receives both
brew install yt-dlp on macOS)brew install whisper-cpp (macOS) or equivalentThe plugin exposes 6 MCP tools:
video_watch — Extract frames + process audio (main tool)video_analyze — Analyze video structure with ffmpeg filters before extractionvideo_detail — Drill into specific cached or newly extracted momentsvideo_info — Get video metadata without processingvideo_configure — Change settingsvideo_setup — Check and guide dependency installation/watch-video <path> [question] — Analyze a video/setup-video-vision — Interactive configuration wizardSettings are stored in ~/.claude-video-vision/config.json:
{
"backend": "local",
"whisper_engine": "cpp",
"whisper_model": "auto",
"whisper_at": false,
"frame_mode": "images",
"frame_format": "jpeg",
"frame_resolution": 512,
"default_fps": "auto",
"max_frames": 100,
"frame_describer_model": "sonnet",
"enable_index": false,
"session_max_age_days": 7,
"downloads_max_age_days": 7
}
frame_format can be jpeg, png, or webp. jpeg remains the default for backwards compatibility; png is useful for screen recordings where text and sharp UI edges should stay lossless.
Whisper models auto-download to ~/.claude-video-vision/models/ on first use. Available: tiny, base, small, medium, large-v3-turbo, large-v3, auto (picks best for your RAM).
For YouTube URLs, the server uses this transcript order:
Audio results label provenance with transcription_source, for example youtube_subtitles or youtube_auto_captions, so Claude can treat manual subtitles as stronger evidence than auto-captions.
Unknown command: "claude-video-vision@latest"The plugin starts its MCP server with npx -y claude-video-vision@latest. If claude mcp list shows the server as failed and running that command yourself prints Unknown command: "claude-video-vision@latest" followed by a hint about npm help, then npm received the package name as if it were a subcommand. That points to a broken or outdated npx on your machine, not to the plugin.
Check your npm install in PowerShell:
npx --version
npm --version
where.exe npx
Both versions should match (7 or newer), and where.exe npx should point to npx.cmd inside your Node.js install directory.
Fix it by updating npm (npm install -g npm@latest) or reinstalling Node.js 24+ LTS, then restart Claude Code.
Workaround if it still fails: install the server globally and register it yourself.
npm install -g claude-video-vision
claude mcp add --scope user claude-video-vision -- claude-video-vision
The plugin's own server entry will keep showing as failed; you can ignore it. A global install does not update itself, so re-run npm install -g claude-video-vision to pick up new releases.
v1.4.0 — see the CHANGELOG for release history. CI runs on Ubuntu and macOS with Node.js 24 and 26.
MIT — see LICENSE.
Jordan Vasconcelos