pair-programmer について
VideoDB Pair Programmerは、画面と音声のコンテキストを使うAIペアプログラミングスキルです。視覚・音声イベントをリアルタイムに記録、インデックス化し、検索や音声指示に基づく操作に利用できます。
主な機能
- 01画面と音声の録画
- 02視覚・音声イベントのリアルタイムなインデックス化
- 03録画コンテキストの検索
- 04直近の活動の要約
- 05音声指示に基づく操作
活用シーン
- 01コーディング中の画面上の最近の活動を確認
- 02発話や画面のコンテキストから録画を検索
- 03音声指示を使って操作を実行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ video-db/ pair-programmer --skill pair-programmerインストール後、Claude Code で/pair-programmerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
package.jsonrecorder-app.jssearch-rtstream.jsverify-connection.jscommands/act.mdconfig.mdrecord.mdsearch.mdsetup.mdstop.mdwhat-happened.mdui/picker.htmlwidget.html詳細
VideoDB ペアプログラマー
リアルタイムの画面および音声コンテキストを使ったAIペアプログラミングです。画面と音声を録画し、AIによるインデックス作成によって、視覚イベントと音声イベントをリアルタイムで記録します。
コマンド
ユーザーからコマンドを求められた場合は、対応するファイルを読んで手順を確認してください。
| コマンド | 説明 | 参照 |
|---|---|---|
/pair-programmer record | 画面と音声の録画を開始します | commands/record.md を参照 |
/pair-programmer stop | 実行中の録画を停止します | commands/stop.md を参照 |
/pair-programmer search | 録画コンテキスト(画面、マイク、音声)を検索します | commands/search.md を参照 |
/pair-programmer act | マイクから聞こえた指示に従って操作します | commands/act.md を参照 |
/pair-programmer what-happened | 最近のアクティビティを要約します | commands/what-happened.md を参照 |
/pair-programmer setup | 依存関係をインストールし、APIキーを設定します | commands/setup.md を参照 |
/pair-programmer config | インデックス作成やその他の設定を変更します | commands/config.md を参照 |
仕組み
- ユーザーが
/pair-programmer setupを実行して依存関係をインストールし、環境変数VIDEO_DB_API_KEYを設定します - ユーザーが
/pair-programmer recordを実行して録画を開始します - 画面と音声のソースを選択するピッカー UI が表示されます
- 録画が始まり、イベントが
/tmp/videodb_pp_events.jsonlに記録されます - ユーザーはトレイアイコン(🔴 PP → Stop Recording)から録画を停止できます
出力ファイル
| パス | 内容 |
|---|---|
/tmp/videodb_pp_pid | レコーダーのプロセス ID |
/tmp/videodb_pp_events.jsonl | すべての WebSocket イベント(JSONL 形式) |
/tmp/videodb_pp_info.json | 現在のセッション情報(session_id、rtstream_ids) |
イベントファイルの形式
イベントは JSONL 形式(1 行につき JSON オブジェクト 1 つ)で書き込まれます。
{"ts": "2026-03-05T10:15:30.123Z", "unix_ts": 1709374530.12, "channel": "visual_index", "data": {"text": "User is viewing VS Code with auth.ts open"}}
{"ts": "2026-03-05T10:15:31.456Z", "unix_ts": 1709374531.45, "channel": "transcript", "data": {"text": "Let me check the login flow", "is_final": true}}
環境変数
レコーダーは、以下の環境変数を読み取ります。
| 変数 | 必須 | 説明 |
|---|---|---|
VIDEO_DB_API_KEY | はい | VideoDB API キー |
VIDEO_DB_BASE_URL | いいえ | API エンドポイント(デフォルト:https://api.videodb.io) |
コンテキストの読み取り
イベントは /tmp/videodb_pp_events.jsonl にあります。フィルタリングには CLI ツールを使用してください。ファイル全体を読み取らないでください。
| チャンネル | 内容 | 密度 |
|---|---|---|
visual_index | 画面の説明 | 高(約 2 秒に 1 件) |
transcript | マイク音声 | 低(文単位) |
audio_index | システム音声の要約 | 低(文単位) |
チャンネルフィルター — grep でチャンネルを絞り込み、tail にパイプして最近のイベントを表示します。
grep '"channel":"visual_index"' /tmp/videodb_pp_events.jsonl | tail -10
キーワード検索 — すべてのチャンネルを対象に grep で検索します。
grep -i 'keyword' /tmp/videodb_pp_events.jsonl
時間範囲フィルター — 過去 N 分間のイベントを絞り込みます。
- 現在のエポック時刻を取得します:
$(date +%s) - カットオフ時刻を計算します:
epoch - N*60 unix_tsJSON フィールドがカットオフ時刻を超える行を絞り込みますgrepにパイプしてチャンネルをさらに絞り込みます
複雑さに応じて、適切なフィルタリングコマンド(grep、awk、python3、jq)を生成してください。
インデックス化されたコンテンツをセマンティック検索するには、search-rtstream.js を使用してください。
node search-rtstream.js --query="your query" --cwd=<PROJECT_ROOT>
<PROJECT_ROOT>は、ユーザーのプロジェクトディレクトリの絶対パスです。これはスキルディレクトリではありません。コマンドを実行する前に解決してください。
検索方法と CLI パターンの詳細は、commands/search.md を参照してください。