リンクを開くときにブラウザやプロファイルを選択して開けるようになる「OpenIn」

当たり前の話ですが、リンクをクリックすると「既定のブラウザ」に設定しているブラウザでリンクが開きます。
基本的にはそれで問題ないのですが、プロファイルを複数使い分けていたり、用途に応じてブラウザを使い分けている場合、意図していないブラウザやプロファイルで開かれると面倒です。
そこで活用したいのが「OpenIn(オープンイン)」です。
リンクを開く瞬間に「どのアプリで開くか」を差し込めるリンクハンドラで、ブラウザだけでなくメールリンクや電話リンク、ファイルの開き先までまとめてコントロールできます。
今回はそんなOpenInについて紹介します。
OpenIn

OpenInは、Loshadki LLCが開発しているmacOS用のリンクハンドラです。
URL・メールリンク(mailto)・電話リンク(tel)・ファイルを開くときに、どのブラウザ・アプリで開くかを選択して開いてくれます。
仕組みはシンプルで、OpenIn自体を「デフォルトのブラウザ」としてmacOSに登録します。

そうすることで、リンクを開く操作がすべてOpenInを経由するようになり、そこからルールに従って目的のアプリへ振り分けたり、その場でアプリを選んだりできるようになります。
購入方法
購入方法は3つあり、それぞれ料金と制限に違いがあります。
主な違いをまとめると下記の通りです。
| 入手方法 | 料金 | 特徴 |
|---|---|---|
| Mac App Store | ¥2,000の買い切り | サンドボックスあり。一部機能で「OpenIn Helper」が必要 |
| 公式サイトから直接購入 | $11.99の買い切り | サンドボックスなしで全機能が使える(無料トライアルが可能) |
| Setapp | サンドボックスなしで全機能が使える |
有料アプリが使い放題になるサブスクサービスのSetappにも登録されています。
注意点として、ライセンスは入手方法をまたいで移行できません(Mac App Storeで買ったものをあとからSetapp版に引き継ぐ、といったことはできない)。
そのため、最初にどこで購入するかを決めておいた方が良さそうです。
私の場合はSetappに加入しているので、追加費用なしで使えました。
類似ツールとの比較
リンクの振り分けを行うツールはOpenInだけではありません。
主なものをまとめると下記の通りです。
| 項目 | OpenIn | Velja | Choosy | Finicky |
|---|---|---|---|---|
| 料金 | $11.99(買い切り) | $8(買い切り) | $10(買い切り) | 無料(オープンソース) |
| 入手方法 | Mac App Store / 公式サイト / Setapp | Mac App Storeのみ | 公式サイト / Homebrew | GitHub / Homebrew |
| 設定方法 | GUI | GUI | GUI | 設定ファイル(JavaScript / TypeScript) |
| アプリ選択ウィンドウ | あり | あり | あり | なし(ルールによる自動振り分けのみ) |
| 扱えるリンクの種類 | URL / mailto / tel / ファイル | URL中心 | URL中心 | URL |
mailtoやtel、ファイルの開き先までまとめて管理できるのはOpenInです。Choosyは$10(約1,500円)の買い切りで、ターミナルやAppleScriptから叩けるURL形式のAPIを持っているのが特徴です。
設定をコードで管理したい人にはFinickyという選択肢もあります。
MITライセンスのオープンソースで、~/.finicky.jsにJavaScriptまたはTypeScriptでルールを書く形式です。
基本的な使い方
OpenInを使うには、まずOpenInをデフォルトのブラウザに設定します。
アプリを起動して案内に従い、macOSの設定でデフォルトのWebブラウザをOpenInに変更します。

これでブラウザ以外のアプリからリンクを開く操作が、OpenInを経由するようになります。
設定が終わったら、適当なリンクをクリックしてみます。
するとアプリ選択ウインドウが表示され、インストール済みのブラウザやアプリが一覧で並びます。

あとは開きたいブラウザ・プロファイルを選ぶだけです。
毎回マウスで選ぶのは面倒なので、各項目の右側に表示されている数字キーを押して開くこともできます。
もちろん、この一覧に表示されるブラウザやプロファイルを設定したり、開くたびに選ぶのではなく「このドメインは必ずこのブラウザ」といったルールを決めて自動で振り分けることもできます。
ブラウザ拡張機能の活用
1点注意しないといけないのが、ブラウザの中で踏んだリンクはOpenInを経由しないという点です。
OpenInが呼ばれるのは、あくまで「他のアプリからブラウザが開かれるとき」です。
Google Chromeで開いているウェブページ内のリンクをクリックしても、そのままGoogle Chromeの中で開きます。
しかし、現在開いているのとは別のブラウザでリンクを開きたい場合があります。
そこで用意されているのがブラウザ拡張機能です。
Safari用は本体に内蔵されていて、Google Chrome用とFirefox用はそれぞれのストアで配布されています。
拡張機能を入れると、リンクの右クリックメニューから[OpenInに送る(Open in OpenIn)]ができるようになります。
ブラウザ間でリンクを渡したい場面に便利です。
環境設定
ここからはOpenInの環境設定をまとめます。
General
OpenIn全体の動作に関わる基本的な設定です。
主な項目は下記の通りです。

