🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

视频证据智能体 oxbshw/watch-skill

DeepSeek Harness
oxbshw7 天前有提交已提供中文文档扫描:未发现敏感能力

给智能体装上眼睛、耳朵和可验证的结果。Watch Skill 把视频、音频和屏幕活动变成可搜索、带时间戳的证据,用确定性契约证明工作成果,而不是靠模型的主观判断。DeepWatch 是智能体工作空间…

68.8/100
综合分
530
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/oxbshw/watch-skill.git
按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · vision
装得上吗
作者未把包发布到 npm,只能用源码安装
插件本身没问题,是分发方式不同
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包watch-skill(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 02:37:35

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
  • 发起网络请求
    app/src/preview.ts:136
    const metaResponse = await fetch(metaUrl, {
  • 发起网络请求
    app/src/preview.ts:170
    const response = await fetch(url);
  • 发起网络请求
    app/src/transport.ts:97
    const response = await fetch(`${this.base}${path}`, {
  • 发起网络请求
    app/src/transport.ts:121
    const response = await fetch(`${this.base}/api/call`, {
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

6 张 · 点击查看大图

功能亮点

  • 视频音频转可搜索证据
  • 带时间戳记录
  • 确定性契约验证成果
展开完整介绍(154 字)↓

给智能体装上眼睛、耳朵和可验证的结果。Watch Skill 把视频、音频和屏幕活动变成可搜索、带时间戳的证据,用确定性契约证明工作成果,而不是靠模型的主观判断。DeepWatch 是智能体工作空间,构建在 DeepSeek Harness 之上。Python + npm、MCP、命令行、REST、Web。

README

由 DeepSeek 最新模型翻译生成
Watch Skill · DeepWatch 给 AI 智能体装上眼睛、耳朵,以及可验证的结果。 Watch Skill 把视频、音频和屏幕活动变成可搜索、带时间戳的证据,并用一份确定性契约回答那真的生效了吗?,而不是靠模型的看法。通过 MCP 把它加进你已经在用的智能体。 DeepWatch 是现成的智能体工作区,构建在官方 DeepSeek Harness 之上,Watch Skill 已经组合进去。在这里,一次工具调用会留下你能打开的回执,结果也能由产生它的智能体之外的别的东西来检查。 Python · PyPI Node · npm 门禁与目录 Agent Skills 安装 ·使用 ·循环 ·包 ·架构 ·文档 ·社区 两项能力,各自独立 感知。 视频、音频和屏幕活动变成帧、转录文本和 OCR 文本,每一项都带绝对时间戳。索引一次源,只要你还留着它,就能一直查询;每个答案都引用一个你可以打开的时刻。 验证。 一份冻结的契约——文件摘要、JSON 值、SQL 结果、HTTP 响应、DOM 状态——由独立进程评估。结论是 VERIFIED、FAILED、UNVERIFIED 或 INCONCLUSIVE,而且不来自语言模型。 两者各自都有用,分开是刻意的。 Watch Skill——引擎 索引一次录像,只要你还留着它,就能一直提问。
展开完整文档(README 剩余 1 节)
Watch Skill · DeepWatch

给 AI 智能体装上眼睛、耳朵,以及可验证的结果。

Watch Skill 把视频、音频和屏幕活动变成可搜索、带时间戳的证据,并用一份确定性契约回答那真的生效了吗?,而不是靠模型的看法。通过 MCP 把它加进你已经在用的智能体。

DeepWatch 是现成的智能体工作区,构建在官方 DeepSeek Harness 之上,Watch Skill 已经组合进去。在这里,一次工具调用会留下你能打开的回执,结果也能由产生它的智能体之外的别的东西来检查。

Python · PyPI

Node · npm

门禁与目录

Agent Skills

安装 ·使用 ·循环 ·包 ·架构 ·文档 ·社区

两项能力,各自独立

感知。 视频、音频和屏幕活动变成帧、转录文本和 OCR 文本,每一项都带绝对时间戳。索引一次源,只要你还留着它,就能一直查询;每个答案都引用一个你可以打开的时刻。

验证。 一份冻结的契约——文件摘要、JSON 值、SQL 结果、HTTP 响应、DOM 状态——由独立进程评估。结论是 VERIFIED、FAILED、UNVERIFIED 或 INCONCLUSIVE,而且不来自语言模型。

两者各自都有用,分开是刻意的。

Watch Skill——引擎

索引一次录像,只要你还留着它,就能一直提问。答案引用你可以打开的时间戳。验证契约检查文件摘要、JSON 值、SQL 结果、HTTP 响应和 DOM 状态,并报告 passed、failed、unverified* 或 inconclusive——四种答案,因为其中三种并不等于「没有」。

任何智能体都能用它:MCP、CLI 或 REST API。

DeepWatch——工作区

基于官方 DeepSeek Harness 构建,Watch Skill 已组合进来,一条命令即可安装。你得到一个能看见、能证明的智能体,不用自己接线。

每次工具调用都留下一张回执,写明它碰过什么。工具声明的每条路径都对照同一个工作区边界检查,所以工具无法悄悄写到边界外。结果带一个你可以打开的 Core 结论,重启后 Library 仍保留它们。

在浏览器里运行。Compare 把同一契约的两次运行并排放,显示它们的结论在哪里分叉。

Watch Skill 看见并证明。DeepWatch 是它内置其中的工作区。

从这里开始

三条入口路径。挑一行符合你的。

| 你已有 | 你想要 | 前往 |
| 一个智能体(Claude Code、Cursor、Codex、任何 MCP 客户端) | 给它眼睛、耳朵和验证 | Watch Skill |
| 什么都还没有 | 整个工作区,含智能体 | DeepWatch |
| 一个你已在运行的 DeepSeek Harness | 给它加上 Watch,保留你的设置 | @deepwatch/dsh-bundle |

1. 把 Watch Skill 加到你已在用的智能体

bash
pip install 'watch-skill[standard]' # frames, retrieval and the MCP server
watch-skill doctor # checks, and repairs what it can
watch-skill watch
watch-skill ask <id> "what changed at 3:12?"

认真对待那些额外项。 只装 pip install watch-skill,你拿到的是命令行、验证器和 Bridge,它抽不出任何一帧:watch 遇到第一个视频就停在 perceive.missing_dependency。[standard] 带来抽帧、检索和 MCP;再加上 [ocr] 就能读屏幕上的文字,加上 [whisper] 就能在源没有字幕时做本地转写,加上 [loop] 就能用浏览器,或者直接上 [all]。缺什么,watch-skill doctor 就会给出对应的确切命令。

把它接进任何 MCP 客户端 —— [standard] 里已经包含服务器: bash watch-skill serve # stdio MCP server, 39 tools

或者一次把技能装进 25+ 个智能体: bash
npx skills add oxbshw/watch-skill -g

所有受支持的客户端,以及每个客户端验证到什么程度 →

2. 整个工作区

前置条件。 Node ^22.19 || >=24,这是命令行 engines 里声明的版本。Python 3.11、3.12 或 3.13 —— CI 跑的、classifiers 列的就是这几个版本 —— 而且只有你想要感知与验证引擎时才需要。没有它,DeepWatch 照样启动,只是会把每一项 Watch 能力都报成不可用。
bash

1. the engine that sees and proves (optional, but it is the point)

pip install 'watch-skill[standard,ocr]'

2. the workspace

npm install -g @deepwatch/cli
deepwatch doctor # what is present, what is missing, how to fix it
deepwatch setup # builds the runtime; shows the download and asks first

3. a workspace directory to work in

mkdir my-project
deepwatch web --workspace ./my-project

deepwatch web 会打印一个本地 URL,并在那里打开工作区。这是你最先看到的东西:

两个数字,而不是一个分数,因为「已安装」和「已证明」是两件不同的事,一个百分比会把它们混在一起。Ready now 统计的是已通过运行时门禁的部分。Needs setup 统计的是尚未配置或尚未测试的部分——已保存绝不当作已测试来呈现。没有服务商也能打开工作区:Library、索引和 Watch 工具都在本地运行。

不做全局安装时,用 npx 运行同一个包: bash
npx --yes @deepwatch/cli setup
mkdir my-project
npx --yes @deepwatch/cli web --workspace ./my-project

npx 是运行 @deepwatch/cli 的一种方式,不是另一个包——npm 上没有非作用域的 deepwatch。

setup 会下载什么。 固定版本的 DeepSeek Harness、它确切需要的同级依赖,以及本发布版本的 DeepWatch 包,全部放进你 DeepWatch 主目录下的运行时。它会打印注册表、版本号和目标位置,然后停下来等你同意;--yes 表示事先同意,--offline 表示直接拒绝。除了你自己安装的命令行,不会全局安装任何东西。--artifacts <dir> 会从本产品自行校验哈希的本地 tarball 中取 DeepWatch 包,而不是从注册表取,这正是检出构建需要的做法。它并不会让安装变成离线:在这种模式下,固定版本的 Harness 及其生成的同级依赖闭包同样从 npm 获取,setup 打印的计划在获取任何东西之前就会说明这一点。

启动不要求模型服务商。 没有服务商,工作区照样启动,Library 照样可用,Watch 工具照样应答。你需要服务商是为了智能体——聊天、工具调用,以及 THE LOOP 的评审步骤。

连接模型,并证明连接可用

在工作区里按顺序做四步。最后一步才是关键。

| 在应用里 | 作用 |
| Settings → Models → Add provider | 给服务商命名并填入密钥,或者留空该字段,从启动环境里读取。 |
| Settings → Role Bindings → Choose a model | 把特定的服务商和模型绑定到某个角色——Chat,或 Visual perception。 |
| Run provider test | 向那个确切的绑定发送一次真实请求,并报告返回了什么。 |
| Ready | 到这时工作区才会向它发送任何东西。 |

保存不等于验证通过。 绑定背后没有一次成功的服务商测试,就会被拦住,对话里也会直说:“……已绑定,但没有任何服务商测试证明它可用,所以暂时不能向它发送任何内容。” 主机重启后要重新跑一次测试——绑定还在,证明没了。

能力按角色分配,不按服务商分配。某个角色什么都没分配,它就会如实说明,绝不会悄悄退回另一个角色的模型,所以上面三个角色里有两个显示 Not configured,而不是继承 Chat 的。

值得先跑的一个任务

打开一个工作区目录,让它做点碰磁盘的事:

Create notes/totals.json with the numbers 12, 30 and 18, then read it back
and tell me the sum.

你会拿到答案,答案下面每次工具调用一行,写明它碰过的确切工作区相对路径。这份 README 后面讲的所有东西,都建立在这个形态上。

依赖就绪不等于你已经用过的能力。 deepwatch doctor 报告的是已安装且可达的东西——Node、Harness、配置档、Watch Core、ffmpeg。它并不声称这些能力已经在你机器上跑过,工作区自己的就绪面板统计的也是同一件事。一行绿色只说明零件都在;跑一遍上面那个任务,才知道零件能不能配合起来。

3. 装进你已经在跑的 DeepSeek Harness bash
cd <your-project>
dsh plugin --profile <your-profile> add @deepwatch/dsh-bundle
dsh --profile <your-profile>

没有 web 子命令。 dsh web 是 dsh --profile web 的别名,所以 dsh --profile <your-profile> web 会先启动你的配置档,再把 web 当参数交给应用——这不是你的本意,而且它不会告诉你。Harness 自己在 dsh --help 里就写了:dsh --profile web — boot the web profile (same as: dsh web)。配置档只在 --profile 后面写一次,别的什么都不要传。

两条命令里写同一个配置档名。 dsh plugin add 写进你指定的配置档;装进一个、启动另一个,你面对的就会是一个没有 watch_ 工具的智能体,而且没有任何报错解释原因。

从你的项目目录启动。 回执日志写在 Host 启动时所在的工作目录下,所以先 cd 过去——否则 Library 索引的是你并不在用的目录,还会报 empty。

启动前想确认某个配置档到底组成了什么: bash
dsh --profile <your-profile> --dump-config | grep watch-

兼容的 Harness。 本次发布实测针对 @deepseek-ai/dsh@0.1.1-rc.2,一点没错——它是锁定的 peer,不是范围,所以换个 Harness 跑配置档就是没人测过的组合。dsh --version 会告诉你手上是哪个版本。

安装就这些。这个包声明了 dsh.bundle.patch,所以 DSH 会把它并入配置档的层栈,并在自己的补丁之后应用它。另外还声明了四个更窄的变体——media、browser、memory、document——给只想要某一项能力、而不是全部能力的配置档用。

装上引擎——要带 extras,因为 bundle 的媒体能力就是引擎的能力: bash
pip install 'watch-skill[standard,ocr]'

[standard] 是帧、检索和 MCP;[ocr] 读取屏幕上的文字。只跑 pip install watch-skill 装出来的 Core 抽不出一帧,Bridge 连上它,第一个视频就会报 perceive.missing_dependency。Bridge 会自己在 PATH 上找可执行文件。

完整指南:@deepwatch/dsh-bundle。

环境要求。 和这里其他地方一样:Node ^22.19 || >=24,引擎需要 Python 3.11、3.12 或 3.13。支持 Windows、macOS 和 Linux。

哪个包适合你

这个仓库向两个 registry 发布二十一个包,其中只有三个是给人主动安装的。

| 包 | Registry | 什么时候装 |
| watch-skill | PyPI | 你想要感知、证据、检索和验证——从命令行、走 MCP,或者通过 REST。这就是引擎。 |
| @deepwatch/cli | npm | 你想要整个工作区。它提供 deepwatch 命令,负责准备并启动其他一切。 |
| @deepwatch/dsh-bundle | npm | 你已经在跑 DeepSeek Harness,想把 Watch 加进自己掌控的配置档。 |

@deepwatch/ 下的其他一切都是插件或内部依赖——bundle 组合起来的那些 Harness 行(dsh-tools、dsh-library、dsh-live、dsh-memory、dsh-workspace 等等),以及它们共用的包(dsh-contracts、dsh-sdk、dsh-core-bridge)。发布它们是为了让 bundle 能解析,也为了让某个组合能只挑一行而不是全部。直接安装它们,是为了把单独一块嵌进你自己掌控的组合里;这不是进入产品的途径。

npx @deepwatch/cli 是运行* @deepwatch/cli 的方式,不是另一个包,npm 上也没有不带 scope 的 deepwatch。

包地图 展示了这二十个包如何组合,每个包自己的 README 也说明了它的用途和依赖。

THE LOOP:观察、行动、验证

感知只是其中一半。THE LOOP 说的是智能体在试图修好某个东西时,拿感知做什么。

bash
pip install 'watch-skill[standard,loop]' && playwright install chromium

watch-skill loop start http://localhost:3000/checkout \
"the total updates when quantity changes, and no NaN appears"

1. 观察 —— 真实浏览器把页面录成视频;抽取帧并做 OCR,每一帧都带绝对时间戳。
2. 评审 —— 让视觉模型判断这次采集是否满足你写的标准。它会报告问题,并给出每个问题被看到时的时间戳。
3. 修复 —— 你改代码。
4. 验证 —— watch-skill loop iterate 重新采集,并与上一轮做 diff,所以「修好了」意味着原来错的东西不见了。

评审这一步需要支持视觉的模型。没有的话,采集、抽帧、OCR 和验证仍然可用,评审会直接说它无法判断,而不是瞎猜。见 THE LOOP。

纠正会变成经验

答案错了,你就纠正它。Watch Skill 会对纠正做分类,把它作为一条经验存进本地存储,在错误类型属于机械性错误时带着这条经验重新提问,并统计这样省下了多少。

经验在多次运行之间保留,且只留在你的机器上。没有任何东西会自己学习 —— 纠正得由你来给 —— 也不会上传任何内容。
经验与节省。

DeepWatch 工作区

上面讲的都是引擎,任何智能体都能用。DeepWatch 构建在官方 DeepSeek Harness 之上,已经内置了 Watch Skill,所以你在那里运行的智能体会直接产出凭据和判定,不需要你额外接线。

本节剩下的内容是一个完整的任务,从头到尾。一个结账页面收错了金额,而你手上只有它的屏幕录制。

把录像交给引擎 · 问它金额在哪里出错 · 修复代码 · 从智能体外部证明修复有效 · 明天再回来看记录。下面的每个数字和判定都来自产出本节的那次运行,用的是 Watch Skill 1.4.3 和 DeepWatch 0.1.3。

1 · 把录像交给引擎

四秒钟,有人在改数量。没有输入任何文字说明它哪里不对。
bash
watch-skill watch ./checkout-bug.webm --index

帧带着绝对时间戳输出,屏幕上的文字也一样:

Selection: 4 kept from 8 candidates (4 near-duplicates dropped)
t=00:00 2 × $10.00 Subtotal $20.00 Tax (10%) $2.00 Total $20.00
t=00:01 5 × $10.00 Subtotal $50.00 Tax (10%) $5.00 Total $50.00
t=00:02 3 × $10.00 Subtotal $30.00 Tax (10%) $3.00 Total $30.00

bug 现在一目了然:税算出来了,也显示出来了,却没加进总额。
它之所以可读,是因为那些帧留了下来——三个金额在其余完全相同的版式里变化,在帧采样器看来就像重复,所以脚本化捕获会写下它动作发生的时刻,引擎再把这些时刻钉住。

2 · 问它发生在哪里 bash watch-skill ask "what was the total when the quantity was three?"

答案会引用它来自的时间戳,帧就在磁盘上。如果录像里没有答案,它就这么说:无法回答的问题不是猜的提示。

3 · 修复应用

现在智能体有地方下手了。它读证据,在 cart.js 里找到 orderTotal,发现它算出的税从未进入返回值。

它碰过的每个文件都会留下一张回执,写明路径;工具声明的每条路径都按同一个工作区边界解析。边界之外的写入会被拒绝并且记录下来:文件不动,日志里多一张回执,标记为 scope:outside_workspace / state:cancelled,写明这次尝试。两半都重要——边界若默默拒绝,你就无从知道它是否被检验过。

下面是它实际留下的东西,来自产出本节的那次运行。十四行进了日志,折叠成十二张回执,因为有两行写了两次——一次是工具返回时,一次是 Core 的裁决到达时。四个 todo_write 和 glob 行这里略去;这八行碰了东西:

| 回执 | 裁决 |
| watch_list_sources | — |
| watch_ask_source | — |
| read — checkout/cart.js | — |
| read — checkout/index.html | — |
| watch_moment | — |
| edit — checkout/cart.js | VERIFIED |
| watch_verify | INCONCLUSIVE |
| pwsh | — |

模型被告知有位顾客被收了错的钱,并且存在一段录像。它没被告知 bug 是什么,工作区里也没有任何东西点出它。它列出源、问录像、从中取出一个时刻、读两个文件、改一行、自己跑了一次验证——结果回来是 INCONCLUSIVE,因为它写的检查无法求值。这个答案照原样报告,不四舍五入成通过。

4 · 从智能体之外证明修复

契约在修复之前就已冻结,存放在智能体可写目录之外。Watch Core 在单独进程里求值它,返回一个不是智能体写的裁决——VERIFIED、FAILED、UNVERIFIED 或 INCONCLUSIVE。

上面那次运行的契约是 c98bd4ae3d13864869ae02be46cdba48fb97f790ec50feead6e30d17ccc007b0,它的摘要在智能体启动前就已取好。修复之前,Core 对三项检查都返回 fail——expected 22, got 20、expected 33, got 30,以及从渲染页面读出的 #total text = '$20.00'。之后,对照同一份未变的契约,三项全过,页面渲染出 $22.00。

上图拍自另一个任务——从这里开始里的 totals.json 那个——因为这就是 VERIFIED 卡片的样子。它不是 checkout 修复的截图;那次修复的证据是上面提到的合约和回执。

合约的 SHA-256 就在屏幕上,所以你能看出是同一份合约。

判定结果就是答案,四种判定各有各的含义。以上面的合约为准实测:对着修好的工作区,结果是 VERIFIED;指向一个并不存放这些文件的目录,检查照样运行并报 false,于是结果是 FAILED;写成散文、背后没有可执行检查的预期是 UNVERIFIED——诚实,但不算通过;完全无法求值的检查返回 INCONCLUSIVE,该检查自身的状态留作 null,而不是被折成 false。没有工作区可供测量时,Core 直接拒绝请求(verify.workspace_unresolved),不会去猜一个目录。

5 · 明天再回来看看

把一切重启——杀掉进程,再启动。两条记录都回来了,它们是两个不同的存储,值得分清楚。

Watch Core 的来源索引放在 Watch 数据目录里。不管有没有东西打开,它都在那儿,watch-skill list 读它时不需要任何工作区。Library 的回执索引是 Host 自己的:日志写在 .watch/receipts 下的工作区里,Library 在 Refresh 时从那个文件重建索引。它是派生出来的,丢掉也无妨。

这就是 Library 跟着工作区走的原因。在你干活的那个目录里启动应用;Host 从别处启动,日志就写到别处,重启后 Library 报 empty,通常是它指错了目录,而不是数据丢了。

以上面的运行为准实测:写入十四条回执,杀掉进程,重启后十四条全部重新打开——record id 相同,last revision 相同,Core 裁定过的那两条仍然带着各自的判定,修复那条是 VERIFIED,跑不起来的检查那条是 INCONCLUSIVE。

Compare 把失败的那次运行和通过的那次运行并排摆出来,显示两者的判定在哪里分道扬镳。比较描述的是差异;它自己从不给出判定。

这里的每张图都是运行中构建的实拍,而且它们并不都来自同一个构建——要说它们同源,会是本页最容易犯的假话。入门那张图来自当前图库,是照着 Watch Skill 1.4.3 和 DeepWatch 0.1.4 重拍的,拍之前确定性浏览器场景 42 项全过;如果截图和它们对应的引擎对不上,一道关卡会拒绝整组图。Settings 和结果卡片的截图来自 1.4.3 / 0.1.4 候选版,保留下来是因为本次发布没有改动它们展示的界面。

截图页 标明了每张图背后的构建,并收录了横跨三种视口的完整 57 张图库。

这里说的「本地优先」到底指什么。 你的来源、回执、判定和记忆都存在你自己的机器上,Library 搜索也在本地跑。这不代表什么都不用网络:setup 会从 npm 下载运行时,部分 Watch 扩展功能首次运行时会拉取模型,你配置的托管模型服务商也会收到你发给它的内容。留在本地的,是记录本身以及基于记录的检索。

采集与上面这些是两回事,需要单独授权。工作区能录的每个来源都列了出来,标明它需要什么权限、该权限是否已被申请——而你没用到之前,什么都不会申请:

持有服务商密钥并不允许媒体离开本机,云引擎即便网络开着也需要单独授权。这是有意分开的两个开关。

人们用它做什么

| 向视频提问 | 把一段录像索引一次,之后就能对它提问。答案会引用时间戳,点开即可跳转。01-watch-and-ask |
| 证明智能体的工作 | 一份确定性契约,由 Core 运行——文件摘要、JSON 值、SQL、HTTP、DOM。14-browser-verification |
| 看着界面把它修好 | 采集、点评、修复、重新验证。04-ui-loop |
| 跨所有内容搜索 | 对你观看过的每个来源建一份索引。03-cross-video-search |
| 离线工作 | 本地 whisper 和 OCR,不用服务商,数据不出本机。15-private-offline-workflow |
| 看直播 | 一路流或一个浏览器会话,有边界、有游标。18-live-watch |

每个都是可以直接跑的目录,前置条件和预期输出就写在旁边。

全部 20 个示例,按各自教什么分类

| 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 organise | 05 Multilingual Arabic · 10 Structured extraction · 11 Batch mode · 12 Library memory · 16 Shareable viewer |
| Verify and improve | 04 UI loop · 07 Lessons and stats · 08 Loop types · 13 Self-improvement · 14 Browser verification · 17 Freshness and offline · 20 Observer loop |
| Watch live | 18 Live watch · 19 Live browser |

That is all 20 examples; the index is examples/.

How it fits together
mermaid
flowchart LR
subgraph W["DeepWatch workspace"]
H["DeepSeek Harnessagent, tools, UI"]
P["Watch pluginstools · library · live · memory"]
H <--> P
end
P <-->|"Bridge (stdio)"| C["Watch CorePython engine"]
C --> E[("Evidence storeframes · transcripts · index")]
C --> V["Verifierisolated subprocess"]
V --> R[("Verification recordscontract · checks · verdict")]
P --> J[("Receipt journalone per tool call")]
A["Any other agentMCP · CLI · REST"] <--> C

Watch Core is the only thing that issues a verdict. The Host may notice,
correlate, freeze a contract and ask — it may not decide the answer. That is ADR-002, and a build gate fails if anything under packages/ starts producing verdicts.

A receipt records what a tool call did; a verdict records what Core checked.
They are written by different processes and the Library shows them as different
columns, because an agent that ran a command successfully and an agent that did
the right thing are not the same claim.

More: architecture · verification · the 39 tools.

What works, and what it needs

| Capability | Out of the box | Needs |
| Start the app, browse, read diagnostics | ✅ | nothing |
| Verification contracts, containment, receipts | ✅ | nothing |
| Video frames and scenes | with [standard] | ffmpeg ≥ 5.1 — watch-skill doctor installs it |
| Reading on-screen text | with [ocr] | a first-use model download (~80 MB) |
| Speech to text | with [whisper] | a first-use model download; captions are used first when a source has them |
| Chat with an agent | — | a provider you add and bind |
| Visual scene description | — | a model that can see images |
| Browser capture / THE LOOP | with [loop] | playwright install chromium |
| Memory | off | enable in Settings; the store is plaintext and says so |
| Desktop app | not distributed — no installer exists | run deepwatch web |

DeepWatch starts, and stays useful, with no provider configured: verification,
containment, the Library and local perception are all local. What needs a
provider is the agent — chat, tool use, and the critique step of THE LOOP.

Three ways a capability arrives, and they are not interchangeable. A local
dependency (ffmpeg, yt-dlp, a JS runtime) runs on your machine and
watch-skill doctor will fetch and repair it. A downloaded model (OCR
weights, whisper) also runs on your machine, is a large one-time download, and
nothing about your files leaves it. A hosted provider — the agent's model, and any vision model you bind — is somebody else's service, with their latency, price and terms, and it sees what you send it. An OpenAI-compatible server you run yourself (Ollama, vLLM, LM Studio, llama.cpp) is the hosted route pointed at your own hardware: the data stays local, and whether a given model supports tool calls or images is a property of that model, which DeepWatch reports rather than works around.

Nothing reaches a provider until you add one, and holding a provider credential
is not permission to upload a frame or a transcript — that is a separate consent.

What repairs itself. watch-skill doctor repairs dependencies: it
downloads yt-dlp and keeps it current, bootstraps a JS runtime, installs OCR
language data, and fetches ffmpeg where it can, reporting every repair. That
is the only thing here that acts without being asked. There is no automatic task
resumption, no autonomous learning, and no encryption at rest in this release.
Known limitations is the full list.

Measured, not asserted

Against a leading video-understanding API, same files, same scorer:

| | Watch Skill | Baseline |
| Written-analysis groundedness | 89.7% | 27.9% |
| Citations per 100 words | 13.23 | 0.12 |
| Frame delivery on real footage | 96.9% | 31.2% |
| Cue starts within half a second | 100% | 25% |

Method and fixtures: benchmarks/video_backends/.
Trade-offs against the alternatives: comparison.

Documentation

| Getting started | Install, first watch, first agent connection |
| Install and upgrade | Both products, optional extras, compatibility policy |
| Configuration | Settings, providers, storage locations |
| Tool reference | All 39 MCP tools and their REST/CLI counterparts |
| Verification | Contracts, the fourteen check types, assurance levels |
| Architecture | Boundaries, data flow, extension points |
| Agent matrix | Per-client setup and how far each is verified |
| Troubleshooting | Dependency repair and common runtime errors |
| Cost | What runs free, what a provider charges for |
| Known limitations | What this release does not do |

DeepWatch: workspace README · setup · the twenty packages · releasing · platform support

Three tool counts, because they answer different questions: 39 MCP tools
from watch-skill serve, 22 watch_* tools added to an agent inside
DeepWatch, 47 tools that agent is offered in total.

Community & ecosystem

Coverage written by other people, and the directories that carry the project.
Described by what each one actually contains — a write-up is somebody trying the thing and reporting back, which is not the same as an endorsement, and none of these say anything about how many people use it.

Tutorials and write-ups

| Watch Skill 使用教程:让 Codex 看懂视频和录屏 | A step-by-step walkthrough of wiring Watch Skill into Codex CLI: install, MCP configuration, and a first video. Chinese. |
| Watch Skill: AI video analysis and video correction | Setup and operation guide with its own worked use cases and a troubleshooting section. English. |

Video

| Walkthrough, part one · part two | A screen-recorded run-through on Bilibili, covering installation and a first analysis. Chinese. |

Directories

| Skills.sh | Lists the ten agent skills and installs them into a supported client with one command. |
| SkillsMP | A second skills directory carrying the same set. |
| MCP registry | The io.github.oxbshw/watch-skill server entry, for clients that resolve MCP servers by name. |

The full collection, kept separated into tutorials, video, integrations and
directory listings: docs/ecosystem.md. If you have
written or recorded something, open a pull request adding it there.

Contributing

Issues and pull requests welcome. CONTRIBUTING.md has the
twenty-minute path: what to install, which gate to run, and how the commit
messages are shaped. Security policy: SECURITY.md. Design
decisions and their reasons: DECISIONS.md and
ROADMAP.md.

Built on DeepSeek Harness · Powered by Watch Skill

DeepWatch and Watch Skill are independent projects and are not affiliated with
or endorsed by DeepSeek.
预览分享卡片长什么样 ↓oxbshw/watch-skill
分享 · DeepSeek Harness Hub
oxbshw/watch-skill

给智能体装上眼睛、耳朵和可验证的结果。Watch Skill 把视频、音频和屏幕活动变成可搜索、带时间戳的证据,用确定性契约证明工作成果,而不是靠模型的主观判断。DeepWatch 是智能体工作空间…

回到顶部