bigarrow、AIエージェントが押してほしい場所を矢印で示すmacOSツール

コードを読まないAIエンジニア
サムネイル

AIエージェントに作業を任せていると、「システム設定でAllowを押してください」と言われて手が止まることがありますよね。ターミナルの文章だけでは、そのボタンが画面のどこにあるのか分からないからです。bigarrowは、押してほしい場所にエージェント自身が大きな矢印を出すmacOS用のCLIで、ここでは入れ方と、できること・できないことをREADMEとSKILL.mdから整理します。

許可ダイアログで止まるとき、bigarrowは何をするのか?

bigarrow(リポジトリ名はBig Arrow on the Screen)は、画面の上に透明なレイヤーを重ねて、矢印と一文の案内を描くツールです。READMEの説明は「It never clicks, types or captures. It only points.」の一言に尽きます。クリックも入力もキャプチャもせず、指すだけです。

たとえばエージェントがシステム設定の画面を開いたあと、次の1行を実行すると、Allowボタンに矢印が向いて案内文が出ます。READMEに載っている例そのままです。

bigarrow point --element "Allow" --app "System Settings" --text "Franz, click Allow"

矢印と案内文以外の場所はクリックが下のウィンドウへ素通りし、キーボードのフォーカスも奪いません。複数ディスプレイ、Spaces、Stage Managerにも対応しています。中身はSwiftの単体バイナリで、常駐プロセスもメニューバーのアイコンもありません。

READMEとSKILL.mdが想定している場面は、権限の許可、2段階認証、ログイン画面、支払い画面など、最後は人が押すしかない操作です。ライセンスはMITで、GitHubの星は2026年10月16日時点で752でした。

bigarrowの入れ方は、brewとinstall-skillの2行

Homebrewで本体を入れ、続けてスキルを配置します。3行目は確認用です。

brew install franzenzenhofer/tap/bigarrow
bigarrow install-skill
bigarrow doctor

install-skill は、Claude Code用に ~/.claude/skills、Codex用に ~/.agents/skills へスキルを置きます。doctor は、今どの権限が付いているかと、つながっているディスプレイを表示するコマンドです。SKILL.mdはbigarrow 0.4.6以上を前提にしています。

ソースから入れる場合は swift build -c release でビルドします。条件はXcode 16以上とmacOS 14以上です。

エージェントにはスキルとして何が渡るのか?

bigarrowはMCPサーバーではなく、スキルとして入ります。「スキルだとコンテキストを食うのでは?」と気になりますよね。READMEによれば、常に読み込まれるのは説明文の約182トークンだけです。指す必要が出たときに手順の約1,528トークン、見た目を変えるときに約1,118トークンが追加で読まれます。

ここが面白いところなんですが、SKILL.mdはツールの使い方より「どう指すか」のルールに字数を割いています。要点は次の4つです。

  1. 画面やURLはエージェントが自分で開き、人に残った最後の1か所だけを指す。メニューを順にたどる案内はしない
  2. 矢印は1ステップに1本。終わったらすぐ bigarrow stop で消す
  3. 案内文は動作を名指しする完全な一文にする。例は「Franz, click Pay: 49 EUR to Hetzner」で、「click here」だけでは足りない
  4. 期限のある操作は --color red --say で赤くして読み上げ、期限も書く

個人的には1のルールが一番効くと思っています。「設定を開いて、プライバシーを選んで、下にスクロールして」と文章で案内される代わりに、エージェントが先に画面を開いておく。人の仕事は「矢印の先を押す」1回だけになります。

bigarrowにできること、できないこと

できることは、指す、知らせる、値を渡す、の3系統に収まります。

機能
内容
指す
矢印、リング、枠の3種類。形は曲線、直線、ジグザグ、渦巻き。色は赤やオレンジなど10色の名前か #RRGGBB
知らせる
案内文の表示と、--say での読み上げ
値を渡す
案内文に {{value}} と書くと、その値をワンクリックでコピーできるボタンになる
追いかける
--follow でウィンドウや要素の移動に付いていく

「矢印を出したついでに、押すところまでやってくれればいいのに」と思いますよね。そこはやりません。クリック、文字入力、スクリーンショットの撮影はしない、とREADMEがはっきり書いています。認証コードを貼る場面でも、bigarrowが出すのはコピー用のボタンまでで、フォームへ入れるのは人です。

消えるタイミングも決まっています。point は既定で8秒、start は300秒で消え、--duration で変えられます(0なら無期限)。--until-click を付けると対象をクリックした時点で消え、--close-button で案内文の右端に閉じるボタンが付きます。描いたプロセスが終われば矢印も消えるので、エージェントが途中で落ちても画面に残り続けません。

指し方によって、bigarrowに要る権限は変わる

座標で指すだけなら権限は要りません。ボタン名で探すとAccessibility、ウィンドウのタイトルで探すとScreen Recordingも必要になります。

指し方
要る権限
--at X,Y(座標)、--rect(矩形)、--mouse、--window App、--app App
なし
--element ラベル --app App、--until-click、--app App:タイトル
Accessibility
--window App:タイトル
Screen Recording、前面に出すならAccessibilityも

権限はbigarrow本体ではなく、呼び出す側のアプリ(ターミナルやVS Code)に付けます。足りないと終了コード4で止まり、どのアプリにどの設定画面で許可すればいいかを表示します。ほかの終了コードは、0が成功、2が入力の誤り、3が対象が見つからない、です。エージェントは返ってきた番号を見て次の手を選べます。

Chromeは要注意です。Webページ内の要素をボタン名で探すには、Chromeを --force-renderer-accessibility 付きで起動するか、VoiceOverをオンにする必要があります。Chromeのツールバーは追加設定なしで指せる、とREADMEにあります。

自動承認にしないAIエージェント運用と、矢印はどう噛み合うのか?

許可ダイアログで止まるのが面倒なら、確認を飛ばす設定にすればいい、と考える人もいるはずです。ただ、OSの権限や支払いのボタンまでエージェントに押させる運用は、私は選びません。

bigarrowは、押す判断を人に残したまま、ボタンを探す手間だけを減らします。エージェントが画面を開き、矢印で1か所を指し、人が押す。この分担なら、承認の操作は最後まで人の手にあります。

最初の一歩は、brew install から bigarrow doctor までの3行です。ターミナルにAccessibilityが付いているかを確かめたら、エージェントに「次に私が押す場所はbigarrowで指して」と頼んでみてください。