mcpField
P
phone-link-samsung-control

phone-link-samsung-control

github.com/arthurzakirov生産性1153 回インストール2 週間前に更新
リポジトリ

phone-link-samsung-control について

Windows の Phone Link にミラーリングされた Arthur の Samsung Galaxy S25 FE を操作するスキルです。検証済みのネイティブアプリ操作手順に加え、プライバシー保護と就寝時の制限設定を案内し、状態の確認を求めます。

主な機能

  1. 01ミラーリングされた Samsung の操作
  2. 02ネイティブ Phone Link ウィンドウの特定
  3. 03最新スクリーンショットでの操作
  4. 04スマートフォン内の個人情報保護
  5. 05就寝時の制限設定の案内

活用シーン

  1. 01タッチ操作でミラーリング端末を移動
  2. 02画面で就寝設定を確認してから報告
  3. 03夜間の気晴らしを制限する設定

MCP 対応

このスキルには MCP 接続やサーバーについての説明はありません。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/arthurzakirov/agentdesk --skill phone-link-samsung-control

インストール後、Claude Code で/phone-link-samsung-controlを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yaml

詳細

Phone Link Samsung の操作

このスキルは、Windows Phone Link アプリにミラーリングされた Arthur の Samsung Galaxy S25 FE を直接操作する必要があるタスクで使用します。

このスキルでは、以前に動作が確認された Windows のネイティブ操作経路を使用します。重要なのは、Phone Link はブラウザーのタブではなく、Windows のネイティブアプリであるという点です。ブラウザーツールから見えないというだけで、操作できないと判断しないでください。

必須のコンピューター操作セットアップ

Windows アプリを操作する前に、同梱の computer-use スキルと必要なドキュメントを読み込んでください。@oai/sky をインポートできる JavaScript 実行環境を使用してください。このツールがまだ読み込まれていない場合は、ブラウザーのみの自動化を使うのではなく、node_repl または Computer Use ツールを探してください。

新しい JavaScript セッションごとに、ランタイムを一度初期化します。

if (!globalThis.sky) {
  const { sky } = await import("@oai/sky");
  globalThis.sky = sky;
}
nodeRepl.write("sky initialized");

Phone Link のウィンドウを見つける

Phone Link は、次のネイティブ Windows アプリ ID で見つかることが確認されています。

Microsoft.YourPhone_8wekyb3d8bbwe!App

アプリまたはウィンドウを一覧表示し、このアプリ ID と次のようなタイトルで絞り込んでください。

  • S25 FE von Arthur
  • Phone Link
  • Einstellungen

ミラーリングされたスマートフォンをタッチ操作する場合は、デバイスのウィンドウ S25 FE von Arthur を優先してください。メインアプリのシェルには Phone Link を使用し、ミラーリングされたスマートフォン内で Android の設定アプリが開いている場合に限り Einstellungen を使用してください。

動作確認済みの選択パターン:

globalThis.apps = await sky.list_apps();
const candidates = apps.flatMap(app => app.windows || [])
  .filter(w => w.app === "Microsoft.YourPhone_8wekyb3d8bbwe!App" && w.title === "S25 FE von Arthur");

if (candidates.length !== 1) {
  nodeRepl.write(JSON.stringify(candidates.map(w => ({ id: w.id, app: w.app, title: w.title })), null, 2));
  throw new Error(`Expected exactly one S25 FE Phone Link window; found ${candidates.length}`);
}

globalThis.targetWindow = await sky.get_window({ id: candidates[0].id, app: candidates[0].app });
await sky.activate_window({ window: targetWindow });
globalThis.state = await sky.get_window_state({
  window: targetWindow,
  include_screenshot: true,
  include_text: false
});
globalThis.targetWindow = state.window;

JavaScript セッションの状態が失われた場合は、sky を再初期化し、対象のウィンドウをもう一度見つけてから、操作前に再度状態を確認してください。

スクリーンショットを使って操作する

スマートフォンを操作する際は、最新の観測結果に基づいてスクリーンショットと座標を使用してください。テキストの確認が必要で、安全に確認できる場合を除き、include_text: false にしてください。これにより、プライベートなメッセージ、メール、通知、アプリの内容が漏れるのを防げます。

