mcpField
W
watch-skill

watch-skill

ローカル
github.comメディア・デザイン5337 週間前に更新

watch-skill について

Watch Skill は動画、音声、画面の動きをタイムスタンプ付きの証拠として索引化し、別の検証契約でファイル、SQL 結果、DOM 状態などを確認します。検索可能なメディア情報や、エージェントの判断とは独立した検証を必要とするチーム向けで、CLI や REST API からも利用できます。

主な機能

  1. 01メディアをタイムスタンプ付きで索引化
  2. 02文字起こし、フレーム、OCR の検索
  3. 03回答で該当時刻を提示
  4. 04ファイル、JSON、SQL、HTTP、DOM の検証
  5. 05決定的な検証結果の報告
  6. 06MCP、CLI、REST 経由で利用

活用シーン

  1. 01録画内容について質問
  2. 02索引化した動画から場面を検索
  3. 03エージェントの変更結果を確認
  4. 04ツール実行の証拠を確認

MCP 対応

`watch-skill` パッケージには、39 個のツールを提供する stdio MCP サーバーが含まれます。MCP クライアントからメディア認識と検証機能を利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"oxbshw-watch-skill": {
"command": "uvx",
"args": [
"watch-skill"
]
}
}
}
起動コマンドuvx watch-skill

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiwatch-skill1.4.3

ツール

39

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
endanyいいえ
startanyいいえ
budgetanyいいえ
sourcestringはい
questionanyいいえ
backgroundbooleanいいえ

詳細

Watch Skill:Watch Skill のマスコットが画面を見つめるピクセルアートのシーン。上部のフィルムストリップには、ソースを視聴し、OCR とトランスクリプトとして記憶し、タイムスタンプ付きの証拠を特定してから、THE LOOP を実行して批評と修正を行うという 4 つの段階が示されています。画面には動画ライブラリ、タイムスタンプ付きの証拠リスト、VERIFIED で終わるキャプチャー・批評・修正・検証のサイクルが表示されています。

Watch Skill · DeepWatch

AI エージェントに目と耳、そして検証可能な結果を与えます。

Watch Skill は動画、音声、画面上のアクティビティを検索可能な タイムスタンプ付きの証拠に変換し、モデルの意見ではなく、 決定論的な契約に基づいて 本当に機能したのか? に回答します。MCP 経由で すでに利用しているエージェントに追加できます。

DeepWatch は、公式の DeepSeek Harness を基盤に Watch Skill をあらかじめ組み込んだ、 すぐに使えるエージェントのワークスペースです。ツール呼び出しごとに開いて確認できるレシートが残り、 結果は、それを生成したエージェント以外の何かによって検証できます。

Python · PyPI

PyPI の watch-skill PyPI のダウンロード数 Python のバージョン

Node · npm

@deepwatch/cli @deepwatch/dsh-bundle npm のダウンロード数 Node DeepWatch のリリース

ゲートとディレクトリ

CI ワークスペース インストール エージェントスキル MCP ライセンス

インストール · 使い方 · THE LOOP · パッケージ · アーキテクチャ · ドキュメント · コミュニティ


2 つの機能。それぞれ単独でも使えます

知覚。 動画、音声、画面上のアクティビティをフレーム、トランスクリプト、 OCR テキストに変換し、それぞれに絶対タイムスタンプを付与します。ソースを一度インデックス化すれば、 保持している間はいつでもクエリできます。回答には、開いて確認できる瞬間がすべて引用されています。

検証。 凍結された契約 — ファイルダイジェスト、JSON 値、SQL の結果、 HTTP レスポンス、DOM の状態 — を別のプロセスが評価します。判定は VERIFIED、FAILED、UNVERIFIED、INCONCLUSIVE のいずれかであり、 言語モデルによるものではありません。

どちらも単独で役立ちます。この分離は意図的なものです。

### Watch Skill — エンジン

録画を一度インデックス化すれば、保持している限り何度でも質問できます。回答は 開くことができるタイムスタンプを引用します。検証コントラクトはファイルのダイジェスト、JSON の値、SQL の結果、HTTP レスポンス、DOM の状態をチェックし、passed、 failed、unverified、inconclusive を報告します — 4 つの答えがあるのは、そのうち 3 つが 「no」とは同じではないからです。

どのエージェントでも使用できます: MCP、CLI、または REST API。

README の画像 DeepWatch — ワークスペース

公式の DeepSeek Harness を基盤とし、Watch Skill を組み込み、1 つのコマンドでインストールできます。自分で何も つなぎ合わせることなく、見て証明できるエージェントを手に入れられます。

