Copilot CLI (コパイロット CLI) では、構成、セッション履歴、ログ、カスタマイズがコンピューター上の 1 つのディレクトリに格納されます。 既定では、このディレクトリは `~/.copilot` (つまり、 `$HOME/.copilot`) です。
この記事では、このディレクトリの内容とその使用方法について説明します。
ディレクトリの概要
`~/.copilot` ディレクトリには、次の最上位項目が含まれています。
| Path | タイプ | 説明 |
|---|---|---|
settings.json | File | 個人用の構成設定 |
copilot-instructions.md | File | 個人のカスタム命令 (すべてのセッションに適用) |
instructions/ | ディレクトリ | その他の個人用 *.instructions.md ファイル |
mcp-config.json | File | ユーザー レベルの MCP サーバー定義 |
lsp-config.json | File | ユーザー レベルの LSP サーバー定義 |
permissions-config.json | File | プロジェクトごとに保存されたツールとディレクトリのアクセス許可 |
agents/ | ディレクトリ | 個人用カスタム エージェント定義 |
skills/ | ディレクトリ | 個人のカスタム スキル定義 |
hooks/ | ディレクトリ | ユーザー レベルのフック スクリプト |
logs/ | ディレクトリ | セッション ログ ファイル |
session-state/ | ディレクトリ | セッション履歴とワークスペース データ |
session-store.db | File | セッション間データ用の SQLite データベース |
installed-plugins/ | ディレクトリ | インストールされているプラグイン ファイル |
plugin-data/ | ディレクトリ | インストールされているプラグインの永続的なデータ |
ide/ | ディレクトリ | IDE 統合状態 |
メモ
これらの項目のすべてがすぐに表示されるわけではありません。 一部は、特定の機能を初めて使用したときにオンデマンドで作成されます。たとえば、 installed-plugins/ は、最初のプラグインをインストールした後にのみ表示されます。
ユーザーが編集可能なファイル
次のファイルは、ユーザーが直接編集するか、CLI コマンドを使用して管理するように設計されています。
settings.json
これは、 Copilot CLI (コパイロット CLI)のプライマリ構成ファイルです。 テキスト エディターで直接編集したり、 /model や /theme などの対話型コマンドを使用してセッション内から特定の値を変更したりできます。 このファイルは、コメント付き JSON (JSONC) をサポートしています。
メモ
構成ファイルの名前が config.json から settings.json に変更されました。 既存の設定は、起動時に ~/.copilot/config.json から自動的に移行されます。
設定の完全な一覧と、リポジトリ レベルの構成との対話方法については、この記事で後述する 構成ファイルの設定 を参照してください。
ヒント
ターミナルで copilot help config を実行してクイック リファレンスを確認します。
copilot-instructions.md
作業しているプロジェクトに関係なく、すべてのセッションに適用される個人のカスタム指示。 このファイルはリポジトリ レベルの copilot-instructions.md と同じように動作しますが、グローバルに適用されます。
詳細については、「GitHub Copilot用のリポジトリカスタム命令の追加」を参照してください。
instructions/
追加の個人用命令ファイルを *.instructions.md ファイルとしてここに格納します。 これらは copilot-instructions.md と共に読み込まれ、すべてのセッションに適用されます。
~/.copilot/instructions/code-style.instructions.mdなど、トピックごとに手順を整理できます。
mcp-config.json
ユーザー レベルで使用できる MCP (モデル コンテキスト プロトコル) サーバーを定義します。 これらのサーバーは、使用しているプロジェクト ディレクトリに関係なく、すべてのセッションで使用できます。 Projectレベルの MCP 構成 (.mcp.json または .github/mcp.json) は、サーバー名の競合時にユーザー レベルの定義よりも優先されます。
詳細については、「GitHub Copilot CLI(コマンドラインインターフェース) 用の MCP サーバーを追加する」を参照してください。
lsp-config.json
ユーザー レベルで使用できる言語サーバー プロトコル (LSP) サーバーを定義します。 これらのサーバーは、エージェントに言語インテリジェンス (診断、完了など) を提供します。
/lspスラッシュ コマンドを使用してこのファイルを管理するか、直接編集します。
詳細については、「LSP サーバーの追加 GitHub Copilot CLI(コマンドラインインターフェース)」を参照してください。
agents/
個人用カスタム エージェント定義を .agent.md ファイルとしてここに格納します。 このディレクトリに配置されたエージェントは、すべてのセッションで使用できます。 Projectレベルのエージェント (.github/agents/) は、同じ名前を共有する場合は、個人エージェントよりも優先されます。
詳細については、「GitHub Copilot CLI(コマンドラインインターフェース) のカスタムエージェントの作成と使用」を参照してください。
skills/
個人のカスタム スキル定義をここに格納します。 各スキルは、 SKILL.md ファイル ( ~/.copilot/skills/my-skill/SKILL.md など) を含むサブディレクトリに存在します。 個人のスキルはすべてのセッションで利用できます。 Projectレベルのスキルは、同じ名前を共有する場合、個人のスキルよりも優先されます。
詳細については、「エージェント スキルの追加 GitHub Copilot CLI(コマンドラインインターフェース)」を参照してください。
hooks/
ユーザー レベルのフック スクリプトをここに格納します。 これらのフックは、すべてのセッションに適用されます。
~/.copilot/config.json キーを使用して、ユーザー構成ファイル (hooks) でフックをインラインで定義することもできます。 リポジトリ レベルのフック ( .github/hooks/) は、ユーザー レベルのフックと共に読み込まれます。
詳細については、「GitHub Copilot CLI(コマンドラインインターフェース) を使用するフック」を参照してください。
ファイルを自動的に管理する
次の項目は CLI によって管理されます。 通常、手動で編集しないでください。
permissions-config.json
保存したツールとディレクトリのアクセス許可の決定をプロジェクトの場所別に格納します。 ツールを承認するか、ディレクトリへのアクセスを許可すると、CLI によって決定がここに記録されるため、同じプロジェクトで再度プロンプトが表示されることはありません。
メモ
プロジェクトのアクセス許可をリセットする場合は、このファイルから関連するエントリを削除できます。 ただし、セッションの実行中にファイルを編集すると、予期しない動作が発生する可能性があります。
session-state/
サブディレクトリ内のセッション ID 別に整理されたセッション履歴データが含まれています。 各セッション ディレクトリには、イベント ログ (events.jsonl) とワークスペース成果物 (プラン、チェックポイント、追跡されたファイル) が格納されます。 このデータにより、セッションの再開 (--resume または --continue) が有効になります。
session-store.db
チェックポイントのインデックス作成や検索などのセッション間データに CLI によって使用される SQLite データベース。 このファイルは自動的に管理され、編集しないでください。
logs/
CLI セッションのログ ファイルが含まれています。 各セッションでは、 process-{timestamp}-{pid}.logという名前のログ ファイルが作成されます。 これらのファイルは、問題のデバッグに役立ちます。
ヒント
現在のセッションのログ ファイルを検索するには、対話型セッションに「 /session 」と入力します。 出力には、ログ ファイルへの完全なパスと、セッション ID、期間、作業ディレクトリなどの他のセッションの詳細が含まれます。
installed-plugins/
インストールしたプラグインのファイルが含まれています。 マーケットプレースからインストールされたプラグインは、 installed-plugins/{marketplace-name}/{plugin-name}/の下に格納されます。 直接インストールされたプラグインは、 installed-plugins/_direct/の下に格納されます。 このディレクトリを直接編集するのではなく、 copilot plugin コマンドを使用してプラグインを管理します。
詳細については、「GitHub Copilot CLI プラグイン リファレンス」を参照してください。
plugin-data/
マーケットプレースとプラグイン名別に整理された、インストールされているプラグインの永続的なデータが含まれています。 このデータはプラグイン自体によって管理されるため、手動で編集することはできません。
ide/
IDE 統合のロック ファイルと状態が含まれます (たとえば、 Copilot CLI (コパイロット CLI) が Visual Studio Code に接続する場合)。 このディレクトリは自動的に管理されます。
構成ディレクトリの場所の変更
既定の ~/.copilot の場所は、次の 2 つの方法でオーバーライドできます。
-
**環境変数**: `COPILOT_HOME` を使用するディレクトリのパスに設定します。Bash export COPILOT_HOME=/path/to/my/copilot-config
export COPILOT_HOME=/path/to/my/copilot-config -
**コマンド ライン オプション**: CLI を起動するときに `--config-dir` を使用します。Bash copilot --config-dir /path/to/my/copilot-config
copilot --config-dir /path/to/my/copilot-config`--config-dir` オプションは`COPILOT_HOME`よりも優先され、既定の`~/.copilot`の場所よりも優先されます。
注意すべき事項
-
`COPILOT_HOME` は、 `~/.copilot` パス全体を置き換えます。 設定する値は、構成ファイルとサブディレクトリに使用するディレクトリへの完全なパスである必要があります。 -
ディレクトリを変更すると、既存の構成、セッション履歴、インストールされているプラグイン、保存されたアクセス許可が新しい場所に見つかりません。
~/.copilotの内容を保存する場合は、新しい場所にコピーまたは移動します。 -
**キャッシュ ディレクトリ** (Marketplace キャッシュ、自動更新パッケージ、およびその他のエフェメラル データに使用) はプラットフォームの規則に従い、`COPILOT_HOME`の影響を受けません。 これは次の場所にあります。- macOS:
~/Library/Caches/copilot**Linux**: `$XDG_CACHE_HOME/copilot` または `~/.cache/copilot`- Windows:
%LOCALAPPDATA%/copilotキャッシュ ディレクトリを個別にオーバーライドするには、
COPILOT_CACHE_HOME設定します。
安全に削除できる内容
| 品目 | 安全に削除できますか? | 影響 |
|---|---|---|
agents/、skills/、hooks/ | お勧めしません | 個人のカスタマイズは失われます。 最初にバックアップします。 |
copilot-instructions.md、instructions/ | お勧めしません | 個人のカスタム命令は失われます。 最初にバックアップします。 |
installed-plugins/ | お勧めしません | 代わりに copilot plugin uninstall を使用して、 settings.json 内のプラグイン メタデータの一貫性を確保します。 |
logs/ | はい | ログ ファイルは、セッションごとに再作成されます。 削除しても機能に影響はありません。 |
lsp-config.json | お勧めしません | ユーザー レベルの LSP サーバー定義が失われます。 最初にバックアップします。 |
mcp-config.json | お勧めしません | ユーザー レベルの MCP サーバー定義が失われます。 最初にバックアップします。 |
permissions-config.json | 慎重に | 保存されているすべてのアクセス許可をリセットします。 CLI によって、ツールとディレクトリの承認が再度求められます。 |
plugin-data/ | はい | プラグインの永続データは、必要に応じて再作成されます。 |
session-state/ | 慎重に | 削除すると、セッション履歴が削除されます。 過去のセッションを再開できなくなります。 |
session-store.db | 慎重に | 削除すると、セッション間のデータが削除されます。 ファイルは自動的に再作成されます。 |
settings.json | 慎重に | すべての構成を既定値にリセットします。 ユーザー設定を再構成し、再認証する必要があります。 |
構成ファイルの設定
設定はユーザーからリポジトリ、そしてローカルへと階層的に適用され、より具体的なスコープがより一般的なスコープを上書きします。 コマンド ライン オプションと環境変数は常に最も優先順位が高くなります。
| Scope | Location | 目的 |
|---|---|---|
| ユーザー | ~/.copilot/settings.json | すべてのリポジトリのグローバルな既定値。 |
`COPILOT_HOME`環境変数を使用して、代替パスを指定します。 |
| リポジトリ | .github/copilot/settings.json | 共有リポジトリの構成 (リポジトリにコミット)。 |
| Local | .github/copilot/settings.local.json | 個人のオーバーライド (これを .gitignoreに追加します)。 |
ユーザー設定 (~/.copilot/settings.json)
これらの設定は、すべてのセッションとリポジトリに適用されます。 このファイルを直接編集することも、スラッシュ コマンドを使用して個々の値を更新することもできます。
| 鍵 | タイプ | Default | 説明 |
|---|---|---|---|
allowedUrls | string[] | [] | URL またはドメインは、プロンプトなしで許可されます。 正確な URL、ドメイン パターン、ワイルドカード サブドメイン ( "*.github.com" など) をサポートします。 |
askUser | boolean | true | エージェントが明確な質問をすることを許可します。 完全に自律的な操作を行うために false に設定します。 |
`--no-ask-user`で設定することもできます。 |
| autoUpdate | boolean | true | CLI の更新プログラムを自動的にダウンロードします。 |
| autoUpdatesChannel |
"stable"
|
"prerelease"
| "stable" | チャネルを更新します。 プレリリース更新プログラムを受け取る "prerelease" に設定します。 |
| banner |
"always"
|
"once"
|
"never"
| "once" | アニメーションバナーの表示頻度。 |
| bashEnv | boolean | false | bash シェル BASH_ENV サポートを有効にします。
--bash-envまたは--no-bash-envで設定することもできます。 |
| beep | boolean | true | 注意が必要な場合は、聞こえるビープ音を鳴らします。 |
| colorMode |
"default"
|
"dim"
|
"high-contrast"
|
"colorblind"
| "default" | カラー コントラスト モード。
/themeスラッシュ コマンドによって管理されます。 |
| compactPaste | boolean | true | 大きな貼り付け (10 行を超える) をコンパクト トークンに折りたたみます。 |
| companyAnnouncements | string[] | [] | 起動時にランダムに表示されるカスタム メッセージ。 CLI が開始されるたびに 1 つのメッセージがランダムに選択されます。 チームのお知らせやリマインダーに便利です。 |
| continueOnAutoMode | boolean | false | レートが制限されている場合は、自動モードに自動的に切り替わります。
trueすると、対象となるレート制限エラーによって自動モードへの自動切り替えがトリガーされ、再試行されます。 グローバル レート制限または BYOK プロバイダーには適用されません。 |
| copyOnSelect | boolean |
true (macOS)、 false (その他) | マウスで選択したテキストを、代替画面モードでシステム クリップボードに自動的にコピーします。 |
| customAgents.defaultLocalOnly | boolean | false | ローカル カスタム エージェントのみを使用します (リモート組織またはエンタープライズ エージェントは使用しません)。 |
| deniedUrls | string[] | [] | 常に拒否される URL またはドメイン。 拒否規則は、許可規則よりも優先されます。 |
| disableAllHooks | boolean | false | すべてのフック (リポジトリ レベルとユーザー レベルの両方) を無効にします。 |
| disabledMcpServers | string[] | [] | 無効にする MCP サーバー名。 一覧表示されたサーバーは構成されていますが、起動されていません。 |
| disabledSkills | string[] | [] | 無効にするスキル名。 一覧表示されたスキルは検出されますが、読み込まれません。 |
| effortLevel | string | "medium" | 拡張思考の推論作業レベル: "low"、 "medium"、 "high"、または "xhigh"。 レベルが高いほど、より多くのコンピューティングが使用されます。 |
| enabledMcpServers | string[] | [] | 既定で無効になっている組み込みの MCP サーバー ( "computer-use"など) を有効にします。 |
| enabledPlugins | Record<string, boolean> | {} | 宣言型プラグインの自動インストール。 キーはプラグインの仕様です。値は true (有効) または false (無効) です。 |
| experimental | boolean | false | 試験的な機能を有効にします。
--experimentalコマンド ライン オプションまたは /experimental スラッシュ コマンドを使用して有効にすることもできます。 |
| extraKnownMarketplaces | Record<string, {...}> | {} | 追加のプラグイン マーケットプレース。 各キーはマーケットプレース名です。この値はソース ("directory"、 "git"、または "github") を指定します。 |
| footer | object | — | ステータス行に表示する項目を制御します。 サブキー: showModelEffort、 showDirectory、 showBranch、 showContextWindow、 showQuota、 showAgent (すべて boolean)。
/statuslineスラッシュ コマンドによって管理されます。 |
| hooks | object | — | イベント名でキー指定されたインライン ユーザー レベルのフック定義。
.github/hooks/*.json ファイルと同じスキーマを使用します。 「GitHub Copilot CLI(コマンドラインインターフェース) を使用するフック」を参照してください。 |
| ide.autoConnect | boolean | true | 起動時に IDE ワークスペースに自動的に接続します。
falseしても、/ide コマンドを使用して手動で接続できます。 |
| ide.openDiffOnEdit | boolean | true | 接続されている IDE でファイルの編集差分を開いてレビュー/承認します。
falseすると、ファイル編集の承認はターミナルにのみ表示されます。 |
| includeCoAuthoredBy | boolean | true | エージェントによって行われた git コミットに Co-authored-by トレーラーを追加します。 |
| logLevel |
"none"
|
"error"
|
"warning"
|
"info"
|
"debug"
|
"all"
|
"default"
| "default" | ログの冗長度。 |
| mergeStrategy |
"rebase"
|
"merge"
| — |
/pr fix conflictsの競合解決戦略。
"rebase"に設定すると、ベース ブランチにリベースすることで競合が解決されます。
"merge"に設定すると、ベース ブランチがフィーチャ ブランチにマージされます。 構成されていない場合は、ピッカー ダイアログが表示されます。 |
| model | string | 変化する | 使用する AI モデル。
"auto"に設定すると、使用可能な最適なモデルCopilot自動的に選択できるようになります。
/modelスラッシュ コマンドによって管理されます。 |
| mouse | boolean | true | 代替画面モードでマウスサポートを有効にします。
--mouseまたは--no-mouseで設定することもできます。 |
| powershellFlags | string[] | ["-NoProfile", "-NoLogo"] | 起動時に PowerShell (pwsh) に渡されるフラグ。 Windows のみ。 |
| renderMarkdown | boolean | true | ターミナル出力で Markdown をレンダリングします。 |
| respectGitignore | boolean | true |
@ ファイルメンション ピッカーから gitignored ファイルを除外します。
falseすると、ピッカーには通常、.gitignoreによって除外されるファイルが含まれます。 |
| screenReader | boolean | false | スクリーン リーダーの最適化を有効にします。 |
| skillDirectories | string[] | [] | カスタム スキル定義を検索する追加のディレクトリ ( ~/.copilot/skills/に加えて)。 |
| statusLine | object | — | カスタムのステータスラインの表示。
type: "command"でなければなりません。
command: stdin でセッション JSON を受け取り、状態コンテンツを stdout に出力する実行可能スクリプトへのパス。
padding: 省略可能な左埋めスペースの数。 |
| storeTokenPlaintext | boolean | false | システム キーチェーンが使用できない場合は、構成ファイルにプレーン テキストで認証トークンを格納します。 |
| stream | boolean | true | ストリーミング応答を有効にします。 |
| streamerMode | boolean | false | プレビュー モデル名とクォータの詳細を非表示にします。
Copilot CLI (コパイロット CLI)または画面共有を示すときに便利です。 |
| theme |
"auto"
|
"dark"
|
"light"
| "auto" | ターミナルの色のテーマ。
"auto" はターミナルの背景を検出し、それに応じて選択します。 |
| updateTerminalTitle | boolean | true | ターミナル タブまたはウィンドウ のタイトルに現在の意図を表示します。 |
リポジトリの設定 (.github/copilot/settings.json)
リポジトリの設定は、リポジトリ内で作業するすべてのユーザーに適用されます。 これらはリポジトリにコミットされ、コラボレーターと共有されます。
リポジトリ レベルでは、次の表に示すキーのみがサポートされています。 その他のキー (ユーザー構成ファイルで有効なキーを含む) は、暗黙的に無視されます。
| 鍵 | タイプ | マージ動作 | 説明 |
|---|---|---|---|
companyAnnouncements | string[] | 置き換え — リポジトリが優先されます | 起動時にランダムに表示されるメッセージ。 |
disableAllHooks | boolean | リポジトリが優先されます | すべてのフックを無効にします。 |
enabledPlugins | Record<string, boolean> | マージ - リポジトリが同じキーのユーザーをオーバーライドする | 宣言型プラグインの自動インストール。 |
extraKnownMarketplaces | Record<string, {...}> | マージ - リポジトリが同じキーのユーザーをオーバーライドする | このリポジトリで利用できるプラグイン マーケットプレース。 |
hooks | object | 連結—リポジトリのフックはユーザーフックの後に実行されます | このリポジトリにスコープが設定された定義をフックします。 「GitHub Copilot CLI(コマンドラインインターフェース) を使用するフック」を参照してください。 |
mergeStrategy |
`"rebase"`
\|
`"merge"`
| リポジトリが優先されます |
`/pr fix conflicts`の競合解決戦略。 |
ローカル設定 (.github/copilot/settings.local.json)
コミットすべきでない個人用オーバーライドの .github/copilot/settings.local.json をリポジトリに作成します。 このファイルを .gitignoreに追加します。
ローカル構成ファイルは、リポジトリ構成ファイル (.github/copilot/settings.json) と同じスキーマを使用し、そのスキーマよりも優先されます。