はじめに
GitHub Copilot CLI を Ubuntu と Mac の両方で使ってます。
AIへの指示書(copilot-instructions.md)を片方の PC でせっせと育てていくと、もう片方にも反映したくなるんですよね。手動コピーなんて絶対忘れるので、Google Drive + シンボリックリンク で自動同期する構成にしました!
この記事ではその手順と、同期すべきファイル/すべきでないファイルの判断基準をまとめます。
全体図
利点
便利!
- どの PC で
copilotを起動しても 同じ指示書・同じ設定 で動く - 片方で指示書を改善したら、もう片方にも勝手に反映される
動作確認環境
| 項目 | Ubuntu 側 | Mac 側 |
|---|---|---|
| OS | Ubuntu 24.04 | macOS Sequoia 15 |
| Copilot CLI | v1.0.12 | v1.0.12 |
| Google Drive | GNOME Online Accounts(gvfs マウント) | Google Drive デスクトップアプリ |
~/.copilot/ の中身
まず Copilot CLI が何をどこに保存しているか把握しておきます。
$ ls -lah ~/.copilot/
合計 56K
-rw------- 1 yourname yourname 8.1K command-history-state.json ← コマンド履歴
-rw------- 1 yourname yourname 1.8K config.json ← CLI設定(モデル選択等)
-rw-rw-r-- 1 yourname yourname 19K copilot-instructions.md ← ★ AIへの永続指示書
drwxrwxr-x 2 yourname yourname 4.0K logs/ ← 実行ログ
-rw-rw-r-- 1 yourname yourname 247 mcp-config.json ← MCP(外部ツール接続)設定
drwxrwxr-x 5 yourname yourname 4.0K pkg/ ← CLI本体バイナリ(944MB)
drwx------ 25 yourname yourname 4.0K session-state/ ← 全セッションの記録
結構いろいろ入ってますね。この中で どれを同期して、どれを同期しないか が大事です。
同期対象の判断基準
| ファイル | 同期 | 理由 |
|---|---|---|
copilot-instructions.md |
✅ する | AIへの永続指示書。どのPCでも同じ指示を使いたい! |
config.json |
✅ する | モデル選択・信頼フォルダ等のCLI設定。PC間で統一したい |
mcp-config.json |
❌ しない | MCP サーバーの実行パスがPC固有(/home/yourname/... vs /Users/yourname/...) |
session-state/ |
❌ しない | セッションデータは各PCのローカル作業に紐づく |
pkg/ |
❌ しない | CLI本体バイナリ。OS別なので同期不可 |
command-history-state.json |
❌ しない | コマンド履歴。PCごとに異なって問題ない |
結論: 同期するのは2ファイルだけ!
- ☁️ 同期:
copilot-instructions.md/config.json(AIへの指示書と設定) - 💻 同期しない: それ以外(各PCの物理パスに依存するか、ローカル作業データ)
手順
1. Google Drive に同期用フォルダを作成
Google Drive 上に copilot_cli_config_sync(名前は任意)というフォルダを作っておきます。
2. Ubuntu 側: 実体の移動とリンク作成
設定ファイルの実体を Google Drive 同期フォルダへ移動して、元の場所にシンボリックリンクを貼ります。
# Ubuntu での Google Drive パス(GNOME Online Accounts 経由の gvfs マウント)
GDRIVE_SYNC="/run/user/1000/gvfs/google-drive:host=<your-domain>,user=<your-user>/<folder-id>/copilot_cli_config_sync"
# 実体を Google Drive の同期フォルダへ移動
mv ~/.copilot/copilot-instructions.md "$GDRIVE_SYNC/"
mv ~/.copilot/config.json "$GDRIVE_SYNC/"
# 元の場所にシンボリックリンクを作成(-sf で強制上書き)
ln -sf "$GDRIVE_SYNC/copilot-instructions.md" ~/.copilot/copilot-instructions.md
ln -sf "$GDRIVE_SYNC/config.json" ~/.copilot/config.json
# 確認(矢印 -> の先が Drive を向いていれば成功)
ls -l ~/.copilot/copilot-instructions.md ~/.copilot/config.json
Ubuntu の gvfs マウントパスはめちゃくちゃ長いです。ファイルマネージャで Google Drive フォルダを開いてターミナルにドラッグ&ドロップすると楽に取得できます!
3. Mac 側: リンクの作成
Mac 側の初期ファイルを削除して、Google Drive 上の実体へリンクを貼ります。
# Mac 側の初期設定ファイルを削除(念のためバックアップ取ってからやると安心)
cp ~/.copilot/copilot-instructions.md ~/.copilot/copilot-instructions.md.bak
cp ~/.copilot/config.json ~/.copilot/config.json.bak
rm ~/.copilot/copilot-instructions.md
rm ~/.copilot/config.json
# Google Drive 上の実体へリンク
MAC_GDRIVE="$HOME/Library/CloudStorage/GoogleDrive-<your-email>/マイドライブ/<path-to>/copilot_cli_config_sync"
ln -s "$MAC_GDRIVE/copilot-instructions.md" ~/.copilot/copilot-instructions.md
ln -s "$MAC_GDRIVE/config.json" ~/.copilot/config.json
# 疎通確認(Ubuntu で書いた指示書の内容が見えるか)
cat ~/.copilot/copilot-instructions.md
4. 確認
設定後の ls -l でリンク先が Google Drive を向いていれば OK です!
$ ls -l ~/.copilot/copilot-instructions.md ~/.copilot/config.json
lrwxrwxrwx 1 yourname yourname 209 copilot-instructions.md -> '/run/user/1000/gvfs/google-drive:.../copilot_cli_config_sync/copilot-instructions.md'
lrwxrwxrwx 1 yourname yourname 197 config.json -> '/run/user/1000/gvfs/google-drive:.../copilot_cli_config_sync/config.json'
Copilot CLI を起動して、指示書の内容がちゃんと反映されていることを確認しましょう。
copilot-instructions.md に何を書くか
同期する一番の目玉がこのファイルです。ここに書いた内容は 全セッションで自動的にAIに読み込まれます。
僕の場合、以下のようなことを書いてます(といっても自分で書いたわけではなく、キリの良いところで「ここまでを instruction にまとめて」と Copilot に頼んでるだけですw):
-
コマンド実行ポリシー:
pip installは確認不要、rm -rfは確認必須、など - モデルの使い分けルール: sonnet は初稿・探索向き、opus は高品質な最終成果物向き
- HTMLレポートの設計規約: カラーパレット、SVG の座標計算ルール、スライドモード実装パターン
- MCP サーバーの使い方メモ: 特許検索 API の使い分け
- 過去の失敗からの教訓: 「SVG でラベルが rect の下に隠れる問題 → ラベルは最後に描画」のような具体的な注意事項
# Copilot Custom Instructions
## コマンド実行ポリシー
pip, source, mkdir, touch, cp, mv, cat, ls, cd, uv, npm install
などの環境構築やファイル操作コマンドは、確認なしで実行すること。
ただし sudo や rm -rf などの破壊的なコマンドやシステム変更時は必ず確認を取ること。
## モデルの使い分け
- **sonnet(速い・安い)**: 構成のたたき台作成、探索クエリ、コード生成の初稿
- **opus(深い・高品質)**: 複雑な HTML レポートの一括生成、高精度が求められるタスク
...
要は「AIへの永続メモ」ですね。使えば使うほど育っていくので、これを PC 間で共有できるのは本当に便利です!
指示書はセッション開始時にまるごと読み込まれます。巨大すぎるとコンテキストを圧迫するので、本当に毎回必要な知見だけに絞りましょう。プロジェクト固有の知識は .github/copilot/skills/*.md に分離するのがおすすめです。
まとめ
| やること | コマンド |
|---|---|
| 実体を Drive に移動 | mv ~/.copilot/copilot-instructions.md "$GDRIVE_SYNC/" |
| シンボリックリンク作成 | ln -sf "$GDRIVE_SYNC/copilot-instructions.md" ~/.copilot/copilot-instructions.md |
| Mac 側もリンク作成 | ln -s "$MAC_GDRIVE/copilot-instructions.md" ~/.copilot/copilot-instructions.md |
同期対象は copilot-instructions.md と config.json の2ファイルだけ です。それ以外はPC固有のパスに依存するか、ローカル作業データなので同期しません。