OpenInOtty は、macOS Finderのツールバーに追加するミニマルなアプリです。Finderのツールバーアイコンをクリックするだけで、Otty がカレントディレクトリで端末を開きます。プロジェクトURL:github.com/pintaste/OpenInOtty(MIT)。OpenInTerminal-Lite にインスパイアされました。解決する問題コーディングや設定変更の際、Finderで目的のフォルダを開いているのに、ターミナルを起動してパスをいちいちcdで入力する——そんな経験はありませんか?Ottyは素晴らしいターミナルですが、「Finderの現在位置からワンジャンプでOttyを開く」ネイティブな導線がありません。OpenInOttyは、それをツールバーのアイコンひとつにまとめました。クリック → 現在のFinderウィンドウのパスを取得Ottyが起動済み → otty-cli tab new --cwd <path> で新規タブを開くOttyが未起動 → otty-cli open <path> で起動しそのディレクトリに移動利用可能なFinderウィンドウがない → デスクトップにフォールバックエラー時は NSAlert を表示し、静かに無視しないアプリ本体は LSUIElement として動作:Dockアイコンもメニューバーの常駐もなし。クリックしてコマンドを送信したら即終了、バックグラウンドに残りません。動作環境 依存関係バージョン/備考 macOS12.0 Monterey 以降 Xcode15+(App Storeの無料版でOK) Ottyデフォルトのパス /Applications/Otty.app にインストールクローンしてReleaseビルド:BASH git clone https://github.com/pintaste/OpenInOtty.git cd OpenInOtty xcodebuild -project OpenInOtty.xcodeproj \ -scheme OpenInOtty \ -configuration Release \ -derivedDataPath build \ build cp -R build/Build/Products/Release/OpenInOtty.app /Applications/ ⌘ キーを押しながら を /Applications/OpenInOtty.app Finder ツールバーにドラッグします。初回クリック時に、macOS が Apple Events / Automation の権限を求めてくるので、許可を選択してください。「許可しない」を選んでしまった場合、リセットしてからアイコンをもう一度クリックしてください:BASH tccutil reset AppleEvents com.local.OpenInOtty システム設定でも確認できます:プライバシーとセキュリティ → Automation(OpenInOtty → Finder)。動作のしくみ(簡易版)実装は単一の main.swift(約100行)に集約されており、AppDelegateも常駐イベントループもありません。ScriptingBridge 経由で Finder の最前面ウィンドウのパスを取得し(finderPath())Otty(bundle ID: io.appmakes.otty)が実行中かどうかを判定を呼び出してタブを開く、または open を実行/Applications/Otty.app/Contents/MacOS/otty-cli/Applications/Otty.app/Contents/MacOS/otty-cliエラー発生時はアラート表示、成功時は即座に exit(0)Noteパス解決には「Swift @objc optional protocol + respondsToSelector」という通常の方法は使っていません。ScriptingBridge のプライベートサブクラスは動的転送されるメソッドに対して false を返すため、呼び出しはすべて nil になり、TCC 承認ダイアログすら表示されません。代わりに perform(NSSelectorFromString:) を使用することで、本当に Apple Event を送信できます。AIエージェント向けクイックリファレンス 項目値 Bundle IDcom.local.OpenInOtty インストールパス/Applications/OpenInOtty.app Ottyのパス/Applications/Otty.app Otty CLI.../Contents/MacOS/otty-cli UIタイプLSUIElement = true ⌘ + ドラッグでツールバーに追加する手順は、ユーザー自身が行う必要があります。エージェントが別のbundle IDやOttyパスをでっち上げないでください。よくある質問クリックしても反応がない?Otty が /Applications/Otty.app にあるか確認し、Automationの権限をチェックしてください。権限エントリが消えた場合は、前述の tccutil reset でリセットしてもう一度クリックしてください。デスクトップが開く(カレントフォルダじゃない)?最小化されていないFinderウィンドウが少なくとも1つ必要です。最小化されたウィンドウはカレントディレクトリとして認識されません。まとめ日常的にOttyを使い、Finderでプロジェクトディレクトリをブラウジングする習慣があるなら、OpenInOttyは「フォルダを探す→ターミナルを開く」をツールバーの一撃で完結させます。コードは短く、バックグラウンドプロセスなし、MITライセンスでオープンソースです。リポジトリ:https://github.com/pintaste/OpenInOttyライセンス:MIT関連:Otty · OpenInTerminal-Lite
OpenInOtty は、macOS Finderのツールバーに追加するミニマルなアプリです。Finderのツールバーアイコンをクリックするだけで、Otty がカレントディレクトリで端末を開きます。
プロジェクトURL:github.com/pintaste/OpenInOtty(MIT)。OpenInTerminal-Lite にインスパイアされました。
解決する問題
コーディングや設定変更の際、Finderで目的のフォルダを開いているのに、ターミナルを起動してパスをいちいちcdで入力する——そんな経験はありませんか?Ottyは素晴らしいターミナルですが、「Finderの現在位置からワンジャンプでOttyを開く」ネイティブな導線がありません。
OpenInOttyは、それをツールバーのアイコンひとつにまとめました。
アプリ本体は LSUIElement として動作:Dockアイコンもメニューバーの常駐もなし。クリックしてコマンドを送信したら即終了、バックグラウンドに残りません。
動作環境
にインストール
「許可しない」を選んでしまった場合、リセットしてからアイコンをもう一度クリックしてください:
システム設定でも確認できます:プライバシーとセキュリティ → Automation(OpenInOtty → Finder)。
動作のしくみ(簡易版)
実装は単一の main.swift(約100行)に集約されており、AppDelegateも常駐イベントループもありません。
パス解決には「Swift @objc optional protocol + respondsToSelector」という通常の方法は使っていません。ScriptingBridge のプライベートサブクラスは動的転送されるメソッドに対して false を返すため、呼び出しはすべて nil になり、TCC 承認ダイアログすら表示されません。代わりに perform(NSSelectorFromString:) を使用することで、本当に Apple Event を送信できます。
AIエージェント向けクイックリファレンス
⌘ + ドラッグでツールバーに追加する手順は、ユーザー自身が行う必要があります。エージェントが別のbundle IDやOttyパスをでっち上げないでください。
よくある質問
クリックしても反応がない?
Otty が /Applications/Otty.app にあるか確認し、Automationの権限をチェックしてください。権限エントリが消えた場合は、前述の tccutil reset でリセットしてもう一度クリックしてください。
デスクトップが開く(カレントフォルダじゃない)?
最小化されていないFinderウィンドウが少なくとも1つ必要です。最小化されたウィンドウはカレントディレクトリとして認識されません。
まとめ
日常的にOttyを使い、Finderでプロジェクトディレクトリをブラウジングする習慣があるなら、OpenInOttyは「フォルダを探す→ターミナルを開く」をツールバーの一撃で完結させます。コードは短く、バックグラウンドプロセスなし、MITライセンスでオープンソースです。