GitHub Copilot は、コードを書きながらAIがリアルタイムで補完・提案してくれるツールです。ただ補完するだけでなく、チャットでコードの説明を聞いたり、テストを自動生成したり、複数ファイルにまたがるリファクタリングを指示したりと、開発ワークフロー全体に入り込む存在になっています。
2024年末には無料プランが解禁され、GitHubアカウントさえあれば誰でも試せるようになりました。この記事では、無料プランの開始方法から、コード補完・Copilot Chat・複数ファイル編集・TypeScript特化のテクニック・カスタム指示ファイルの設定まで、実務で本当に使える情報を体系的に解説します。
- 無料プラン(Free)・Pro・Businessの料金と制限の違い
- VS Codeへのインストールからコード補完が表示されるまでの手順
- 覚えておくべきショートカットキー一覧
- Copilot Chatの/explain・/fix・/tests・/docコマンドの使い方
- Copilot Editsで複数ファイルを一括変更する方法
- TypeScript開発で生産性が上がる実践テクニック
- `.github/copilot-instructions.md` でチーム規約を自動反映する方法
- PRのコードレビューにCopilotを活用する方法
- ハルシネーション・著作権・セキュリティの注意点と対策
GitHub Copilotとは何か
GitHub CopilotはGitHubとOpenAIが共同開発したAIペアプログラマーです。VS Codeなどのエディタに組み込まれ、コードを書いている最中に次の行・次の関数を予測して提案します。コメントに「何をする関数か」を書くだけで実装を生成したり、テストファイルを開けばテストケースを補完したりと、開発の全工程にAIが自然に入り込むのが特徴です。
単なるオートコンプリートとの最大の違いは、文脈を理解した上で提案してくる点です。ファイル全体の構造・変数名・コメントの意図を読み取り、数十行〜数百行にわたる実装を一度に提案することもあります。
| 機能 | 説明 |
|---|---|
| インラインコード補完 | タイピング中にリアルタイムで次のコードを提案 |
| Copilot Chat | チャット形式でコードの質問・生成・説明・修正を依頼 |
| Copilot Edits | 複数ファイルにまたがる変更を一括指示・プレビュー |
| コードレビュー | Pull RequestのレビューをAIが自動実行 |
| CLI(コマンドライン) | ターミナルでコマンドの説明・生成を依頼 |
料金プランの比較
GitHub Copilotは4つのプランがあります。まず無料プランで使い心地を確認してから、必要に応じてアップグレードするのがおすすめです。
| プラン | 月額 | 主な利用対象 | コード補完 | チャット |
|---|---|---|---|---|
| Free | 無料 | 個人・学習 | 月2,000回まで | 月50回まで |
| Pro | $10/月 | 個人開発者 | 無制限 | 無制限 |
| Business | $19/ユーザー/月 | チーム・中小企業 | 無制限 | 無制限 |
| Enterprise | $39/ユーザー/月 | 大企業 | 無制限 | 無制限 |
各プランの違いをもう少し詳しく
Freeプランは月に補完2,000回・チャット50回という上限がありますが、試用や副業・個人プロジェクトであれば十分なケースも多いです。クレジットカード登録不要で今すぐ始められます。
Proプラン($10/月)になると制限がなくなり、Claude・Geminiなど複数のAIモデルを選んで使えるようになります。毎日使う開発者であれば月$10の価値は十分あります(年払いで$100)。
Businessプラン($19/ユーザー/月)以上では、入力したコードがAIの学習に使われないというデータポリシーが適用されます。業務コードを扱う企業での導入にはBusinessプラン以上が推奨されます。
- github.com/features/copilot にアクセスし「Start for free」をクリック
- GitHubアカウントでサインイン(なければ無料で作成)
- VS Code の拡張機能「GitHub Copilot」をインストール
- エディタ上でGitHubアカウントにサインインして完了
VS Codeへのインストールと初期設定
拡張機能のインストール
VS Codeを開き、左サイドバーの拡張機能アイコン(四角のアイコン)をクリックします。検索ボックスに GitHub Copilot と入力し、発行元が「GitHub」の公式拡張機能をインストールしてください。インストールすると、チャット機能を含む GitHub Copilot Chat も同時に入ります。
検索結果に似た名前の非公式拡張機能が表示されることがあります。必ず発行元が GitHub であることを確認してからインストールしてください。非公式ツールはAPIキーの漏洩などのリスクがあります。
GitHubアカウントでサインイン
インストール後、VS Codeの右下に「Sign in to GitHub」のポップアップが表示されます。クリックするとブラウザが開き、GitHubの認証ページに遷移します。「Authorize GitHub Copilot Plugin」を許可してVS Codeに戻れば設定完了です。
動作確認:TypeScriptファイルを新規作成してコメントを書いてみましょう。数秒でグレーの補完テキストが表示されれば成功です。
推奨設定(settings.json)
デフォルト設定でも使えますが、以下の設定を加えておくと快適です。Ctrl + Shift + P → 「Open User Settings (JSON)」で開けます。
{
// Copilot のインライン補完を有効化(デフォルトtrue)
"github.copilot.enable": {
"*": true,
"plaintext": false, // テキストファイルでは無効に(誤提案を減らす)
"markdown": true,
"scminput": false
},
// 補完の表示を少し遅らせる(誤発動を減らす)
"editor.inlineSuggest.enabled": true,
"github.copilot.editor.enableAutoCompletions": true
}
インラインコード補完の使い方とショートカット
コード補完はCopilotの基本機能です。コメントや関数の書きかけを入力すると、グレーのテキストで補完候補が表示されます。このグレーのテキストを「ゴースト補完」と呼びます。
覚えておくべきショートカット一覧
| 操作 | ショートカット(Windows/Linux) | ショートカット(Mac) |
|---|---|---|
| 補完を受け入れる | Tab |
Tab |
| 補完を無視する | そのまま入力を続ける | そのまま入力を続ける |
| 単語単位で受け入れ | Ctrl + → |
Cmd + → |
| 次の候補に切り替え | Alt + ] |
Option + ] |
| 前の候補に切り替え | Alt + [ |
Option + [ |
| 全候補を一覧表示 | Ctrl + Enter |
Ctrl + Enter |
| 補完を手動で呼び出す | Alt + \ |
Option + \ |
提案されたコード全体が欲しくないとき、
Ctrl + →(Mac: Cmd + →)で単語単位に受け入れると効率的です。例えばCopilotが10行提案してきたとき、最初の3単語だけ使いたい場合に役立ちます。全候補表示(Ctrl + Enter)も、気に入る提案が来ないときに重宝します。補完が出やすいコメントの書き方
コメントの書き方がCopilotの補完精度に直結します。「何をする関数か」「入力と出力の型」「具体例」を書くほど精度が上がります。
// NG: 曖昧すぎて精度が落ちる
// データを処理する関数
// OK: 型・動作・例を明示するとCopilotの補完精度が上がる
// ユーザーIDの配列から重複を除去して昇順に並べ替えた配列を返す
// 例: removeDuplicatesSorted([3, 1, 2, 1]) => [1, 2, 3]
function removeDuplicatesSorted(ids: number[]): number[] {
// ↑ここまで書くとCopilotが続きを自動生成
}
Copilot Chatの使い方
Copilot Chatはエディタ内でAIと対話できる機能です。VS Codeの左サイドバーにある吹き出しアイコン、または Ctrl + Alt + I で開けます。コードを選択した状態でチャットに質問すると、選択箇所を文脈として会話できます。
スラッシュコマンド(/ コマンド)一覧
チャット欄に / と入力するとコマンド一覧が表示されます。選択したコードに対して特定の操作を瞬時に指示できます。
| コマンド | 機能 | 使い方の例 |
|---|---|---|
/explain |
選択したコードの動作を日本語で説明 | コードを選択 → /explain で関数の挙動を解説させる |
/fix |
バグ・エラーの修正を提案 | エラーのある行を選択 → /fix で原因と修正案を提示 |
/tests |
ユニットテストを自動生成 | 関数を選択 → /tests でJest/Vitestのテストコードを生成 |
/doc |
JSDocコメントを自動生成 | 関数を選択 → /doc でパラメータ・戻り値の説明を生成 |
/new |
新しいプロジェクト・ファイルを作成 | /new TypeScript プロジェクト で雛形を生成 |
/explain:コードを即座に理解する
読んだことのないコードを理解するのに /explain は絶大な効果があります。関数全体を選択して /explain を実行すると、処理の流れ・変数の役割・エッジケースまで日本語で解説してくれます。OSS のソースコードを読むときや、引き継ぎコードの把握に非常に有効です。
/tests:テストコードの自動生成
テストを書くのが面倒と感じているなら /tests が助けになります。実装関数を選択してコマンドを実行するだけで、Jest や Vitest 形式のテストコードを自動生成します。エッジケース(空配列・null・境界値)も考慮したテストが提案されることが多く、テストの「書き始め」のコストをゼロにできます。
// 元の関数(これを選択して /tests を実行)
export function formatCurrency(amount: number, currency: string): string {
return new Intl.NumberFormat("ja-JP", { style: "currency", currency }).format(amount);
}
// Copilot が自動生成するテスト(例)
import { describe, it, expect } from "vitest";
import { formatCurrency } from "./formatCurrency";
describe("formatCurrency", () => {
it("JPYで正しくフォーマットする", () => {
expect(formatCurrency(1000, "JPY")).toContain("1,000");
});
it("USDで正しくフォーマットする", () => {
expect(formatCurrency(1234.56, "USD")).toContain("1,234.56");
});
it("0を正しく処理する", () => {
expect(formatCurrency(0, "JPY")).toContain("0");
});
it("負の値を正しく処理する", () => {
expect(formatCurrency(-500, "JPY")).toContain("500");
});
});
インラインチャット(その場で修正)
コードを選択して Ctrl + I(Mac: Cmd + I)を押すと、エディタのその場にチャット欄が開きます(インラインチャット)。サイドのチャットパネルを開かずに、修正指示を直接コードに投げられます。「このforループをArray.reduceで書き直して」のような変換指示に便利です。
Copilot Editsで複数ファイルを一括編集する
Copilot Editsは、複数のファイルにまたがる変更を一括で指示できる機能です。「APIクライアントクラスを作成して、それを使うようにServiceとControllerを書き換えて」といった規模の指示を一度に出せます。
使い方
Copilot Chatパネル上部の「Edit」タブを開くとCopilot Editsモードになります。「Add Files」ボタンで変更対象のファイルをWorking Setに追加し(最大10ファイル)、自然言語で変更内容を指示します。変更提案が表示されたら、ファイルごとに「Accept」か「Discard」を選びます。
- Copilot ChatパネルでEditタブを選択
- 「Add Files」で変更対象ファイルをWorking Setに追加
- 変更内容を自然言語で指示(例:「このモジュールにZodバリデーションを追加して、型も更新して」)
- 各ファイルへの変更提案をdiff形式で確認
- 「Accept All」または個別にAccept/Discardを選択
- リネーム(変数名・型名の全ファイル一括変更)
- コーディング規約の統一(const / let の統一、型注釈の追加など)
- 新しいライブラリへの移行(fetch → axios への一括置き換えなど)
- テストファイルと実装ファイルの同時修正
- 複数コンポーネントへの同一デザインパターンの適用
TypeScript開発での実践活用テクニック
CopilotはTypeScriptのコードが特に得意です。型情報を活かした補完・型定義の自動生成・型エラーの修正など、TypeScriptの型システムとCopilotを組み合わせると生産性が大幅に上がります。
テクニック1:型定義からの実装生成
インターフェースや型エイリアスを先に書いてから実装を書き始めると、Copilotが型に合った実装を高精度で補完してくれます。「型ファースト」で書くほどCopilotの精度が上がります。
// 1. まず型定義を書く
interface UserRepository {
findById(id: string): Promise<User | null>;
findAll(): Promise<User[]>;
save(user: User): Promise<User>;
delete(id: string): Promise<void>;
}
interface User {
id: string;
name: string;
email: string;
createdAt: Date;
}
// 2. 実装クラスの宣言だけ書くと、Copilotがメソッドを自動補完
class InMemoryUserRepository implements UserRepository {
private users: Map<string, User> = new Map();
// ← ここで Tab を押すとCopilotが findById の実装を提案
}
テクニック2:コメントで型を指示して関数を生成
「入力型・出力型・動作の説明」をコメントに書くと、Copilotが正確な型付きの関数を生成します。特にユーティリティ関数の作成で効果的です。
// Record<string, T>を受け取り、指定したキーの配列をもとに
// 部分的なオブジェクトを返すpick関数
// 例: pick({ a: 1, b: 2, c: 3 }, ["a", "c"]) => { a: 1, c: 3 }
function pick<T extends object, K extends keyof T>(obj: T, keys: K[]): Pick<T, K> {
// ↑ Copilot がこの実装を補完
return keys.reduce((acc, key) => {
if (key in obj) acc[key] = obj[key];
return acc;
}, {} as Pick<T, K>);
}
テクニック3:型エラーの解消に /fix を活用
TypeScriptのエラーメッセージは長くて読みにくいことがありますが、エラーのある行を選択して /fix を実行すると、エラーの原因を日本語で説明した上で修正案を提示してくれます。TS2345・TS2322・TS2339などのエラーコードが出たときに特に有効です。
// エラー: Argument of type 'string | null' is not assignable to parameter of type 'string'
function greet(name: string): string {
return `Hello, ${name}!`;
}
const userName: string | null = getUserName();
greet(userName); // ← この行を選択して /fix を実行
// /fix の提案例:
greet(userName ?? "Guest"); // null合体演算子で対処
greet(userName as string); // 型アサーション(確実にnullでない場合)
if (userName !== null) greet(userName); // 型ガードで対処
テクニック4:Zodスキーマからの型・バリデーション一括生成
Zodを使っているプロジェクトでは、スキーマの定義を書くとCopilotが z.infer による型定義やバリデーション関数を自動補完してくれます。
import { z } from "zod";
// スキーマを定義すると、Copilotが型とパース関数を補完
const CreateUserSchema = z.object({
name: z.string().min(1).max(100),
email: z.string().email(),
age: z.number().int().min(0).max(150).optional(),
});
// Copilotが型エイリアスを提案
type CreateUserInput = z.infer<typeof CreateUserSchema>;
// Copilotがバリデーション関数を提案
function validateCreateUser(data: unknown): CreateUserInput {
return CreateUserSchema.parse(data);
}
カスタム指示ファイルでチーム規約をCopilotに覚えさせる
GitHub Copilotは .github/copilot-instructions.md というファイルを認識し、リポジトリ固有のルールや規約を全チャット・補完に自動反映します。「このプロジェクトはconstを使う」「エラーハンドリングはResult型で統一」など、チームの規約をあらかじめ書いておくと毎回指示する手間が省けます。
基本的な書き方
# コーディング規約
## 基本方針
- TypeScript strict モードで開発
- 関数・変数・クラスすべてに型注釈を必須とする
- `any` 型の使用は禁止(`unknown` を使う)
- `var` は使用禁止。`const` を優先し、再代入が必要な場合のみ `let`
## 命名規則
- 変数・関数:camelCase(例: `getUserById`)
- 型・インターフェース・クラス:PascalCase(例: `UserRepository`)
- 定数:UPPER_SNAKE_CASE(例: `MAX_RETRY_COUNT`)
- ファイル名:kebab-case(例: `user-repository.ts`)
## エラーハンドリング
- throw は使わず Result 型パターン(`{ ok: true, value } | { ok: false, error }`)を使う
- 外部APIエラーは必ず catch して、ユーザーに分かるメッセージに変換する
## テスト
- テストフレームワーク:Vitest
- 各関数にユニットテストを書く
- テストファイルは `*.test.ts` の命名規則
## 使用ライブラリ
- バリデーション:zod
- HTTPクライアント:fetch API(axiosは使わない)
- 日付処理:date-fns
- 命名規則:PascalCase/camelCase/UPPER_SNAKEの使い分け
- 禁止事項:anyの禁止・varの禁止・eval()の禁止など
- エラーハンドリング方針:例外 or Result型など
- 使用ライブラリ:プロジェクトで使っているもの・使ってはいけないもの
- テスト規約:フレームワーク・命名・カバレッジ方針
- セキュリティルール:シークレットをコードに書かないなど
パス別指示ファイル(特定ファイルへの個別指示)
フロントエンドとバックエンドで異なるルールを適用したい場合は、パス別の指示ファイルも使えます。.github/instructions/ フォルダに配置します。
--- applyTo: "src/components/**/*.tsx" --- # Reactコンポーネントの規約 - 関数コンポーネントのみ使用(クラスコンポーネント禁止) - Props の型は `interface ComponentNameProps` で定義 - 状態管理は useState / useReducer を使い、グローバルな状態は Zustand - スタイルは Tailwind CSS のみ(インラインスタイル・CSS-in-JS 禁止)
Pull RequestのコードレビューにCopilotを活用する
GitHub CopilotはPull Requestのコードレビューも自動で行えます。Reviewersにすることができるようになっており、コードの品質・バグ・セキュリティ問題を指摘してくれます。
レビュアーとして設定する手順
- GitHubでPull Requestを開く
- 右サイドバーの「Reviewers」をクリック
- リストから Copilot を選択
- 約30秒〜1分でレビューコメントが投稿される
CopilotのレビューはPR画面のコメントとして表示されます。指摘事項に「Apply suggestion」ボタンが付いており、1クリックで修正を適用できます。
VS Code上でのレビュー(Copilot Chat活用)
VS Code上でもCopilot Chatを使ったレビューが可能です。レビューしたいファイル全体を選択して以下のように聞くと効果的です。
| 目的 | プロンプト例 |
|---|---|
| バグ発見 | 「このコードの潜在的なバグやエッジケースを列挙してください」 |
| セキュリティ | 「OWASPトップ10の観点でこのコードのリスクを指摘してください」 |
| パフォーマンス | 「このコードのパフォーマンス問題と改善案を教えてください」 |
| 型安全性 | 「TypeScriptの型定義で改善できる箇所を指摘してください」 |
| 可読性 | 「命名・構造・コメントの観点で改善点を教えてください」 |
Copilotの限界と使うときの注意点
Copilotは強力なツールですが、「生成したコードは必ず検証する」という前提で使うことが大切です。盲目的に Tab を押し続けると、動かないコードやセキュリティリスクのあるコードが混入します。
ハルシネーション(誤情報の生成)
存在しないAPIメソッドやライブラリ関数をさも実在するかのように提案してくることがあります。特にバージョンが古いライブラリや、マイナーなライブラリの使い方で起きやすいです。生成されたコードはIDEのエラー表示と公式ドキュメントで必ず確認しましょう。
著作権・ライセンスリスク
Copilotはオープンソースコードを学習データとしています。確率は低いものの、既存の公開コードと一致するコードを提案することがあります。GitHubの設定では 「公開コードと一致するサジェスチョンをブロック」する機能があります。Business/Enterpriseプランのチームでは有効化しておくことを推奨します。
セキュリティの注意点
`.env` ファイルや設定ファイルに書かれた機密情報が含まれるコードを選択してCopilot Chatに貼ると、その情報がリクエストとしてサーバーに送信されます。シークレット・パスワード・個人情報が含まれるコードはCopilotに送らないようにしましょう。Business/Enterpriseプランではデータが学習に使われない設定が適用されますが、リクエスト自体はサーバーを通ります。
また、Copilotが生成するコードにはセキュリティ上の問題が含まれている場合があります。SQLインジェクション・XSS・認証の抜け漏れなど、AIは動くコードを優先するためセキュリティを後回しにしがちです。セキュリティが重要なコードは必ずレビューを通し、静的解析ツールも組み合わせましょう。
依存しすぎない
Copilotに頼りすぎると、コードを読む力・設計する力・デバッグ力が落ちるリスクがあります。Copilotはあくまで「提案」であり、最終的な判断は開発者が行います。コードを理解せずに Tab を押すのではなく、提案されたコードを読んで「なぜそう書くのか」を理解しながら使いましょう。
まとめ
GitHub Copilotは、コード補完・チャット・複数ファイル編集・コードレビューまで、開発の全工程をAIでサポートするツールです。まず無料プランで試して、毎日使うようになったらProプランに移行するのがおすすめです。
| 機能 | 使い方・コマンド | おすすめの活用シーン |
|---|---|---|
| インライン補完 | Tab で受け入れ / Alt+] で次候補 | 関数の実装・ボイラープレート生成 |
| /explain | 選択 → チャットで /explain | 読んだことのないコードの理解 |
| /fix | 選択 → チャットで /fix | 型エラー・バグの修正 |
| /tests | 選択 → チャットで /tests | ユニットテストの自動生成 |
| /doc | 選択 → チャットで /doc | JSDocコメントの自動生成 |
| インラインチャット | Ctrl+I で呼び出し | その場で変換・書き直しを指示 |
| Copilot Edits | Editタブ → Working Setに追加 | 複数ファイルのリファクタリング |
| カスタム指示 | .github/copilot-instructions.md | チーム規約を自動反映 |
| コードレビュー | PR → Reviewers → Copilot | PR作成時の品質チェック |
TypeScriptでのAI開発をさらに深めたい場合は、Claude APIをTypeScriptで使う方法やOpenAI APIをTypeScriptで使う方法もあわせてご覧ください。CopilotとAPIを組み合わせることで、AIを活用した本格的な開発環境が整います。
よくある質問
QGitHub Copilotは本当に無料で使えますか?
Aはい。2024年末から個人向けに無料プランが提供されています。GitHubアカウントさえあれば、クレジットカード登録なしで月2,000回の補完・50回のチャットを無料で使えます。github.com/features/copilot から始められます。
QVS Code以外のエディタでも使えますか?
AJetBrains IDE(IntelliJ・WebStorm・PyCharm等)・Visual Studio・Vim/Neovim・Emacs にも対応しています。また GitHub.comのWebエディタ上でもCopilot Chatが使えます。VS Codeが最も機能が充実していて公式サポートも手厚いため、迷ったらVS Codeがおすすめです。
Q業務コードをCopilotに送っても大丈夫ですか?
AFree/Proプランでは入力したコードがAI学習に使用される可能性があります。機密情報が含まれる業務コードにはBusinessプラン以上($19/ユーザー/月)を使うのが安全です。Business/Enterpriseではデータが学習に使われないポリシーが適用されます。
QCopilotが補完を出してくれないときはどうすればいいですか?
AまずAlt + \(Mac: Option + \)で手動トリガーしてみてください。出てこない場合は、①コメントでより具体的な説明を書く、②関数名・引数名を分かりやすい英語にする、③VS Codeを再起動する、を試してみてください。言語・フレームワークによって精度差があり、TypeScript・Python・JavaScriptが最も得意です。
Qカスタム指示ファイルはいつ反映されますか?
Aファイルを保存したタイミングで即座に反映されます。Copilot ChatもInline補完も、次のリクエストからカスタム指示が適用されます。チームで使う場合はファイルをGitにコミットすれば全員に反映されます。
QChatGPTとの違いは何ですか?
AChatGPTはブラウザのWebサービスで、コードを手動でコピペする必要があります。GitHub Copilotはエディタに直接組み込まれており、書いているコードの文脈を自動で読み取って提案します。「今開いているファイル・プロジェクト全体の型定義・選択中のコード」をリアルタイムで参照できる点が最大の違いです。