すべてのツール呼び出しは、何に触れたかを示すレシートを残します。ツールが 宣言するすべてのパスは 1 つのワークスペース境界に対してチェックされるため、ツールが その外にこっそり書き込むことはできません。結果は開くことができる Core の判定を伴い、Library は再起動後もそれらを保持します。

ブラウザーで動作します。Compare は同じコントラクトの 2 つの実行を並べて表示し、 それらの判定がどこで分岐したかを示します。

Watch Skill は見て証明します。DeepWatch はそれが組み込まれているワークスペースです。


ここから始める

3 つの入口があります。自分に当てはまる行を選んでください。

お持ちのものやりたいこと参照先
すでにエージェントがある (Claude Code、Cursor、Codex、任意の MCP クライアント)それに目と耳と検証を与えるWatch Skill
まだ何もないエージェントを含むワークスペース全体DeepWatch
すでに稼働中の DeepSeek Harness があるそれに Watch を追加し、現在の構成を維持する@deepwatch/dsh-bundle
1. すでに使用しているエージェントに Watch Skill を追加する
pip install 'watch-skill[standard]'   # frames, retrieval and the MCP server
watch-skill doctor                    # checks, and repairs what it can
watch-skill watch <video-url-or-file>
watch-skill ask <id> "what changed at 3:12?"

追加分を真剣に検討してください。 素の pip install watch-skill では CLI、ベリファイア、Bridge が手に入りますが、フレームを抽出することはできません。watch は 最初の動画で perceive.missing_dependency に達して停止します。[standard] はフレーム、 レトリーバル、MCP です。[ocr] を追加すると画面上のテキストを読み取り、[whisper] を追加するとソースに キャプションがない場合のローカル文字起こしが可能になり、[loop] を追加するとブラウザーが使え、あるいは [all] を選ぶこともできます。watch-skill doctor は不足しているものに対して正確なコマンドを示します。

任意の MCP クライアントに組み込みます — [standard] にはサーバーが含まれます:

watch-skill serve              # stdio MCP server, 39 tools

または、25 以上のエージェントに一度にスキルをインストールします:

npx skills add oxbshw/watch-skill -g
### 2. ワークスペース全体

前提条件。 Node ^22.19 || >=24。CLI の engines で宣言されているバージョンです。Python 3.11、3.12、または 3.13。CI で実行され、分類子にも記載されているバージョンです。こちらは、認識・検証エンジンを使用する場合にのみ必要です。DeepWatch は Python なしで起動し、Python が導入されるまで、すべての Watch 機能を利用不可として報告します。

# 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 を表示し、その URL でワークスペースを開きます。最初に表示されるのは次の画面です。

DeepWatch の初回起動時のお知らせ画面。見出しは「何が起きたかを確認し、何が機能したかを証明しましょう。」。ローカルの証拠ワークスペースの準備ができ、ローカル機能にはプロバイダーもネットワークも不要であることを示す一文、「今すぐ利用可能 2 — Watch Core と Agent Model は実行時ゲートを通過しました」と「セットアップが必要 10 — 保存済みのものをテスト済みとして表示することはありません」を示すインストール状況パネル、「デフォルトでプライベート」という注記、そして「診断を表示」「オフラインで試す」「セットアップを完了」の各アクションが表示されています。

数字が割合ではなく 2 つ表示されるのは、「インストール済み」と「検証済み」が異なる事実であり、1 つのパーセンテージではその違いが曖昧になるためです。今すぐ利用可能は、実行時ゲートを通過したものの数です。セットアップが必要は、設定されていないもの、またはテストされていないものの数です。保存済みのものをテスト済みとして表示することはありません。プロバイダーなしでもワークスペースを開けます。Library、インデックス、Watch ツールはすべてローカルで動作します。

グローバルインストールを行わない場合は、同じパッケージを npx 経由で実行します。

npx --yes @deepwatch/cli setup
mkdir my-project
npx --yes @deepwatch/cli web --workspace ./my-project

npx は @deepwatch/cli を実行する方法であり、別のパッケージではありません。npm にスコープなしの deepwatch はありません。

