vscodeでのGitHub・GPT-5利用(準備編)

GPT-5に相談しながらArduino IDEでスケッチを作成する際、何度も修正を行なっていると、どのスケッチが修正対象であるか不明確になるので、それを防止するための方法として、修正対象のスケッチを、Gitの対象ブランチと基準コミットIDで指定する方法が、上記記事で紹介したようにGPT-5から提案された。その指定方法を使うためには、どのような事前準備が必要か調べた。

Arduino IDEと、GitまたはGitHubを連携させる方法について教えてください。

GPT-5 の回答

Arduino IDE と Git/GitHub を連携させる方法はいくつかあります。大きく分けると (1) ローカルで Git を直接使う方法(2) GitHub と連携させる方法 があります。それぞれ整理して説明しますね。

1. Arduino IDE と Git の基本連携

Arduino IDE には直接 Git 管理機能はありませんが、スケッチ(.inoファイル)やライブラリのフォルダを Git 管理下に置くことは可能です。

手順

  1. スケッチを保存
    • Arduino IDE でスケッチを ~/Arduino/sketches/... のようなフォルダに保存します。
    • フォルダ名と .ino ファイル名を揃えておくと管理しやすいです。
  2. Git リポジトリを初期化 cd ~/Arduino/sketches/my_project git init git add . git commit -m "First commit"
  3. .gitignore の設定
    • ビルド生成物や一時ファイルを除外すると良いです。例: build/ *.hex *.elf *.bin

2. GitHub と連携する方法

GitHub を利用すると、ソースコードのバックアップや共同開発が可能になります。

手順

  1. GitHub にリポジトリ作成
    • GitHub のウェブサイトで新しいリポジトリを作成します(例: arduino-project)。
  2. ローカルと GitHub を接続 git remote add origin https://github.com/ユーザー名/arduino-project.git git branch -M main git push -u origin main
  3. Arduino IDE との連携
    • Arduino IDE でスケッチを編集 → 保存。
    • その後、ターミナルや Git クライアント(GitHub Desktop, SourceTree, VS Code など)で git addgit commitgit push

3. VS Code / PlatformIO を使う方法(応用)

Arduino IDE だけでは Git 管理が不便なので、VS Code + Arduino 拡張 または PlatformIO を使うと、

  • コード補完(IntelliSense)
  • Git 連携(変更差分の確認、コミット、プッシュ)
  • ビルド・書き込み

まで統合できます。
VS Code + PlatformIO なら GitHub との連携が自然にできます。

Arduino IDE だけでは Git 管理が不便であり、下図(GPT-5「設定」の「コネクター」画面)のように、GPT-5がGitHubにアクセスできるようなので、VS Code + PlatformIO 拡張の環境を構築することにした。

GitHub コネクターについては、別途、下記の記事で追加調査を行なっている。

コネクターとして「GitHub」を連携させると、どんなことが可能になりますか

GPT-5 の回答

いい質問ですね!
ChatGPT の コネクターとして「GitHub」を連携 すると、Arduino IDE のようにローカルで GitHub を使うだけではなく、ChatGPT 自体が GitHub 上のリポジトリにアクセスできるようになります。これにより、ChatGPT と GitHub を組み合わせた開発支援が可能になります。

🔗 GitHub コネクターで可能になること

1. リポジトリ内のファイル検索・閲覧

  • ChatGPT に「〇〇プロジェクトの main.ino を開いて」と言うと、GitHub 上のファイルを直接読み込めます。
  • コードの一部を提示して「この関数の動作を解説して」といった依頼も可能。

2. コードレビュー・改善提案

  • プルリクエストやコミットを開き、その差分を ChatGPT に解説させることができます。
  • 「この PR のバグの可能性を指摘して」といったレビュー支援も可能。

3. 履歴・差分の確認

  • 「最新のコミットメッセージをまとめて」と依頼すれば、進捗の要約を ChatGPT が生成。
  • 「先週以降の変更点を整理して」といった履歴ベースのレポート作成もできます。

4. ドキュメント生成・補完

  • リポジトリ内のコードから自動で README を下書き。
  • Arduino プロジェクトなら、lib_deps や依存関係を読み取り、必要なインストール手順を整理。

5. タスク支援

  • この issue の内容を要約して」と依頼できる。
  • 関連するコードを探して」といったリサーチ作業を ChatGPT に任せられる。

