# watch-skill

Indexes video, audio, and screen sessions into timestamped records. Gives AI agents deterministic contracts to verify task completion.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 528
- Author: oxbshw
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/oxbshw/watch-skill
- Updated: 2026-10-14
- HTML: https://affpapa.org/en/nevibecode/mcp/watch-skill

## What it does

The server parses screen activity, audio tracks, and video clips into searchable frames, text transcripts, and OCR data. Each captured observation attaches to an exact timestamp. When an agent queries indexed footage, it returns evidence referencing a verifiable second in the recording.

Beyond observation, the engine verifies test contracts without trusting model self-evaluations. An independent runtime evaluates DOM snapshots, JSON payloads, file digests, HTTP responses, and SQL queries. The evaluation finishes with one of four outcomes: `VERIFIED`, `FAILED`, `UNVERIFIED`, or `INCONCLUSIVE`. It exposes 39 tools over stdio.

A minimal `pip install watch-skill` cannot grab video frames on its own. It throws an error unless installed with extra dependencies like `watch-skill[standard]` or `watch-skill[all]`. Running `watch-skill doctor` detects missing system binaries and fixes what it can.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add watch-skill -- uvx watch-skill
```
uvx runs the command named after the package; if the README names another one, use uvx --from watch-skill <command>

### Codex

**Platform CLI**
```bash
codex mcp add watch-skill -- uvx watch-skill
```
uvx runs the command named after the package; if the README names another one, use uvx --from watch-skill <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "watch-skill": {
            "command": "uvx",
            "args": [
                "watch-skill"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from watch-skill <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "watch-skill": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "watch-skill"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from watch-skill <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add watch-skill uvx watch-skill
```
uvx runs the command named after the package; if the README names another one, use uvx --from watch-skill <command>

## When to use it
- Locate specific UI transitions in screen recordings using exact timestamps
- Verify API JSON responses and file digests against deterministic criteria
- Extract on-screen text from video sessions using OCR
- Validate browser DOM states without relying on language model opinions

## Example prompts
- Inspect screen.mp4 and check what broke during user registration
- Verify the database contract for the migration task
- Identify what happened on screen at 03:12 in demo.webm

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

From the same set: [oxbshw/watch-skill](https://affpapa.org/en/nevibecode/by/oxbshw/watch-skill.md) — 11 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