setup がダウンロードするもの。 固定バージョンの DeepSeek Harness と、その Harness が必要とする正確なピア依存関係、および今回のリリースと同じバージョンの DeepWatch パッケージを、DeepWatch のホームディレクトリ内のランタイムにダウンロードします。レジストリ、バージョン、保存先を表示して、同意を求めて停止します。--yes は事前に同意し、--offline はただちに拒否します。グローバルにインストールされるのは、自分でインストールした CLI だけです。--artifacts <dir> を指定すると、レジストリの代わりに、この製品が自らハッシュを検証したローカル tarball から DeepWatch パッケージを取得します。これはチェックアウトビルド向けの方法です。このオプションを指定しても、インストールがオフラインになるわけではありません。このモードでも、固定バージョンの Harness と、その生成されたピア依存関係一式は npm から取得されます。setup は取得を始める前に、そのことを計画として表示します。

起動にモデルプロバイダーは必要ありません。 ワークスペースは起動し、Library は動作し、Watch ツールはプロバイダーなしでも応答します。プロバイダーが必要なのは、エージェントのためです。チャット、ツールの使用、および THE LOOP の批評ステップに必要です。

モデルを接続し、接続を検証する

ワークスペース内で、次の順に4つの手順を行います。最後の手順が重要です。

アプリ内の操作内容
Settings → Models → Add providerプロバイダー名を入力してキーを設定するか、または フィールドを空欄にして、起動環境からキーを読み込みます。
Settings → Role Bindings → Choose a model特定のプロバイダーとモデルを、Chat または Visual perception のロールに割り当てます。
プロバイダーテストを実行その割り当てに対して実際に1件のリクエストを送信し、返ってきた内容を報告します。
準備完了ここまで完了して初めて、ワークスペースからそのモデルにリクエストを送信できます。
ロールバインディング画面の DeepWatch 設定。Chat は準備完了と表示され、OpenRouter と deepseek/deepseek-v4-pro に割り当てられています。操作項目は、モデルを変更、プロバイダーテストを実行、Chat の割り当てを解除です。Visual perception と Speech to text は、それぞれ未設定と表示され、割り当てはなく、モデルを選択ボタンが表示されています。

保存済みであることは、テスト済みとして表示されません。 プロバイダーテストに成功していない割り当てはブロックされ、ターンにはその旨が表示されます。「…に割り当てられていますが、プロバイダーテストで確認されていないため、まだ何も送信できません。」 ホストを再起動した後は、もう一度テストを実行してください。割り当ては保持されますが、テストの証明は保持されません。

機能はプロバイダーごとではなく、ロールごとに割り当てます。何も割り当てられていないロールはその旨を示し、別のロールのモデルに暗黙的にフォールバックすることはありません。そのため、上の3つのうち2つは Chat のモデルを引き継がず、未設定 と表示されています。

最初に実行する価値のあるタスク

ワークスペースのディレクトリを開き、ディスクにアクセスするタスクを依頼します。

notes/totals.json を作成して、12、30、18という数値を記録し、その内容を読み返して合計を教えてください。

回答の下には、ツール呼び出しごとに、アクセスしたワークスペース相対パスを正確に示す行が表示されます。この README の以降の内容は、すべてこの仕組みを土台にしています。

依存関係の準備状況は、機能を実際に使ったことと同じではありません。 deepwatch doctor は、Node、Harness、プロファイル、Watch Core、ffmpeg などが インストールされ、アクセス可能か を報告します。これらの機能をお使いのマシンで実際に動かしたとは示しません。また、ワークスペース独自の準備状況パネルも同じ項目を確認します。緑色の行は、必要なものがそろっていることを意味します。各要素が連携して動作するかどうかは、上記のタスクを実行して確認します。

3. すでに実行している DeepSeek Harness に追加する
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 — web プロファイルを起動します(dsh web と同じ)。--profile の後にプロファイル名を一度だけ指定し、それ以外は何も渡さないでください。

両方のコマンドで同じプロファイル名を指定してください。 dsh plugin add は指定したプロファイルに書き込みます。一方のプロファイルにインストールして別のプロファイルを起動すると、watch_* ツールがなく、原因を示すエラーも出ないエージェントを目にすることになります。

プロジェクトディレクトリから起動してください。 レシートジャーナルは Host の起動時の作業ディレクトリに書き込まれるため、先にそこで cd を実行してください。そうしないと、Library は作業中のものとは別のディレクトリをインデックス化し、empty と報告します。

起動前に、プロファイルが実際にどのような構成になるか確認するには、次のようにします。

dsh --profile <your-profile> --dump-config | grep watch-

互換性のある Harness。 このリリースは、厳密に @deepseek-ai/[email protected] を対象に測定されています。範囲指定ではなく固定された peer なので、別の Harness を使うプロファイルとの組み合わせは、誰もテストしていません。使用中のバージョンは dsh --version で確認できます。

