Watch Skill
Give every AI agent eyes for video—and a way to inspect its own work.
Watch Skill is a local-first video intelligence layer for agents. It turns videos, live streams, meetings, and screen recordings into searchable, timestamped evidence. Agents can understand what happened, retain it across sessions, and cite the exact moment behind an answer.
When the video is the agent's own browser or desktop session, THE LOOP closes the feedback cycle: record the work, evaluate it against plain-language criteria, guide the fix, and verify the result. The same engine is available through skills, 23 MCP tools, a CLI, REST, and native framework adapters.
Watch. Remember. Fix. Verify.
One video layer, three agent capabilities
| Capability | What the agent gains |
|---|---|
| Watch | Scene-aware frames, on-screen text, and local-first transcription from 1,800+ sites, live HLS/DASH streams, local media, meetings, browsers, windows, and desktops. |
| Remember | A persistent, searchable index with timestamp citations, hybrid retrieval, cross-video synthesis, and reusable lessons. |
| Verify | A capture → critique → fix → proof loop for browser flows, interfaces, generated video, gameplay, and monitored streams. |
Start in 60 seconds
Claude Code
/plugin marketplace add oxbshw/watch-skill
/plugin install watch-skill@watch-skill
Run /watch-skill:setup-watch-skill once after installation. It installs the engine,
checks the binary dependencies, registers the MCP server, and offers to configure a
vision provider.
macOS and Linux
curl -fsSL https://raw.githubusercontent.com/oxbshw/watch-skill/main/scripts/install.sh | sh
Windows
powershell -ExecutionPolicy Bypass -c "irm https://raw.githubusercontent.com/oxbshw/watch-skill/main/scripts/install.ps1 | iex"
Then watch a video and ask a follow-up:
watch-skill watch "https://youtu.be/..." "Summarize the important moments."
watch-skill ask <video_id> "When does the demo first fail?"
watch-skill search "pricing decision" # search every indexed video
watch-skill serve # MCP over stdio
Transcription, OCR, and search can run locally without an API key. For visual Q&A, use Gemini, Anthropic, OpenAI, OpenRouter, or a local Ollama model. See Getting started for manual installation and Configuration for provider and privacy settings.
Why use it
- Evidence instead of frame dumps. Scene detection and perceptual deduplication spend the frame budget on distinct moments. Answers include timestamps, confidence, and the evidence used to support them.
- Persistent video memory. Analyze once, ask again without downloading or transcribing the same video. Hybrid full-text and vector retrieval works within one video or across the entire library.
- Local-first processing. Original-language captions are preferred, local Whisper is the default fallback, and cloud speech-to-text is opt-in. An Ollama configuration keeps the complete pipeline on the machine.
- Flow verification. THE LOOP records an agent's browser, screen, or window; checks the result against plain-language criteria; and produces before/after proof after a fix.
- Corrections that persist.
report_mistakestores a local lesson, applies it to related questions, and turns it into a replayable evaluation. - Measured cost controls. Text-first answers, semantic caching, configurable token
budgets, and explicit
cheapest,quality_first, andoffline_onlypolicies keep the trade-offs visible. - Multilingual retrieval. Script-aware OCR routing, Arabic normalization, CJK substring matching, and multilingual embeddings support questions across languages.
The repository includes reproducible cost and perception benchmarks. Product claims in this README link to the relevant implementation notes or testable example rather than relying on unqualified marketing numbers.
Works with your agent
The setup command detects supported clients and updates their configuration with a backup. Manual guides are available for every entry below.
| Claude Code | Claude Desktop | Cursor | Codex CLI |
| Cline | Windsurf | Gemini CLI | VS Code |
| GitHub Copilot CLI | Kimi Code | Qwen Code | OpenCode |
| Goose | OpenHands | Kilo Code | Qodo |
| Agent Zero | OpenClaw | Pi | Hermes |
Native tools are also available for LangChain/LangGraph, CrewAI, OpenAI Agents SDK, LlamaIndex, and AutoGen; any other framework can use REST or MCP.
| Connection | Supported agents and frameworks |
|---|---|
| Plugin and skills | Claude Code, OpenClaw, Pi, Hermes-style agents |
| MCP | Claude Desktop, Cursor, Codex CLI, Cline, Windsurf, Gemini CLI, VS Code, GitHub Copilot CLI, Kimi Code, Qwen Code, OpenCode, Goose, OpenHands, Kilo Code, Qodo, Agent Zero |
| Native Python tools | LangChain/LangGraph, CrewAI, OpenAI Agents SDK, LlamaIndex, and AutoGen |
| HTTP | Vercel AI SDK, n8n, and any client that can call REST/OpenAPI |
The full compatibility matrix separates machine-tested, machine-configured, and documentation-verified integrations. If your agent is missing, the adapter template provides a short contribution path.
Common workflows
Build a searchable video library
watch-skill batch ./recordings --limit 50
watch-skill library overview
watch-skill library ask "What did the team decide about authentication?"
library ask synthesizes evidence across videos and retains per-video timestamp
provenance. The library example demonstrates a question
whose answer is distributed across four clips.
Verify an agent's browser work
watch-skill loop start \
--source "browser:http://127.0.0.1:3000" \
--criteria "Checkout completes and the total is always a valid currency amount"
The loop captures the full interaction, critiques failures, and records proof after the
agent applies a fix. Example 14 includes a transient
$NaN bug that an end-state screenshot misses.
Export an offline report
watch-skill viewer <video_id> --out video-report.html
The generated page contains its frames, transcript, OCR, cached answers, and cited evidence. It has no external runtime dependencies and can be opened without a server.
Examples
The examples progress from a first watch to agent integration, cross-video memory, and self-verification.
| Track | Examples |
|---|---|
| Learn the core | 01 Watch and ask, 02 Focused moment, 03 Cross-video search |
| Build with agents | 06 MCP and REST, 09 Framework adapters, 15 Private offline workflow |
| Understand and organize | 05 Multilingual Arabic, 10 Structured extraction, 11 Batch mode, 12 Library memory |
| Verify and improve | 04 UI loop, 07 Lessons and stats, 08 Loop types, 13 Self-improvement, 14 Browser verification |
| Share results | 16 Export a self-contained viewer |
See the example catalog for prerequisites, expected output, and a recommended path through all 16 examples.
Architecture
All interfaces call the same Python core. Skills and agent adapters decide when to use
Watch Skill; acquisition, perception, transcription, indexing, answering, and verification
remain in src/watch_skill.
flowchart LR
A["Agents and frameworks"] --> S["Skills · MCP · CLI · REST"]
S --> AC["Acquire"]
AC --> P["Scenes · OCR · transcript"]
P --> I[("Persistent index")]
I --> Q["Answers · extraction · library"]
I --> L["Lessons and evaluations"]
V["Browser · screen · stream capture"] --> C["Loop critic"]
C --> I
Read Architecture for the data model, provider boundaries, and extension points.
Documentation
| Guide | Use it for |
|---|---|
| Documentation index | Choose a guide by task or audience |
| Getting started | Installation, first watch, and first agent connection |
| Tool reference | All 23 MCP tools and their REST/CLI counterparts |
| Configuration | Storage, privacy, models, limits, and environment variables |
| Agent matrix | Per-client setup and verification status |
| Use-case packs | Recipes for research, meetings, QA, content, and operations |
| THE LOOP | Capture, critique, iteration, and proof artifacts |
| Cost policy | Routing, budgets, caching, and benchmark method |
| Troubleshooting | Dependency repair and common runtime errors |
| Engineering decisions | The reasoning behind non-obvious design choices |
| Roadmap | Planned work and contribution opportunities |
Development
git clone https://github.com/oxbshw/watch-skill
cd watch-skill
uv sync --extra all
uv run pytest
uv run ruff check .
See CONTRIBUTING.md for test tiers, documentation standards, and the agent-adapter checklist. Security and privacy reports are covered by SECURITY.md.
Watch Skill is available under the MIT License.
No comments yet
Be the first to share your take.