| 設定項目 | 内容 |
|---|---|
| Configuration | |
| Start at login | ログイン時に自動起動する |
| Show menu bar icon | メニューバーにアイコンを表示する |
| Menu bar icon | 表示するメニューバーアイコンを選ぶ |
| Check if OpenIn is a default app in background | OpenInがデフォルトアプリのままか定期的に確認する |
| Store history of opened links and files | 開いたリンクやファイルの履歴をローカルに保存する期間 |
| Disable tips | 操作のヒント表示をオフにする |
| App selection window | |
| Always show the Window (even with one app) | 候補が1つでもアプリ選択ウインドウを表示する |
| Icon Size | アプリ選択ウインドウのアイコンサイズを選択する |
| Reduce animation | アプリ選択ウインドウのアニメーションを減らす |
| Developer | |
| Enable JavaScript logs | ルール用JavaScriptのログを記録する |
候補が1つしかないときにもウィンドウを出すかどうか(Always show the Window)は、好みが分かれそうです。私の場合は候補が1つなら確認なしで開いてほしいので、オフにしています。
Browsers
ブラウザでリンクを開くときの挙動を設定します。
Applications・Rules・Developer・Redirectsの4つのセクションに分かれています。

Applications
リンクを開く候補となるブラウザを登録する場所です。
インストール済みのブラウザを候補として追加し、アプリ選択ウィンドウに表示する順番を並び替えられます。
よく使うブラウザを上に置いておくと選びやすくなります。
ChromeやArc系のブラウザであれば、プロファイルを指定して特定のプロファイルで開いたり、プライベートウィンドウ(シークレットウィンドウ)で開く候補を別に用意したりもできます。
仕事用と個人用のプロファイルを別々の候補として並べておけるのは、ブラウザを使い分けている人には嬉しいポイントです。
Rules
リンクの条件に応じて、開くブラウザを自動で振り分ける場所です。
ルールは[+ Add condition]から追加でき、ドメイン・パス・修飾キーの有無・送信元アプリ・macOSのFocus(集中モード)などを条件にできます。
条件は上から順に評価され、最初にマッチしたルールが適用されます。

例えば「会社のドメインのリンクは仕事用プロファイルのChromeで開く」「Messagesアプリから来たリンクはSafariで開く」といった振り分けが可能です。
よく開くリンクほどルール化しておくと、アプリ選択ウィンドウを出さずにそのまま目的のブラウザで開けるのでラクになります。
Focusを条件にする場合は別途設定が必要です。
macOSは集中モードの名前をアプリ側に教えてくれないため、OpenIn側で「Focus Hint」という文字列(例えばWork)を作り、macOSの集中モードの設定で同じ文字列を指定して紐づけます。
ひと手間かかりますが、仕事モードのときだけ仕事用ブラウザを起動するといった切り替えができます。
Launchを[Selected]に切り替えて、有効にしたいブラウザにチェックを入れると、ルール適用時にはそのブラウザだけが表示されるようになります。
ちなみに、[General]の設定で[Always show the Window]のチェックを外していると、選択ブラウザが1つだけの場合は選択ウインドウが出ずにいきなりリンクが開くようになります。
Developer
ルールをJavaScriptで自作するための場所です。
ドメインやパスの指定だけでは表現しきれない複雑な条件を、JavaScriptで書いて制御できます。
書いたルールの動きはログで確認でき、[General]設定の「Enable JavaScript logs」をオンにしておくと挙動を追いやすくなります。

私自身ここまで凝ったルールは組んでいませんが、標準のルールで物足りなくなったときにさらに細かく設定できるのはありがたいです。
Redirects
リンクのURLそのものを書き換えてから開く機能です。
正規表現でURLのパターンを指定し、別のURLに置き換えられます。
例えば https://music\.apple\.com/(.*) を music://music.apple.com/$1 に書き換えるルールを作れば、本来ブラウザで開かれるApple MusicのリンクをMusicアプリで直接開けます。
Apple MusicやApple TV、Zoomのように、Web版ではなくネイティブアプリで開きたいリンクをアプリ側へ送りたいときに便利です。
Schema
電話リンク(tel)や通話・会議系のリンク、メールリンク(mailto)を開くときの挙動を設定します。
Browsersと同じく、Applications・Rules・Developerのセクションに分かれています。
デフォルトだと「Call apps」と「Mail apps」だけですが、他にも[Add scheme…]から追加することもできます。