これでインストールは完了です。パッケージは dsh.bundle.patch を宣言しているため、DSH はそれをプロファイルのレイヤースタックに統合し、自身のパッチの後に適用します。これに加えて、4 つのより限定的なバリアント(media、browser、memory、document)も宣言されており、すべてではなく、特定の機能だけを必要とするプロファイルで使用できます。

エンジンを追加します。バンドルのメディア機能はエンジンが提供するため、追加機能も含めてください。

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

[standard] はフレーム、検索、MCP を提供し、[ocr] は画面上のテキストを読み取ります。追加機能を指定せずに pip install watch-skill を実行すると、フレームを抽出できない Core がインストールされます。その Core に Bridge が接続し、最初の動画で perceive.missing_dependency を報告します。Bridge は PATH 上の実行ファイルを自動的に見つけます。

完全なガイド:@deepwatch/dsh-bundle。

要件。 ここにある他のものと同じです。Node は ^22.19 || >=24、エンジンには Python 3.11、3.12、または 3.13 が必要です。Windows、macOS、Linux に対応しています。


自分に合ったパッケージ

このリポジトリから 2 つのレジストリを通じて 21 個のパッケージが提供されていますが、ユーザーが自分でインストールするものは 3 つだけです。

パッケージレジストリインストールする場合
watch-skillPyPICLI、MCP、または REST 経由で、知覚、エビデンス、検索、検証を利用したい場合。これはエンジンです。
@deepwatch/clinpmワークスペース全体を使いたい場合。deepwatch コマンドを提供し、その他すべてをプロビジョニングして起動します。
@deepwatch/dsh-bundlenpmすでに DeepSeek Harness を実行しており、自分で管理するプロファイルに Watch を追加したい場合。

@deepwatch/ 以下のその他すべては、プラグインまたは内部依存パッケージです。これには、バンドルが組み合わせる Harness の各要素(dsh-tools、dsh-library、dsh-live、dsh-memory、dsh-workspace など)と、それらが共有するパッケージ(dsh-contracts、dsh-sdk、dsh-core-bridge)が含まれます。バンドルが依存関係を解決できるように、また構成時にすべてではなく特定の要素を選べるように、これらも公開されています。単体でインストールするのは、自分で管理する構成に個別の要素を組み込む場合です。製品を利用するための方法ではありません。

npx @deepwatch/cli は別のパッケージではなく、@deepwatch/cli を実行する方法です。また、npm にはスコープのない deepwatch はありません。

**パッケージ一覧**では、21 個のパッケージがどのように構成されるかを説明しています。また、各パッケージの README には、その用途と必要なものが記載されています。

THE LOOP:観察、実行、検証

知覚は半分にすぎません。THE LOOP とは、何かを修正しようとするときに、エージェントが知覚をもとに行うことです。

THE LOOP:エージェントが自身のチェックアウトページで TOTAL: $NaN を見つけ、問題が確認できたタイムスタンプを示す構造化された批評を受け取り、コードが修正され、再キャプチャによって問題が解消されたことを確認します。
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 で再キャプチャし、前回の実行結果と比較します。つまり、「修正済み」とは、問題が解消されたことを意味します。

批評の手順には、ビジョン機能を備えたモデルが必要です。モデルがない場合でも、キャプチャ、フレーム、OCR、検証は引き続き機能し、批評では推測せず、判断できないと伝えます。詳しくは THE LOOP をご覧ください。

修正は教訓になる

回答が間違っていたら、修正します。Watch Skill はその修正を分類し、ローカルストアに教訓として保存します。誤りの分類が機械的に対処できる場合は、教訓を適用して質問し直し、どれだけの手間を省けたかを記録します。

教訓は実行のたびに保持され、あなたのマシン上にとどまります。自動で学習することはありません。修正を伝えるのはあなた自身です。また、データがアップロードされることもありません。 教訓と削減効果。


DeepWatch ワークスペース

ここまでで説明したすべてがエンジンであり、どのエージェントからも利用できます。DeepWatch は公式の DeepSeek Harness を基盤とし、Watch Skill があらかじめ組み込まれているため、そこで実行するエージェントは、何も設定しなくても証拠と判定結果を生成します。

このセクションの残りでは、ひとつのタスクを最初から最後まで扱います。チェックアウトページの請求額が間違っており、手元にあるのはその画面録画だけです。