🚫 コネクターでできないこと(制限)

  • 直接 push / commit / merge はできない
    → コードの修正提案まではできますが、実際の反映は自分で行う必要があります。
  • プライベートリポジトリは明示的に権限を与えないとアクセス不可
  • CI/CD 実行や GitHub Actions のトリガー はできません(現状は閲覧・解析が中心)。

👉 まとめると、GitHub コネクターは「ChatGPT をコードレビューア兼リサーチアシスタントに変える」 ものです。
修正の自動反映はできませんが、解析・要約・改善提案を大幅に効率化できます。

コネクターとして「GitHub」を連携させた、VS Code/PlatformIO を併用した開発環境構築では、どんなことが可能になりますか

(補足) 以降のGPT-5の回答に含まれるコード等は正確性を保証するものではない。

GPT-5 の回答

了解です!
ChatGPTの「GitHubコネクター」+ VS Code + PlatformIO の組み合わせでできることを、実務フロー別にぎゅっとまとめます。コネクターを有効にすると、ChatGPTがGitHub上のリポジトリ内容を直接読み取って解析・提案できるようになり、VS Code/PlatformIOがローカルの編集・ビルド・書き込みを担う形になります。

できること(具体例)

1) リポジトリ横断の“読解・調査”をAIに丸投げ

  • コード読解src/*.cpp, include/*.h, platformio.ini, .github/workflows/*.yml などをChatGPTが直接参照し、設計意図・依存関係・ボトルネックを解説。
  • 差分レビュー:特定のコミット/PRの差分を読み取り、バグの可能性・安全で最小の修正案・副作用箇所を指摘。
  • 履歴の要約:「先週以降の変更点を要約」「このPRの論点を3点で」など、レビュー時間を短縮。
  • Issueナビ:関連Issue/PRを横断して「再現手順の確定」「重複Issue統合案」を整理。

⚠️ コネクターは読み取り中心です。実際の commit/push/merge はVS CodeやCLIで行います。

2) PlatformIOの設定最適化とマルチ環境化

  • platformio.ini の最適化提案
    • ボード別(例:[env:esp32dev], [env:esp32c6])やビルドタイプ別(debug / release)のマトリクス構成を生成。
    • lib_deps の自動整理、バージョンピン止めbuild_flags の過不足チェック、monitor_speed の統一など。
  • 依存ライブラリの棚卸し:コードから必要ライブラリを推定し、lib_deps機械的に埋める提案
  • 前後処理スクリプトextra_scripts(pre/post、ビルド時の自動バージョン埋め込み、生成物のリネーム/zip化)を作成。

例:最小ノイズの複数環境テンプレ

[platformio]
default_envs = esp32c6_debug

[env]
platform = espressif32@6.12.0
framework = arduino
monitor_speed = 115200
lib_deps =
  bblanchon/ArduinoJson@^7
  olikraus/U8g2@^2.35.9
 (以下、省略)

3) VS Code で“編集〜検証〜反映”の反復を最短化

  • 拡張の役割分担
    • PlatformIO IDE:ビルド/書き込み/シリアルモニタ
    • GitHub Pull Requests and Issues:PR/Issueの閲覧・チェックアウト
    • GitLens:差分・責任範囲(blame)・履歴可視化
  • AIに“最小修正パッチ”を作らせる
    ChatGPTにUnified Diff形式のパッチを生成させ、VS Codeで適用 → ビルド → 動作確認 → commit/push。
  • ビルドログの自動診断
    エラー/警告ログを貼ると、該当シンボル/定義元/解決策まで逆引き。PlatformIOのキャッシュ破損やボード定義ミスマッチも切り分け。

4) テスト&CI/CD(GitHub Actions)の雛形を即時用意

  • ユニットテストtest/ 配下の簡易テスト(ロジック部分のみ)をAIが生成。PlatformIOのpio testで回す。
  • CIの自動生成:プルリク開閉をトリガーに、ビルド検証&成果物のアーティファクト化
    ChatGPTがワークフローYAMLをリポジトリ構成に合わせて出力。

例:PlatformIO CI(macOS/Ubuntuマトリクス)

name: CI
on:
  pull_request:
  push:
    branches: [ main ]
jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
 (以下、省略)

5) ドキュメント自動化(README/変更履歴/リリースノート)

  • README下書き:ボード・配線・lib_deps・書き込み手順・トラブルシュートをリポジトリに沿って自動記述
  • CHANGELOG生成conventional commits からの差分ベースのリリースノートを自動作成。
  • Issue/PRテンプレ:再現手順・期待結果・ログ添付欄を含むテンプレートの生成・改善

6) ハードウェア依存の落とし穴を先回りで回避

  • シリアル依存の起動問題while(!Serial) 残置など)をコード全体から検出し、ヘッドレス運用OKの初期化に修正提案。
  • SPIFFS/Partition設定の不一致RAM/フラッシュ不足時のサイズ削減施策(-Os, -flto, 使用していないログ除去、画像圧縮、PROGMEM化)を自動レコメンド。
  • ライブラリ競合(複数定義・古いAPI)検出と、安全な置換案(関数単位の差し替え)を提案。

ワークフロー例(実運用)

  1. GitHubコネクターでPRを指定:「PR #123 をレビューし、esp32c6_releaseでビルドが通るか確認観点を列挙して
  2. AIが観点→パッチ案:最小修正のUnified Diffを出力
  3. VS Codeで適用→PlatformIOでビルド/書き込み
  4. 失敗ログをAIへ:依存/フラグ/定義のズレを切り分け、修正案を再提示
  5. GitHub ActionsでPR検証:OS×環境のマトリクスで自動ビルド
  6. リリース時:AIにリリースノートを生成させ、ArtifactsのBINと紐付け

限界と注意点

  • コネクターは“参照専用”:push/merge は手動(VS CodeまたはCLI)で。
  • プライベートRepo権限:必要スコープを付与。公開範囲に注意。
  • シークレット/トークンの露出防止secrets.GITHUB_TOKEN のみで十分か、AIの提案を受けつつ最終確認は人間で。

すぐ使えるスターター(最小セット)

.gitignore(PlatformIO向け)

.pio/
.vscode/.browse.VC.db*
.vscode/c_cpp_properties.json
.DS_Store
*.bin
*.elf
*.map

tasks.json(任意:VS Codeからワンクリック実行)

{
  "version": "2.0.0",
  "tasks": [
    { "label": "PIO Build", "type": "shell", "command": "pio run" },
    { "label": "PIO Upload", "type": "shell", "command": "pio run -t upload" },
    { "label": "PIO Monitor", "type": "shell", "command": "pio device monitor" }
  ]
}

「どのリポジトリ(またはPR/ブランチ)から始めますか?」のPRとは何ですか。

GPT-5 の回答

PRは Pull Request(プルリクエスト) の略です。
あるブランチで行った変更を、別のブランチ(たとえば main)へ「取り込んで(pullして)ください」と提案する手続きのことを指します。(GitHub では会話・レビュー・自動ビルドをまとめた“変更提案票”のような位置づけです)

何ができる?

  • 差分の可視化:どのファイルをどう変えたかを一覧で確認
  • レビューと議論:コメント、提案、再修正(追いコミット)
  • 自動チェック:CI(例:PlatformIOのビルドやテスト)を走らせて合否を表示
  • 承認→マージ:レビュアーの承認後に main へ取り込み(Merge/Squash/Rebase 方式を選択)

PRが関わる用語の関係

  • ブランチ:作業用の分岐(例:feature/dcx-jst-fix
  • コミット:変更のスナップショット
  • PR:そのブランチの変更をベースブランチ(例:main)へ取り込む“申請”
  • Issue:課題・要望のチケット(PR本文で「Fixes #123」と書くとマージ時にIssueを自動クローズ)

典型フロー(GitHub)

  1. 作業用ブランチを切る → 変更 → コミット
  2. GitHubへpush
  3. GitHubで PRを作成(base=main, compare=feature/...
  4. レビュー&CI(必要なら修正をpush)
  5. 承認 → Merge → PRはClose

VS Code / PlatformIO / GitHubコネクター文脈でのPR

  • VS Code:差分確認・コメント・PRチェックアウトが楽(GitHub拡張)
  • PlatformIO:PRをトリガーにCIでビルド/テストを自動実行
  • ChatGPT GitHubコネクター:PRの差分・議論・CI結果を読み、要約/改善提案が可能(ただしマージ操作はあなたが実行)

先ほどの「どのリポジトリ(またはPR/ブランチ)から始めますか?」は、
具体的に どのPR(例:#42)やブランチ を解析・レビュー対象にしますか?」という意味です。

「自動チェック:CI(例:PlatformIOのビルドやテスト)を走らせて合否を表示」について説明してください。

GPT-5 の回答

了解です。「自動チェック:CI(例:PlatformIO のビルドやテスト)」は、GitHub で PR/コミットが作られたときに、自動でビルドやテストを実行して合否(✔︎/✖︎)をPR画面に表示する仕組みです。埋め込んだエラーを早期に検出でき、失敗しているPRのマージをブロックする運用ができます。

ざっくり流れ

  1. トリガーpushpull_request(PR作成/更新)
  2. 実行:GitHub Actions が仮想マシンを起動 → PlatformIO を入れて pio run(ビルド)や pio test(テスト)を実行
  3. 結果表示:PRの Checks タブに pass/fail が表示。ログもその場で確認可能
  4. ゲートmainRequired status checks を設定すると、赤のPRはマージ不可にできる

何を自動チェックできる?

  • ビルド検証pio run -e <env>(複数環境のマトリクス実行)
  • ユニットテストpio testtest/ 配下、Unity ベース)
  • 静的解析(任意)pio check(cppcheck/clang-tidy など)
  • 生成物の配布(任意):ビルドした .bin をArtifacts としてPRからダウンロード
  • サイズ監視(任意).map からフラッシュ/RAMの増減をチェック

platformio.ini の一例(最小)

[platformio]
default_envs = esp32c6_debug

[env]
platform = espressif32@6.12.0
framework = arduino
monitor_speed = 115200
lib_deps =
  bblanchon/ArduinoJson@^7
 (以下、省略)

Arduino IDEからvscodeに環境を変えることにより、vscodeとGitHubとの連携、GPT-5とGitHubとの連携が図れることは分かった。デバックやテストについては経験がないので今後試行予定。

GitHub コネクターについては、別途、下記の記事で追加調査を行なっている。

次に、Arduino IDEで作成したスケッチを、vscode + PlatformIO 拡張の環境に移し替える作業について紹介する(拡張機能「PlatformIO」は導入済)。

また、vscodeの拡張機能「ChatGPT – Work with Code on macOS」を使うことによって、vscodeとGPT-5との連携が図れることが分かったので、それについても紹介する。

vscode + PlatformIOの環境へのスケッチ移行

移行させるスケッチは下記の記事で紹介した装置((ESPr® Developer C6にESPr® Developer用GPSシールドを搭載した構成)に使用したものである。

当初、GPT-5に、Arduino IDEdeで作成したスケッチと、ボード情報を渡してPlatformIO用のコードの作成を依頼したが、ボードが未定義、Appleシリコン(M1,M2)用のライブラリがないなどの利用により、コンパイルエラーを解消できなかった。

そこで、Perplexity Proに同様の情報を渡して依頼したところ、スケッチの内容を取り込んだファイルと、ボード情報等を記載したPlatformio.iniファイルについて3〜4回の修正を行なっただけで、コンパイルエラーは解消された。

添付ファイルはESP32C6用のスケッチと、Arduino IDEのボード等の設定です。これらを基に、PlatformIO用のスケッチと、Platformio.iniのファイルを作成できますか。

(補足) 下記の回答に含まれるコードは最終のものではなく、動作を保証するものではない。

Perlexity Pro の回答

はい、可能です。添付されたArduino IDE用スケッチ(QZSS災危通報受信・表示デモ)や設定情報に基づいて、PlatformIO用に変換したスケッチファイルと、適切なplatformio.iniファイルを以下に示します。

1. PlatformIO用 main.cpp

Arduino IDE用スケッチはそのままsrc/main.cppに使えますが、PlatformIO向けに細部を調整したサンプルです。通常は、ほぼ同じ内容で動作します。

cpp#include <Arduino.h> ←これを追加
#include <SparkFun_u-blox_GNSS_Arduino_Library.h>
#include <QZQSM.h>
#include "QZSSDCX.h"
#include <WiFi.h>
#include <WebServer.h>
#include <Stream.h>
#include <string.h>
#include <stdint.h>

// ...(ここに添付スケッチのコードを全て貼り付けてください)...
  • ソース全体はsrc/main.cppに、そのまま貼り付けてOKです。
  • 「#include “QZSSDCX.h”」など外部ライブラリ/ヘッダは、libディレクトリなどに配置してください(必要に応じて)。

2. PlatformIO用 platformio.ini

設定項目(ESP32C6 Dev Module/ボーレート等)や推奨パラメータを含めたplatformio.ini例を示します。

text[env:esp32c6]
platform = espressif32
board = esp32-c6-devkitc-1
framework = arduino

monitor_speed = 115200
upload_speed = 115200

lib_deps =
espressif/arduino-esp32
sparkfun/SparkFun u-blox GNSS v2 Arduino Library
# QZQSMとQZSSDCXの自作ライブラリはlib/ディレクトリに配置するか、適切な場所から指定

upload_port = /dev/cu.usbmodem2101

ポイント

  • boardはESP32C6開発キット用を指定(例:esp32-c6-devkitc-1)。
  • monitor_speed, upload_speedは115200(Arduino IDE設定準拠)。
  • ライブラリはPlatformIO Registryでの正式名称またはlib/配下に配置。
  • 自作ヘッダ(QZQSM.h、QZSSDCX.h)はlib配下に置くか、lib_extra_dirs指定も活用。
  • マクロやデバッグフラグはbuild_flagsで設定可能。
  • /dev/cu.usbmodem2101はMacの例、環境に合わせて修正。

3. ディレクトリ構成例

textプロジェクトルート/
├── platformio.ini
└── src/
└── main.cpp
└── lib/
├── QZQSM/
│ └── QZQSM.h, QZQSM.cpp
└── QZSSDCX/
└── QZSSDCX.h, QZSSDCX.cpp

vscode + PlatformIOの環境へのスケッチの以降は完了した。

GPT-5とPerplexity Proとはもともと情報源が違うから回答が結構違うと考えていたが、エラー対策を求められた場合、Web検索において探しているものが違うのではないかと思う。GPT-5は、エラーの要因をできるだけ多く検索して、エラーを解決できる可能性がある多数の対策をユーザに提示するのに対し、Perplexity Proはエラーを解決できた事例を探しているのではないかと思う。
Perplexity Proの回答には、「○○というエラーが出る場合、特にM1/M2(Apple Silicon)Mac環境やESP32-C6で発生しやすい状況です」とか、「この設定でMac ARM64上でESP32C6/Arduinoのビルドできた実績報告があります」とかの記載があり、同様のエラー報告の事例があることを示唆する記載が含まれている。
GPT-5は考える力が向上した分、より多くの可能性を提示できているかもしれないが、情報源(探している情報)が変わらないので、ライブラリの相性のような、考えて分かるような問題でない場合、有効な回答を提示できる可能性は低いのではないかと思う。

下記の質問により、vscodeの拡張機能「ChatGPT – Work with Code on macOS」により、vscodeとGPT-5との連携が図れることが分かった。

vscodeで、GPT-5を使う方法を教えてください

GPT-5 の回答

以下は、VSCodeで「GPT-5」を使う代表的な方法(公式拡張とAPIキー型拡張)です。どちらも日本語OKです。

1) 公式:OpenAI「Work with Apps: VS Code」拡張を使う(いちばん簡単)

  1. 拡張を入れる
    • OpenAIのヘルプから「openai-chatgpt.vsix」をダウンロード → VSCodeで⌘⇧P→「Extensions: Install from VSIX…」→選択してインストール。 (OpenAI Help Center)
  2. サインイン & 有効化
    • 拡張の指示に従ってOpenAIアカウントでログインすれば、VSCode内でChatGPTが使えるようになります(ファイル連携が可能)。 (OpenAI Help Center)
  3. モデル選択(GPT-5を選ぶ)
    • モデル一覧にGPT-5系(例:gpt-5 / gpt-5-chat / gpt-5-thinking)が表示されるので選択します。OpenAIのモデルページにGPT-5系の案内があります。 (OpenAI Platform)
  4. 使い方の例
    • エクスプローラでファイルを開き、拡張のチャットペインで「このファイルのバグを見つけて修正案を」と依頼
    • 選択範囲を右クリック→「Ask/Explain/Edit」系のコマンドで局所修正
    • リポジトリ全体の方針相談(設計レビュー、テスト生成など)

注:GPT-5は最新のOpenAIモデルとして案内されており、コーディングやリポジトリ規模のデバッグが大幅に強化された旨の公式解説があります。 (OpenAI)

2) APIキー型の拡張を使う(細かくカスタムしたい人向け)

OpenAIのAPIキーを各拡張に設定し、モデル名にgpt-5系を指定して使います。

A. Continue(オープンソースの定番)

  1. インストール:VSCodeの拡張で「Continue」を検索→インストール。 (docs.continue.dev)
  2. 設定:.continue/config.jsonにOpenAIのAPIキーとモデルを設定(例:"model": "gpt-5")。
  3. チャット/インライン編集/エージェント的ワークフローをIDE内で利用可能。 (docs.continue.dev)

B. CodeGPT / GenieAI など

  1. 拡張を入れる:Marketplaceで「CodeGPT」または「Genie AI」をインストール。 (Visual Studio Marketplace, blog.openreplay.com)
  2. APIキーを設定(CodeGPT: Set API KEY等)→プロバイダでOpenAIを選び、モデルにgpt-5系を指定。 (blog.openreplay.com, docs.codegpt.co)

OpenAIのAPIキー取得

  • OpenAIダッシュボードで秘密鍵を作成し、拡張の設定に貼り付けます。 (docs.codegpt.co)

3) モデル指定のコツ(VSCode拡張・API共通)

  • 推奨モデル:gpt-5(汎用)/ 対話寄り:gpt-5-chat / 推論重視:gpt-5-thinking
  • モデル一覧・説明はOpenAI公式ドキュメントを参照。 (OpenAI Platform)

4) よくあるつまずき

  • 組織や請求の権限不足:企業アカウントでAPIが制限されているとモデルが出ません。モデルの有効化状況を確認。 (OpenAI Platform)
  • モデル名のタイプミスgpt5など誤記で失敗しがち。公式表記どおりに。 (OpenAI Platform)
  • トークン上限/コスト:大きなリポジトリを丸ごと投げると高コスト。必要範囲に絞る、要約して渡すなどで節約。モデルのコンテキスト上限・位置づけは公式を参照。 (OpenAI Platform)

5) どれを選ぶべき?

Continueは高機能な拡張機能だが、APIを使いたくなかった。また、チャットによるGPT-5との連携ができればよかったので、「1) 公式:OpenAI「Work with Apps: VS Code」拡張を使う(いちばん簡単)」を選択することにした。

また、「openai-chatgpt.vsix」をダウンロードしインストールすると説明されているが、これは、vscodeで、拡張機能「OpenAI「Work with Apps: VS Code」を導入するのと同じ処理を行うものであり、拡張機能「OpenAI「Work with Apps: VS Code」を導入していれば、「openai-chatgpt.vsix」のインストールは不要とのことだった。

(注)「Work with Apps: VS Code」の正式名称は「ChatGPT – Work with Code on macOS」である。

その拡張機能を導入すると、下図のように、vscodeでGPT-5のフローティングウィンドウを表示させることができる。



上図のように表示させるためには、まず、画面を分割し、スケッチのファイルと、Platformio.iniのファイルを表示させる。

次に、option+space(Macの場合)を押して、GPT-5のフローティングウィンドウを表示させる。

次に、下図のように、三角形のアイコンをクリックしてアプリの一覧を表示させる。

最後に、「Code」をクリックすると、2つのファイルがフローティングウィンドウ内に表示される。

指示例(スケッチのコードについての説明を依頼)


フローティングウィンドウに回答が表示されると、フローティングウィンドウが縦に長くなり、幅も下図のように拡げることができる。

指示例(表示する文字列の書き換えについて問い合わせ)

上図のGPT-5のフローティングウィンドウを拡大したものが下図であり、スケッチファイルがコンテキストとして認識されている。
この例では、「DCX メッセージ数」を「DCX レポート数」に書き換えられるかと問い合わせているが、この問い合わせに意味はなく、GPT-5がスケッチを修正する例を説明するためのものである。
下図に「適用する」というボタンが表示されているが、そのボタンをクリックすることにより、赤くハイライトされた部分が削除され、緑にハイライトされた内容に書き換えられる。

vscodeとGPT-5を連携させる準備は完了したので、当初の目的は達成した。現在、Plusプランを利用しているが、別途、API利用料金を発生させずに、この環境でGPT-5と対話できるならこの環境を使っていきたい。
今後、この環境で特筆すべき特徴が見つかったら別記事で報告する。

最後に、「ChatGPT – Work with Code on macOS」と、GPT-5のフローティングウィンドウについて調べたので紹介する。

ChatGPT – Work with Code on macOS」はChatGPTのMacアプリがインストールされているMacで動作するものですか

GPT-5 の回答

はい、そのとおりです ✅

「ChatGPT – Work with Code on macOS」 は、

ChatGPTの Macアプリ がインストールされている環境で動作する拡張機能(インテグレーション)です。

🔹 仕組み

  • 前提:ChatGPTのMacアプリが入っていること。
  • 役割MacアプリとVS Codeをつなぎ、
    • VS Code内で開いているファイルをChatGPTに渡す
    • ChatGPTにコード修正を依頼し、修正案をそのままファイルに反映する といった連携を可能にします。

🔹 ポイント

  • 単体で動くわけではなく、Macアプリと連携して初めて機能する
  • WindowsやLinuxのVS Codeでは、この「macOS専用拡張」は使えません。
  • 似たようなことは「Continue」や「openai-chatgpt.vsix」拡張でもできますが、 「ChatGPT – Work with Code on macOS」は Macアプリに最適化された公式機能 です。

VS Codeでコード修正をGPT-5が直接行う場合とはどのような場合かを知りたいです。具体的には、どのような場合に、「適用する」のボタンが表示されるのかということです

GPT-5 の回答

なるほど!いい質問です 👍

「VS Codeでコード修正をGPT-5が直接行う」ケースは、ChatGPT(Macアプリ連携 or VS Code拡張)から提案された修正内容を、そのままファイルに反映できる場面 です。

🔹 「適用する」ボタンが出る場合

ChatGPTが返答の中で 「コードの修正案」をファイル単位で返したとき に表示されます。

例えば:

  1. 具体的な修正依頼をしたとき
    • 例:
      • 「この関数のバグを直してください」
      • 「このコードを非同期処理に書き換えてください」
      • 「JSTで時刻表示するように修正してください」 → ChatGPTが、あなたのファイルに対応した パッチ形式(diff形式)や修正版コードブロック を返してきます。
  2. 対象ファイルがコンテキストに含まれているとき
    • VS Codeで開いているファイルを「コンテキストに追加」した状態で質問する
    • するとChatGPTは「元コードのどこをどう直すか」を把握できる
    • その結果「この部分をこう修正しました」という差分を提示 → 「適用する」ボタンが出る
  3. 差分が明確に生成されたとき
    • 単なるコード例の提示ではなく、 「既存ファイルに対して置き換え可能な修正」が生成されたとき
    • VS Code側が「これは安全にファイルへ適用できる」と判断して「適用する」ボタンが有効化される

🔹 「適用する」ボタンが出ない場合

逆に以下のようなケースでは出ません:

  • ChatGPTが「説明だけ」してコードを返さなかった場合
  • コード例は出したが「どのファイルに反映すべきか」特定できない場合
  • 開いているファイルをコンテキストに含めていない場合

🔹 実際の流れ(例)

  1. VS Codeで main.cpp を開く
  2. サイドバーのChatGPTパネルで「この関数のエラー処理を追加してください」と依頼
  3. ChatGPTが修正版コードを提案し、差分を生成
  4. その下に 「適用する」 ボタンが出る
  5. クリックすると、main.cpp が直接修正される

💡まとめると:

「適用する」ボタンは ChatGPTが既存ファイルの修正案(差分)を返してきたとき に表示され、クリックするとその修正がファイルに反映されます。

👉 もしよければ、実際に「適用する」が出やすい 質問テンプレ(修正依頼のしかた) を整理して差し上げましょうか?

ChatGPTのMacアプリで、右上に「コンパニオンチャットで開く」というアイコンがありますが、これはどういう意味ですか

GPT-5 の回答

Mac版ChatGPTアプリの右上にある 「コンパニオンチャットで開く」 アイコンは、今見ているチャットを 別の独立した小ウィンドウ(コンパニオンチャット) として開くための機能です。

主な意味と使い方

  • 独立ウィンドウ化 現在のチャットを「フローティング」ウィンドウに切り離して開けます。これにより、他のアプリやブラウザを操作しながらでも、常に画面にChatGPTを表示できます。
  • 作業の並行性 例えば、VS Codeやブラウザで作業しつつ、横に小さなChatGPTのコンパニオンウィンドウを置いておけば、都度アプリを切り替える必要がありません。
  • 複数チャットの併用 通常のメインウィンドウで別のチャットを続けながら、特定のやりとりだけコンパニオンチャットに残しておくことができます。

イメージ

  • SlackやDiscordの「ポップアウトウィンドウ」に近いイメージで、常に画面の隅に置いておく「サブ会話専用ウィンドウ」です。
  • Macのデスクトップ上で好きな場所に配置でき、サイズも調整可能です。

ご希望なら、コンパニオンチャットで開いたウィンドウの具体的な使い分け例(例:コードレビュー用とリサーチ用を分ける使い方) も整理してご説明できますが、知りたいですか?

コードレビュー用とリサーチ用を分ける使い方を教えてください

GPT-5 の回答

いいですね 👍

コンパニオンチャットを 「コードレビュー用」と「リサーチ用」 に分けると、ChatGPTを「作業パートナー」と「調査員」に同時起用できるようになります。

1. コードレビュー用コンパニオンチャット

想定シーン

  • VS CodeやXcodeでコードを書きながら、横にChatGPTを置いてレビューを依頼する。
  • 修正点を逐次反映 → すぐに再レビュー。

具体的な使い方

  1. コードの一部をコピーして「コンパニオンチャット」に貼り付け → 「この関数のリファクタリングポイントを教えて」「バグの可能性がある行を見つけて」など。
  2. ChatGPTからの指摘を見ながら、エディタ側で修正。
  3. 再度コード断片を貼り、差分確認を依頼。

📌 ポイント

  • 「コード専用」にすると履歴がクリーンに保てるので、長いチャットに埋もれずにやり取りできる。
  • 修正依頼テンプレを決めておくと効率的(例:「コード修正 {エラー内容}」)。

2. リサーチ用コンパニオンチャット

想定シーン

  • 開発中に「関連ライブラリの仕様」「最新のAPIの挙動」などを調べる必要がある。
  • コードレビューとは切り離して調査ログを残したい。

具体的な使い方

  1. 「このライブラリの最新バージョンで追加された関数を調べて」 「このエラーメッセージの一般的な原因は?」などを質問。
  2. 調査結果を受け取り、必要に応じてメインチャットやコードレビュー用に転送。
  3. 複数のリサーチを並列して進められる。

📌 ポイント

  • コードレビューの流れを邪魔せずに、調査専用ログを残せる。
  • 検索系の依頼(web検索・仕様確認など)をまとめると後で見直しやすい。

3. 運用のコツ

  • ウィンドウ名をリネーム Macアプリではタイトルを変えられない場合もあるので、冒頭に「【レビュー用】」「【リサーチ用】」とメッセージを入れて区別。
  • 並列作業 左にコードレビュー、右にリサーチを並べておけば、コードを書きながら調査を並行できる。
  • 履歴管理 コードレビューは日付ごとに新しいチャットを立て、リサーチは継続して使うと整理しやすい。

💡イメージすると、

  • レビュー用コンパニオン → 「相棒エンジニア」
  • リサーチ用コンパニオン → 「調査員AI」

として同時起動できるわけです。

ご希望なら、「レビュー用チャットに投げるテンプレ」と「リサーチ用チャットに投げるテンプレ」を簡単なフォーマットで作って差し上げましょうか?

メインのChatGPTウィンドウとは、ChatGPTアプリを立ち上げた際に表示されるウィンドウですか。その状態で、「コンパニオンチャットで開く」というアイコンをクリックすると、別のウィンドウが表示されるということですか

メインのChatGPTウィンドウと、「コンパニオンチャット」の小さな別ウィンドウが表示された状態

「コンパニオンチャット」の小さな別ウィンドウには、「メインウィンドウで開く」というアイコンが表示される

GPT-5 の回答

はい、その理解でバッチリです 👍

流れを整理すると:

  1. メインのChatGPTウィンドウ → MacでChatGPTアプリを起動したときに最初に出てくる「通常のチャット画面」です。 (ここで新しいチャットを始めたり、履歴を見たりできます)
  2. 「コンパニオンチャットで開く」アイコンをクリック → そのチャットを切り離して、新しい独立ウィンドウ が開きます。
  3. 結果
    • 元の「メインウィンドウ」はそのまま残る
    • 追加で「コンパニオンチャット」の小さな別ウィンドウが表示される

例えると:

  • メインウィンドウ → 「本社のオフィス」
  • コンパニオンチャット → 「外出先に連れて行けるポップアップオフィス」

なので、本社を閉じなくても、必要に応じて支店(コンパニオン)をいくつも開ける、という感じです。

👉 実際にやってみると、エディタやブラウザの横に小さく置いて「サブAIウィンドウ」として使えるので、かなり便利ですよ。

目次