Applications
リンクを開く候補となるアプリケーションを登録します。
メールの場合、標準のメールアプリだけでなく、GmailやOutlookといったWebメールも候補にできます。
Rules
アプリケーションの振り分けルールを設定します。
メールの場合、ここでGmailなどのWebメールを指定し、URLの書き換えを有効にすると、mailtoリンクをブラウザ上のGmailの新規作成画面で開けるようになります。
デスクトップ版のメールアプリを使っていない人には便利な設定です。
Developer
Browsersと同様、JavaScriptでリンク用のルールを自作できます。
私の場合はメールはルールを細かく組むほど使っていないので、ここはほとんど触っていません。
Files
ファイルを開くアプリを、拡張子ごとに設定するセクションです。

BrowsersやSchemesと同じ考え方で、Finderでファイルを開くときに拡張子ごとに開く候補アプリを複数登録できます。
[Add file type…]で拡張子を入力するか、その拡張子のファイルをリストにドラッグすると追加できます。
追加したらURLやメール・電話リンクと同様に、その拡張子のファイルを開くときにどのアプリケーションで開くかを設定できます。
常に固定のアプリで開く場合は問題ないですが、たまに別のアプリで開きたい場合があるときはこの設定をしておくと便利です。
ただ、私の場合はAlfredを使って選択中のファイルを指定アプリで開けるようにしているので、この設定はあまり使うことがなさそうです。
Backups
設定したルールや候補アプリの構成をバックアップするセクションです。

バックアップはiCloudに保存され、設定を変更する前にバックアップを取っておけば、あとから元の状態に戻せます。
ファイルとしてエクスポート・インポートもできるので、別のMacに同じ設定を持っていきたいときにも使えます。
ルールを作り込むほど構成は複雑になっていくので、大きく変更する前にバックアップを取っておくと安心です。
About
OpenInのバージョン情報などを確認できるセクションです。
Mac App Store版を使っている場合は、ここでOpenIn Helperのアップデートを求められることがあります(ブラウザのプロファイル対応など、Helper側の更新が必要な機能を使うとき)。
まとめ
プライベート用や仕事用にプロファイルを分けていたり、状況に応じて開くブラウザを変えたい場合が多々あったので、どこで開くか選択できるようになってかなり快適になりました。
普段ブラウザを1つしか使わない人には、出番がないかもしれません。
Setappに加入している人なら追加費用なしで試せるので、まずはSetapp版で使い勝手を確かめてみるのが良さそうです。
ルールやJavaScriptまで設定をしていくと沼ですが、まず最初はデフォルトのブラウザに設定してアプリ選択ウィンドウを使うだけでも十分です。
複数のブラウザやプロファイルを活用している方は、ぜひお試しください。




Macで画面上に図形やフリーハンドで注釈が書ける「DemoPro」
Macで複数ディスプレイを使っている場合に便利な設定集
デモを見やすく分かりやすくするためのMouseposéオススメの設定
Bartenderの「Quick Search menu bar items」でメニューアイコンを検索してアクティブにする方法
Path Finderのサイズブラウザ機能で容量の大きいファイルを探して整理する方法
macOSの環境をすぐに復元したり、別Macと同期するために必要な情報をまとめた「アプリ設定フォルダ」を作る
Macでfnキーを2回押すと音声入力が起動するのを無効化する方法
Macでアプリごとに音量を調節できるアプリ「Background Music」
macOSのスクリーンショット音やゴミ箱移動時の効果音(サウンドエフェクト)をオフにする方法
Macで英語の発音記号を入力する方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
WordPressのContact Form 7で送信時に回転アイコンが出たまま止まってしまうときのチェックリスト
iOSアプリ版の1Passwordで「パスワード自動補完」機能を利用するための設定
anyenvを使ってプログラミング言語のバージョンをラクに管理する
スライドを簡単に実装できるJavaScriptライブラリ「Swiper」
ダミーデータ・ダミー画像を登録・生成してくれるFigmaプラグインまとめ
HyperSwitchでアプリ・ウインドウ間の切り替えを素早く行う
液体が垂れているような図形「流体シェイプ」の作り方
Alfred 4のAppearance Optionsから外観の設定を行う
Path Finder 8で動作がおかしいと思ったときにチェックすること
Webサイト全体をキャプチャするならFull Page Screen Captureがおすすめ