録画をエンジンに渡す · 金額がどこで間違ったかを尋ねる · コードを修正する · エージェントの外から修正を証明する · 翌日、記録を見返す。以下の数値と判定結果はすべて、このセクションの作成に使った実行結果からのものです。使用したのは Watch Skill 1.4.3 と DeepWatch 0.1.3 です。

1 · 録画をエンジンに渡す

誰かが数量を変更する、4秒間の動画です。何が問題なのかは何も入力しません。

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

バグの内容が読み取れるようになりました。税額は計算されて表示されますが、合計には含まれていません。読み取れるようになったのは、これらのフレームが保持されたからです。レイアウトが同じまま金額だけが3回変わる映像は、フレームサンプラーでは重複と見なされます。そのため、スクリプトによるキャプチャが操作した瞬間を書き留め、エンジンがそのフレームを保持します。

2 · どこで起きたかを尋ねる
watch-skill ask <video-id> "what was the total when the quantity was three?"

回答には該当するタイムスタンプが示され、フレームはディスクに保存されています。録画に答えが映っていない場合は、そのように伝えます。回答できない質問は、推測する合図ではありません。

3 · アプリケーションを修正する

エージェントが作業を始める場所ができました。証拠を読み取り、cart.js で orderTotal を見つけ、計算した税額が戻り値に反映されていないことを確認します。

エージェントが触れたファイルはすべて、パスを記した記録を残します。また、ツールが宣言するすべてのパスは、1つのワークスペース境界を基準に解決されます。境界の外への書き込みは拒否され、さらに記録にも残ります。ファイルには触れず、ジャーナルには試みたパスを記した scope:outside_workspace / state:cancelled の記録が追加されます。どちらも重要です。境界によって黙って拒否されていたら、試行されたかどうかを知る手段がなくなってしまいます。

このセクションを生成した実行で、実際に残された記録がこちらです。ジャーナルには14行が記録され、それらをまとめると12件の記録になります。2件が、ツールの応答時と Core の判定時にそれぞれ1回ずつ、2度記録されたためです。todo_write と glob の4行はここでは省略しています。何かに触れたのは、次の8件です。

記録判定
watch_list_sources—
watch_ask_source—
read — checkout/cart.js—
read — checkout/index.html—
watch_moment—
edit — checkout/cart.jsVERIFIED
watch_verifyINCONCLUSIVE
pwsh—

モデルには、顧客に誤った金額が請求され、録画が存在することが伝えられました。バグの内容は伝えられておらず、ワークスペース内のどこにもその情報はありません。モデルはソースを一覧表示し、録画について尋ね、その中から該当する場面を取り出し、2つのファイルを読み、1行を変更して、独自に検証を実行しました。しかし、書いたチェックを評価できなかったため、結果は INCONCLUSIVE でした。その回答は、合格として丸めることなく、そのまま報告されます。

4 · エージェントの外部から修正を証明する

契約は修正前に固定されており、エージェントが書き込めるディレクトリの外に置かれています。Watch Core は別プロセスで契約を評価し、エージェントが作成するものではない判定、つまり VERIFIED、FAILED、UNVERIFIED、INCONCLUSIVE のいずれかを返します。

上記の実行で使われた契約は c98bd4ae3d13864869ae02be46cdba48fb97f790ec50feead6e30d17ccc007b0 で、 エージェントの開始前にそのダイジェストが取得されました。修正前、Core は3つすべてのチェックで fail を返しました。期待値は22、実際は20、期待値は33、実際は30、そしてレンダリングされたページから読み取った #total text = '$20.00' です。その後、変更されていない同じ契約で3つすべてが合格し、ページには $22.00 と表示されます。

watch_verify の VERIFIED 結果カード。2件中2件のチェックに合格し、1件はファイルの存在、もう1件は契約の sha256 ダイジェストとともに表示された合計フィールドを確認しています。

上のカードは別のタスク、最初に実行する価値のあるタスクにある totals.json のタスクを撮影したものです。VERIFIED カードがどのようなものかを示すために掲載しています。チェックアウトの修正を写したものではありません。修正の証拠は、上記の契約と記録です。

契約の SHA-256 が画面に表示されるので、同じ契約であることを確認できます。

判定が答えであり、4つの判定にはそれぞれ異なる意味があります。上記の契約で測定すると、修正済みのワークスペースに対しては VERIFIED です。対象ファイルがないディレクトリを指定した場合、チェックは引き続き実行されて false と報告されるため、FAILED になります。実行可能なチェックのない、文章だけの期待値は UNVERIFIED です。これは正直な判定であり、合格ではありません。また、まったく評価できないチェックは INCONCLUSIVE となり、チェック自体のステータスは false にまとめられず、null のままです。測定対象のワークスペースが指定されていない場合、Core はディレクトリを推測するのではなく、リクエストをそのまま拒否します(verify.workspace_unresolved)。

