Asking with evidence
Every watched video sits in a persistent index. Questions about it are answered from that index — text first, frames only when needed — with timestamps, a confidence score, and an honest refusal when the video does not show the answer. Never re-run a watch for a follow-up.
Answer a question
watch-skill ask <video_id-or-original-url> "<question>"
Any language works; the answer comes back in the language of the
question. The engine escalates on its own when unsure (dense re-sampling,
zoom-crop re-OCR, stronger model) and prints a ~N tokens saved line.
Three rules for reading the result:
- Cite the timestamps it gives you; they are real evidence, not decoration.
- Trust the refusal. When it says the video does not clearly show the answer, that is the answer. Do not invent one past it.
- Frame paths are listed only when the engine wants you to look
yourself — Read them then (or force with
--frames).
"What happens at 2:30?"
Moment questions get a dense window, not a whole-video ask:
watch-skill ask <video_id> "what is on screen around 2:30?"
The answer engine pulls frames, transcript and OCR around the moment it
resolves. Agents on MCP have a dedicated get_moment tool that takes an
explicit timestamp and window; the CLI answers the same question through
ask.
Don't know which video? Search them all
watch-skill search "<phrase>"
Hybrid keyword + semantic search across every video ever watched, with
per-script normalization (Arabic folding, CJK segmentation, Thai
segmentation). Follow a hit with ask or moment on that video.
When the user corrects you
Report it so the next answer is better — see the
learning-from-mistakes skill.