Mac Context (Eyes) は何をしますか?
これは基礎的なセンシングスキルです。エージェントがローカルのmacOSセッションを最小限の副作用で観察できるようにします。これは4つの機能(このスキルの「眼」、耳/声、手、記憶)の最初のものであり、これらが組み合わさって個人向け生産性アシスタントを構成します。
このスキルはプロジェクトのガードレール憲章を継承します。references/charter.mdを読み、それに従ってください。
コアルート
UIの推測よりも決定論的な観察を優先します。AppleScriptとシェルを使用して構造化された状態(アプリ名、ウィンドウタイトル、タブURL、クリップボード)を読み取ります。スクリーンショットは構造化インターフェースがない画面に対してのみ使用し、その後画像を視覚モデルで読み取ります。
バンドルされたスクリプトを実行します:
SKILL_DIR="${CODEX_SKILL_DIR:-$HOME/.codex/skills/mac-context}"
bash "$SKILL_DIR/scripts/mac_context.sh"
デフォルトの動作: 最前面のアプリとその前面ウィンドウのタイトルを表示します。
一般的なタスク
現在フォーカスされているアプリ/ウィンドウ:
SKILL_DIR="${CODEX_SKILL_DIR:-$HOME/.codex/skills/mac-context}"
bash "$SKILL_DIR/scripts/mac_context.sh" --frontmost
アクティブなブラウザタブ(URL + タイトル)、またはブラウザウィンドウ全体のタブを取得:
bash "$SKILL_DIR/scripts/mac_context.sh" --browser
bash "$SKILL_DIR/scripts/mac_context.sh" --browser-tabs
クリップボードを読み取る、または現在の選択範囲を取得:
bash "$SKILL_DIR/scripts/mac_context.sh" --clipboard
bash "$SKILL_DIR/scripts/mac_context.sh" --selection
--selection はCmd+Cを発行してハイライトされたテキストをコピーし、それを表示した後、以前のテキストクリップボードを復元します。クリップボードが現在テキスト以外の形式を保持している場合は実行を拒否します。これは pbcopy がそれらを安全に復元できないためです。ユーザーが特に選択範囲のキャプチャを要求していない場合は、使用する前にユーザーに伝えてください。
サイレントスクリーンショットを撮り、それを視覚モデルで読み取る:
# フルスクリーンを一時パスに保存
bash "$SKILL_DIR/scripts/mac_context.sh" --screenshot
# ユーザーが選択した領域
bash "$SKILL_DIR/scripts/mac_context.sh" --screenshot --interactive /tmp/shot.png
# クリックしたウィンドウ
bash "$SKILL_DIR/scripts/mac_context.sh" --screenshot --window /tmp/win.png
スクリプトは screenshot=<path> を出力します。そのパスをRead/visionツールで開き、スクリプト化できないUI(Slack、Notion、PDF、デザインツールなど)を解釈します。
「自分が何を見ているか」の複合スナップショット(最前面 + ブラウザ + クリップボード):
bash "$SKILL_DIR/scripts/mac_context.sh" --snapshot
機能とそれぞれが必要とするmacOSの許可を一覧表示:
bash "$SKILL_DIR/scripts/mac_context.sh" --list
パーミッションモデル
- 読み取りが大部分です。スクリプトは何も送信、投稿、編集、移動、削除しません。
- 唯一意図された副作用は次の通りです:
--selectionはテキストのみのクリップボードを一時的に上書きし(その後以前のテキストを復元)、--screenshotは画像ファイルを書き込みます。 - macOSはこれらの機能をゲート(許可制御)しています。各モードの初回実行時にプロンプトが表示される場合があります:
- ウィンドウタイトルと
--selection: アクセシビリティ。 - ブラウザモード: 自動化(ブラウザごと)。
- スクリーンショット: 画面収録。
- ウィンドウタイトルと
- macOSがプロンプトを表示した場合は、一時停止し、どの許可が必要か、どこで許可するか(システム設定 > プライバシーとセキュリティ)を正確にユーザーに伝えてください。
構成
このスキルは他のスキルに情報を提供することを目的としています。典型的な連鎖:
- キャプチャからタスクへ: 現在のコンテキストのスナップショットを取得し、ユーザーが見ていたものにリンクするリマインダー/課題を作成します。
- ミーティングの準備/トリアージ: アクティブなタブまたは選択範囲を読み取り、フォローアップの根拠とします。
- ビジョンによる回避策: AppleScriptインターフェースが存在しない場合、スクリーンショットを撮り、読み取ります。
連携する場合、最初にこのスキルで観察し、その構造化された結果をアクションを実行するスキルに渡します。アクションスキルは依然として憲章に従い、明示的で名前を指定したターゲットの同意を必要とします。
ガードレール
- デフォルトを受動的観察とします。タスクに必要な場合を除き、スクリーンショットを撮ったり、選択範囲を読み取ったり、すべてのタブを列挙したりしないでください。最も狭いモードを優先します。
- キャプチャしたコンテンツ(クリップボード、タブ、画面テキスト、選択範囲)はプライベートとして扱います。タスクに必要な以上にエコーせず、gitで追跡されるファイルに書き込まないでください。
- 機能が不足している許可によってブロックされている場合は、リトライや回避策を試みるのではなく、そのことを明確に述べてください。
- ここでアプリに対してUIスクリプティングを使用してアクションを実行しないでください。このスキルはセンシングのみを行います。アクションは専用の同意ゲート付きスキルに属します。