5 · 明日、続きを再開する

すべてを再起動します。プロセスを終了し、もう一度起動してください。2つの記録がどちらも戻ってきますが、これらは区別して説明する価値のある、別々のストアです。

Watch Core のソースインデックスは、Watch のデータディレクトリにあります。何も開いていなくても存在し、watch-skill list はワークスペースを使わずにこれを読み取ります。Library のレシートインデックスは Host 固有のものです。ジャーナルはワークスペース内の .watch/receipts に書き込まれ、Library は Refresh 時にこのファイルからインデックスを再構築します。このインデックスは派生データなので、安全に破棄できます。

そのため、Library はワークスペースに従います。作業しているディレクトリからアプリを実行してください。別の場所で起動した Host は別の場所にジャーナルを書き込みます。また、再起動後に Library が empty と表示する場合、通常はデータが失われたのではなく、誤ったディレクトリを参照しています。

上記の実行で確認した結果は、レシートが14件書き込まれた後、プロセスを終了し、再起動後に14件すべてが再び開ける状態でした。記録 ID と最新リビジョンはそのままで、Core が判定した2件にもそれぞれの判定結果が残っています。修復は VERIFIED、実行できなかったチェックは INCONCLUSIVE です。

Library 画面には、ワークスペース相対パスに対する読み取りと書き込み、および pwsh 呼び出しの行を含む一致結果が表示されています。「Index ready. Answered by this workspace's own host」という通知があり、ページには「Local-first」と表示されています。

Compare では失敗した実行と成功した実行を並べて表示し、判定がどこで分かれたかを示します。比較が示すのは差異であり、比較自体が判定を下すことはありません。

Compare 画面では、検証記録が2つ選択されています。左側には FAILED の watch_verify、右側にはファイルを修復した実行の VERIFIED が表示され、差分テーブルには、それぞれが片側にのみ存在すると示されています。

ここに掲載している画像はすべて実行中のビルドを撮影したもので、すべてが同じビルドのものではありません。同じだと言えば、このページで最も簡単な虚偽の主張になってしまいます。オンボーディングの画像は現在のギャラリーからのもので、Watch Skill 1.4.3 と DeepWatch 0.1.4 を対象に撮り直し、その前段で決定論的なブラウザーシナリオが42件中42件成功しています。画像と撮影対象のエンジンが一致しない場合、ゲートが一式の使用を拒否します。Settings と結果カードの画像は 1.4.3 / 0.1.4 の候補版のもので、今回のリリースではそれぞれが示す画面に変更がなかったため、そのまま使用しています。

**スクリーンショットのページ**には各画像のビルドが記載されており、3つのビューポートで撮影した全57枚のギャラリーが掲載されています。

ここでいう「ローカルファースト」の正確な意味。 ソース、レシート、判定結果、メモリはお使いのマシンに保存され、Library の検索もそこで実行されます。ネットワークを一切使わないという意味ではありません。setup はランタイムを npm からダウンロードし、一部の Watch 拡張機能は初回実行時にモデルを取得します。また、設定したホスト型モデルプロバイダーには、送信した内容が渡されます。ローカルにとどまるのは記録と、その記録に対する検索処理です。

キャプチャへの同意は、これらとは別です。ワークスペースが記録できる各ソースについて、必要な権限と、その権限が要求済みかどうかが一覧表示されます。実際に使うまでは、何も要求されません。

DeepWatch の Settings の Sources 画面には、Screen、Window、Camera、Microphone、Live session が一覧表示されています。それぞれに Local と Not requested のタグが付き、権限には「Requested at first use」と表示されています。ライブセッションはそのソースを引き継ぎ、監視対象のブラウザーには OS 権限が不要です。

プロバイダーのキーを持っていても、メディアをマシンの外に送信する許可にはなりません。また、ネットワークが利用可能でも、クラウドエンジンには別途同意が必要です。意図的に、これらは別々の2つのスイッチになっています。


どのような用途で使われているか