クリック、ドラッグ、スクロールを行う前に、必ず次のことを確認してください。

  • 現在のスクリーンショットが古い可能性がある場合は、対象の Phone Link ウィンドウを再度観測します。
  • 最新の観測結果に含まれる screenshotId を使用します。
  • 操作後は、古いキャッシュ状態をクリアするか置き換えます。
  • 操作後に再度観測し、表示結果を確認します。

動作確認済みの無害な確認操作:

const observation = globalThis.state;
const screenshotId = observation.screenshots?.[0]?.id;
if (!screenshotId) throw new Error("No screenshotId returned by latest observation");

globalThis.state = null;
await sky.drag({
  window: observation.window,
  screenshotId,
  from_x: 560,
  from_y: 1160,
  to_x: 120,
  to_y: 1160
});

globalThis.state = await sky.get_window_state({
  window: observation.window,
  include_screenshot: true,
  include_text: false
});
globalThis.targetWindow = state.window;

動作確認では、Android のホーム画面上でこの水平ドラッグを行うと、S25 FE von Arthur ウィンドウに Android のエッジ/スワイプ操作への反応が表示されました。これにより、Phone Link がタッチジェスチャーを受け付けることを確認できました。

安全上の制限

スマートフォンの操作は、プライバシーに関わるものとして扱ってください。

  • メール、メッセージ、通知、閲覧履歴、アカウントの詳細、アプリの内容など、プライベートなコンテンツを開いたり、読んだり、要約したり、漏らしたりしないでください。
  • 何も購入せず、カートに商品を追加せず、認証情報を入力せず、支払いを承認せず、有料プランを承認しないでください。
  • サードパーティ製アプリのインストール、機密性の高い権限の付与、アカウント設定の変更、許可する連絡先/発信者の選択、アラームの変更を行う前に、いったん停止して確認を求めてください。
  • 操作確認には、「戻る」「ホーム」「最近使ったアプリ」、設定画面内の移動、何もない領域でのジェスチャーなど、無害なシステム操作を優先してください。
  • メディアの音声がスマートフォンのスピーカーから再生され続ける可能性があるときに Bluetooth を切断するなど、予期せず音量が大きくなるおそれのある操作は避けてください。

睡眠設定の意図

Arthur の就寝時のスマートフォン設定に関するリクエストでは、以下の決定事項を維持してください。

  • 気を散らすアプリの厳格な制限は、毎日 22:30 から 05:00 まで適用します。
  • 緊急通話を無効にせずに、22:00 から 05:00 まで通知を消音し、通常の通話をブロックします。
  • 23:00 から 05:00 までは、Audible、YouPipe、YouTube、ポッドキャスト、オーディオブックの音声を再生しないようにします。メディアを停止または一時停止する Samsung の組み込みルーチンを優先します。利用できない場合は、その時間帯のメディア音量を 0 に設定し、対応していれば 05:00 以降に元に戻します。
  • 朝のアラームは作成しません。Arthur は自然に目覚めることを望んでいます。06:30 は理想の起床時刻にすぎません。Samsung の睡眠モードで起床アラームが有効になっている場合は、そのアラームを特定し、オフにする前に変更停止の境界を守ってください。
  • 厳格な制限中に許可するのは、特定可能な必須アプリのみです。Phone、Clock、Calendar、Maps、銀行アプリまたは 2FA、パスワードマネージャー、Notes、Settings が対象です。
  • 設定可能な場合は、気を散らすアプリを制限します。対象は YouTube、YouPipe、ブラウザー、Amazon、Reddit などのソーシャルメディア、ChatGPT、Play Store、Galaxy Store、深夜のリスクにつながる場合の Audible です。

これらは設定の意図であり、現在のデバイスの状態を示すものではありません。スケジュール、アラーム、メディア操作、制限が設定済みだと伝える前に、画面に表示された UI を確認してください。状態を安全に確認できない場合は、推測せず、具体的な阻害要因を報告してください。

コメント