ChatGPTは便利だが、いつもいつも面倒に感じるのは、質問の前提となるコンテキスト(既存の文章やコード)を、別のアプリからChatGPTにコピペする必要がある点だ。
既存の文章やコードベースをChatGPTに与えてから、「エラーの原因を修正せよ」などと指示することになるので、ChatGPTを使い込めば使い込むほど、あっちへこっちへコピペをしまくる事が多くなる。
そんなChatGPTユーザーたちの悩みを解決してくれる新機能が、「Work with Apps (アプリ連携)」機能である。
アプリ連携を有効にすると、わざわざコピペをしなくても、ChatGPTが、自動的に外部アプリで開いているファイルやページを読み取って理解してくれる。Notionやメモ、ターミナル、VS Codeなどの幅広いアプリに対応しており、文書作成やコード作成が楽になる。
他アプリで作業中のコンテキストを理解した状態で、ChatGPTとのチャットができるので、文章やコードの修正方法の質問などを短くシンプルにすることができる。
また、ChatGPTのデータ分析機能などを活かすと、メモアプリに書き込まれた数字や、ターミナルで取得した数値履歴など、外部アプリ内に存在するテキスト形式の数値データを瞬時にグラフ化する、なんてこともできてしまう。
必要なのは、アプリ連携を有効にしたChatGPTに、「グラフにして」と一言指示するだけだ。こうした工夫次第で、可能性は無限に広がっていく。
本記事では、Mac版のChatGPTアプリで、外部アプリ連携を有効にし、作業効率をさらに改善する方法を詳細に解説する。
なお、アプリ連携機能のアップデートは、2024年12月のクリスマスまで毎日実施中のOpenAIによる新機能発表ライブ配信「12 Days of OpenAI」において、11日目に発表されたものである。
他の12日間の発表内容の総まとめ・解説記事は、こちらのタグ「12 Days of OpenAI」から確認することができる。日本時間の火曜〜土曜の午前3時にライブ配信が行われるので、次回の解説もお楽しみに。
「Work with Apps」(外部アプリ連携)機能の概要
「Work with Apps」機能は、2024年12月現在、macOS版ChatGPTアプリのみに実装されている。時期は明示されていないが、近々、Windows版にも実装予定だという。
テキストエディタやコードエディタ、ターミナルなど、ユーザが利用中のアプリケーションと直接連携し、アプリ内のコンテキストを理解した上で、回答を提供してくれる。
アプリ連携機能を有効にする方法は、以下の通りとても簡単だ。
- 連携先のアプリを起動した状態で、ChatGPTウィンドウ下部の「Work with Apps」ボタンをクリックし、対象アプリを選択する。
- 選択後、チャットバー上部に「どのアプリと連携中か」を示すバナーが表示される。このバナーが表示されていない場合、ChatGPTは他アプリとの連携を行っていない状態である。
- チャットを送信すると、選択アプリ上のコンテンツ(エディタ内容、選択テキストなど)を参照した回答をChatGPTが返す。
記事執筆時点で、対応している外部アプリの一覧は以下の通りである。
多くの人は、NotionやApple純正のメモアプリなど、ドキュメント作成ツールでの利用が中心になりそうだ。エンジニアであれば、Xcode、VS Code、Warpやターミナルへの対応は非常にありがたいところだ。
- Apple Notes
- Notion
- TextEdit
- Quip
- Xcode
- VS Code (including Code, Code Insiders, VSCodium, Cursor, Windsurf)
- Jetbrains (including Android Studio, IntelliJ, PyCharm, WebStorm, PHPStorm, CLion, Rider, RubyMine, AppCode, GoLand, DataGrip)
- TextEdit
- Terminal
- iTerm
- Warp
- Prompt
アプリ連携を有効にした時、どこからどこまでの情報がChatGPTアプリに共有されるのかは、アプリの種類によっても異なる。
基本的には、最前面で開いているアクティブウィンドウ内の情報が丸ごと共有され、テキストの範囲選択などを行うと、ハイライトしている箇所の情報も共有される。
- テキストエディタ(Apple Notes、Notion、TextEdit、Quip): 最前面ウィンドウのエディタペイン全体が参照対象。選択テキストがある場合、その範囲と周辺情報にフォーカス。
- コードエディタ(Xcode、VS Code、JetBrains系IDE、TextEdit): 最前面ウィンドウのエディタペイン全体が参照対象。同様に、選択テキストがある場合はその範囲を中心に参照。
- ターミナル(Terminal、iTerm、Warp、Prompt): 最前面ペインの最後の200行程度が参照対象。選択テキストがある場合、その範囲と隣接するテキストを中心に処理。
ChatGPTに特に見てほしい段落などがあるときは、その段落を選択した状態にすると良いということだ。
いちいちテキストファイル全体をコピペしたり、スクリーンショットを撮ったり、非効率なステップを踏む必要がなくなるので、大幅に手間が削減される。
ChatGPTの音声モードでも外部アプリ連携が可能
外部アプリ連携機能は、なんとChatGPTの音声モード中でも利用することができる。
Notionやメモ帳に書いたアイディアを、ChatGPTに見てもらいながら、口頭でディスカッションすることも可能ということだ。
スマホ版のChatGPTアプリには、スクリーン共有機能があるが、あくまで共有できるのは画面に映っている範囲の映像のみだ。
アプリ連携機能を使用することで、画面に映っている領域だけでなく、ドキュメント全体についてChatGPTに情報を与えることができるので、より精度の高い対話が可能になる。
ChatGPT「アプリ連携」機能の活用例
以下では、ChatGPTの外部アプリ連携機能を使って、ドキュメント作成やコーディング作業を効率化するユースケースを紹介する。
- Notionを使ってヨーロッパ旅行の旅程表を作成し、その内容についてChatGPTにアドバイスをもらう
- コーディング作業中にChatGPTにコードの改善案を考えさせ、またターミナルに打ち込むコマンドを考えさせる
- 音声モードのChatGPTと一緒に、新年会の企画をディスカッションする
などなど、私生活から仕事まで、幅広い応用例が考えられる。
Notionでのドキュメント執筆をサポート
サンプルとして、Notionアプリ内に、ヨーロッパ旅行計画のドキュメントを作成してみた。ドキュメント内には旅程や行き先の候補、どのような目的の旅かなどが記載されている。
ChatGPTでNotionを連携アプリとして有効にした上で、この計画書を踏まえて、ロンドン滞在中の訪問先のおすすめをあげてもらった。
すると、Notionのドキュメントをしっかりと読み込んで、今回の旅行が歴史や文化をテーマとした旅行であると判断した上で、ロンドン滞在中に訪れるべき歴史や文化関連のスポットを紹介してくれている。
いちいち作成中のドキュメントの背景情報を伝えなくても、勝手にChatGPTがドキュメントを読み込んで判断してくれるので、プロンプトを書く手間が大幅に削減される。
従来は、今回の例ならヨーロッパに旅行に行くことや、歴史や文化が好きであることなどを、いちいち打ち込んだりコピペしたりしなければ、質問のコンテキスト・前提情報を共有できなかったので、利便性が大きく改善された。
音声モードのChatGPTと一緒に新年会を考える
さらに、アプリ連携機能を応用すれば、ChatGPTアプリのボイスモードで、AIと会話をしながら一緒にドキュメントを作り上げることも可能だ。
まず、アップル純正のメモアプリを使って、新年会の企画書の下書きを作成してみた。
ChatGPTアプリをショートカットで呼び出し、アプリ連携先としてメモアプリを指定して、音声モードを起動する。
すると、会話をしている間、ずっとAIがメモアプリの中身を閲覧できる状態になる。
以下の画像は実際の音声チャットの履歴を表示したものだ。
新年会の企画書の中にある幹事の役割分担の箇所について、既存のドキュメントにすでにある役割以外のアイディアを考えてもらうことなどができている。
従来のチャット形式のコミュニケーションを超えて、一緒のアプリを確認しながら、口頭でディスカッションをするという、まさにAIがパートナー・エージェントとして機能する、未来を感じる機能だ。
VS Codeのコード全体をChatGPTに把握させる
macOS版ChatGPTの「Work with Apps」機能をVS Codeなどで利用するには、専用の拡張機能をインストールする必要がある。
VS Code系のテキストエディタを利用している人は、まずは、以下の手順で拡張機能を入手してこよう。
- 公式提供のVSIXファイルをダウンロードする。
- VS Codeでコマンドパレット(
CMD + Shift + P
)を開き、「Extensions: Install from VSIX…」を実行する。 - ダウンロードしたVSIXファイルを選択する。
- インストール完了後、サイドバーの拡張機能一覧に「ChatGPT – Work with VS Code on macOS」が表示されていることを確認する。
筆者はVS CodeフォークのCursorを利用しているので、以下はCursorで利用した例である。
拡張機能をインストールした状態であれば、ChatGPTのアプリ連携の選択肢としてVS Codeが表示されるはずだ。
例えば、既存のコードにAPIの処理速度を測定するためのコードを加筆したいとする。ChatGPTのデスクトップアプリをショートカットキーで呼び出して、テキストエディターと連携し、追記したい内容を指示する。
アプリ連携機能は、o1, GPT-4oなどどのモデルでも利用できるので、o1モデルを選択すればより高度な内容も対応できる。
すると、既存のコードの中にある関数を的確に理解した上で、修正案を考案してくれた。
アプリ連携機能で、自動でコンテキストがChatGPTに共有されているため、既存のコードベースを自分でせっせとコピペする必要がなく、圧倒的に作業効率が改善する。
ただし現状では、ChatGPTが出力したコードをVS Codeに反映するために、自分でコピペを行う必要がある。
テキストエディタからChatGPTへの自動連携は可能になったが、ChatGPTからテキストエディタへの反映はまだ手動ということだ。
12 Days of OpenAIのライブ配信の中でもこの点が話題になり、配信の中では今後改善を行うことが宣言されていた。
ターミナルのコマンドを考えさせ、さらに結果をグラフ化させる
また、外部連携可能なアプリには、ターミナルやWarpなどのシェルも含まれている。
Warpと連携させた上で、カレントディレクトリを踏まえたコマンドを考えてもらうなどといったことができる。
例えば、日別にGitコミットの件数を集計させるコマンドを尋ねてみた。
さらに、ChatGPTが考えてくれたコマンドを実行した上で、日別のコミット数を、棒グラフにするように頼んだ。
ChatGPTが、連携中のWarpの出力を勝手に読み取って、的確に棒グラフを生成してくれた。
このように、単にターミナルのコマンドを考えるサポートをしてくれるだけでなく、出力をビジュアルで見やすくするといった加工作業までお願いすることができてしまう。
アプリ連携機能を有効にしたからこそ得られる大きなメリットである。
アプリ連携機能で感じた「エージェント」としてのAIへの期待
アプリ連携機能は、ChatGPTが単なるチャットボットであった時代の「コピペによる前提情報の受け渡し」という手間を大きく解消してくれる。
ユーザが日常的に使うテキストエディタやコードエディタ、ターミナル、ドキュメント作成ツールと直接つながり、その内容を自動的に理解することで、ユーザはその都度コンテキストを共有する必要がなくなった。
アプリ連携を使うことで、ChatGPTはまるで「業務の流れの中」に自然に存在するパートナーのような位置づけになる。
こちらからプロンプトで指示をしなくても、ユーザーの状況を見渡し、先読みしてサポートする存在へと進化しつつある。デスクトップ版のChatGPTアプリの振る舞いは、「理解ある同僚」や「信頼できるアシスタント」というレベルに近づいてきた。
ユーザは複雑なタスクの途中でパートナーに助言を求め、その応答を即座に業務に反映しながら、一連の流れの中で自然とAIとの協働を続けていく・・・。そんな「能動的なエージェント」へとAIが進化する未来のスタートラインという感じだ。
Windows版のアプリが早く登場することを祈りつつ、Mac版の今後の発展も期待したい。