動画に質問する録画を一度インデックス化すれば、その後は質問できます。回答には、開いて確認できるタイムスタンプが示されます。 01-watch-and-ask
エージェントの作業を証明するファイルダイジェスト、JSON の値、SQL、HTTP、DOM を対象に、Core が実行する決定論的な契約です。 14-browser-verification
画面を見て UI を修正するキャプチャし、評価し、修正して、再検証します。 04-ui-loop
あらゆるものを横断して検索するこれまでに視聴したすべてのソースを対象とする、単一のインデックスです。 03-cross-video-search
オフラインで作業するローカルの Whisper と OCR を使用し、プロバイダーは不要で、データがマシンの外に出ることもありません。 15-private-offline-workflow
ライブの映像を視聴するストリームやブラウザーセッションを、範囲を限定してカーソルで追跡します。 18-live-watch

各項目は実行可能なディレクトリで、前提条件と想定される出力がその隣に記載されています。

内容別に見る全 20 件のサンプル
コアを学ぶ01 質問して視聴する · 02 特定の場面 · 03 動画横断検索
エージェントを使って構築する06 MCP と REST · 09 フレームワークアダプター · 15 プライベートなオフラインワークフロー
理解して整理する05 多言語対応のアラビア語 · 10 構造化抽出 · 11 バッチモード · 12 ライブラリのメモリ · 16 共有可能なビューアー
検証して改善する04 UI ループ · 07 レッスンと統計 · 08 ループの種類 · 13 自己改善 · 14 ブラウザー検証 · 17 鮮度とオフライン · 20 オブザーバーループ
ライブ映像を視聴する18 ライブ視聴 · 19 ライブブラウザー

全 20 件のサンプルは以上です。インデックスは examples/ にあります。


全体の仕組み

flowchart LR
  subgraph W["DeepWatch workspace"]
    H["DeepSeek Harness<br/>agent, tools, UI"]
    P["Watch plugins<br/>tools · library · live · memory"]
    H <--> P
  end
  P <-->|"Bridge (stdio)"| C["Watch Core<br/>Python engine"]
  C --> E[("Evidence store<br/>frames · transcripts · index")]
  C --> V["Verifier<br/>isolated subprocess"]
  V --> R[("Verification records<br/>contract · checks · verdict")]
  P --> J[("Receipt journal<br/>one per tool call")]
  A["Any other agent<br/>MCP · CLI · REST"] <--> C

判定を下すのは Watch Core だけです。 Host は気づき、関連付け、契約を凍結して質問することはできますが、回答を決めることはできません。これが ADR-002 の定めであり、packages/ 以下で判定を生成するものがあれば、ビルドゲートで失敗します。

レシートにはツール呼び出しが「実行したこと」が記録され、判定には Core が「検証したこと」が記録されます。これらは別々のプロセスによって書き込まれ、Library では別々の列に表示されます。コマンドを正常に実行したエージェントと、正しいことをしたエージェントは、同じ主張ではないからです。

詳細:アーキテクチャ · 検証 · 39 個のツール。


できることと、必要なもの

機能そのまま使える必要なもの
アプリの起動、閲覧、診断情報の確認✅なし
検証コントラクト、封じ込め、レシート✅なし
動画のフレームとシーン[standard] で利用可能ffmpeg ≥ 5.1 — watch-skill doctor がインストールします
画面上のテキストの読み取り[ocr] で利用可能初回使用時のモデルのダウンロード(約80 MB)
音声からテキストへの変換[whisper] で利用可能初回使用時のモデルのダウンロード。ソースに字幕がある場合は、まず字幕を使用します
エージェントとのチャット—追加してバインドするプロバイダー
視覚的なシーンの説明—画像を認識できるモデル
ブラウザーキャプチャ/THE LOOP[loop] で利用可能playwright install chromium
メモリオフ設定で有効にします。ストアはプレーンテキストであることを明示しています
デスクトップアプリ配布なし — インストーラーはありませんdeepwatch web を実行

プロバイダーを設定しなくてもDeepWatchは起動し、引き続き役立ちます。検証、 封じ込め、ライブラリ、ローカルでの知覚処理はすべてローカルで実行されます。プロバイダーが 必要なのはエージェント、つまりチャット、ツールの使用、THE LOOPの批評ステップです。

機能を利用できるようにする方法は3つあり、それぞれ互換性はありません。 ローカルの 依存関係(ffmpeg、yt-dlp、JSランタイム)はお使いのマシン上で実行され、 watch-skill doctor が取得して修復します。ダウンロードしたモデル(OCRの重み、 whisper)もお使いのマシン上で実行され、一度だけ大容量のダウンロードが必要ですが、 ファイルがマシンの外に送信されることはありません。ホスト型プロバイダー(エージェントのモデルや、 バインドするビジョンモデル)は他者のサービスであり、そのレイテンシ、料金、 利用規約が適用され、送信した情報をそのサービスが認識します。ご自身で実行する OpenAI互換サーバー(Ollama、vLLM、LM Studio、llama.cpp)は、お使いのハードウェアを 指すホスト型の経路です。データはローカルにとどまり、ツール呼び出しや画像に対応しているかどうかは モデルごとに異なります。DeepWatchはそれを回避しようとせず、そのまま報告します。

プロバイダーを追加するまで、プロバイダーに情報が送られることはありません。また、 プロバイダーの認証情報を持っていることは、フレームやトランスクリプトをアップロードする許可を 意味しません。それには別途同意が必要です。

自動修復されるもの。 watch-skill doctor が修復するのは依存関係です。 yt-dlp をダウンロードして最新の状態に保ち、JSランタイムをセットアップし、OCRの 言語データをインストールし、可能な環境では ffmpeg を取得して、修復内容をすべて報告します。 ここで依頼されなくても動作するのはこれだけです。このリリースでは、タスクの自動再開、 自律学習、保存データの暗号化はありません。全項目については 既知の制限事項 をご覧ください。


主張ではなく、測定値

主要な動画理解APIと、同一のファイルおよび同一の評価器で比較:

Watch Skillベースライン
記述分析の根拠の確かさ89.7%27.9%
100語あたりの引用数13.230.12
実際の映像でのフレーム配信率96.9%31.2%
合図の開始が0.5秒以内100%25%

手法とテスト用データ:benchmarks/video_backends/。 代替手段とのトレードオフ:比較。


ドキュメント

はじめにインストール、最初の監視、エージェントへの初回接続
インストールとアップグレード両製品、オプションの追加機能、互換性ポリシー
設定設定、プロバイダー、ストレージの場所
ツールリファレンス39 個すべての MCP ツールと、それぞれに対応する REST/CLI
検証コントラクト、14 種類のチェック、保証レベル
アーキテクチャ境界、データフロー、拡張ポイント
エージェント一覧クライアントごとの設定と、各クライアントの検証状況
トラブルシューティング依存関係の修復と一般的な実行時エラー
コスト無料で実行できるものと、プロバイダーの課金対象
既知の制限事項このリリースで対応していないこと

DeepWatch: workspace README · 設定 · 20 個のパッケージ · リリース · プラットフォームサポート

ツール数は、答える質問がそれぞれ異なるため、3 種類あります。watch-skill serve による MCP ツールは 39 個、DeepWatch 内のエージェントに追加される watch_* ツールは 22 個、そのエージェントに提供されるツールは合計 47 個です。


コミュニティとエコシステム

他の人が書いた紹介記事と、プロジェクトを掲載しているディレクトリです。それぞれに実際に掲載されている内容を説明しています。紹介記事は、誰かが実際に試して報告したものであり、推奨とは異なります。また、いずれも利用者数について触れているわけではありません。

チュートリアルと紹介記事

Watch Skill 使用教程:让 Codex 看懂视频和录屏Watch Skill を Codex CLI に接続する手順を、インストール、MCP 設定、最初の動画まで順を追って解説しています。中国語。
Watch Skill: AI video analysis and video correction独自の具体的なユースケースとトラブルシューティングのセクションを含む、設定および操作ガイドです。英語。

動画

使い方の解説、その 1 · その 2インストールと最初の分析を取り上げた、Bilibili の画面録画による解説です。中国語。

ディレクトリ

Skills.sh10 個のエージェントスキルを掲載しており、1 つのコマンドで対応クライアントにインストールできます。
SkillsMP同じスキル一式を掲載している、もう 1 つのスキルディレクトリです。
MCP レジストリ名前で MCP サーバーを解決するクライアント向けの、io.github.oxbshw/watch-skill サーバーエントリーです。

チュートリアル、動画、インテグレーション、ディレクトリ掲載情報に分けてまとめた全一覧はこちらです:docs/ecosystem.md。記事を書いたり動画を録画したりした方は、そこに追加するプルリクエストをお送りください。


コントリビューション

イシューやプルリクエストを歓迎します。CONTRIBUTING.md には、何をインストールするか、どのゲートを実行するか、コミットメッセージをどのように記述するかを含む、20 分でできる手順を記載しています。セキュリティポリシー:SECURITY.md。設計上の決定事項とその理由:DECISIONS.md および ROADMAP.md。


README の画像

DeepSeek Harness 上に構築 · Watch Skill により提供

DeepWatch と Watch Skill は独立したプロジェクトであり、DeepSeek との提携関係はなく、DeepSeek による推奨も受けていません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。