22
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

⏰Copilot Scheduler🚀 GitHub Copilot をスケジュール実行する VS Code 拡張機能を作った

22
Last updated at Posted at 2026-02-01

こんにちは、毎日のルーティン作業をどうにか減らしたいアーキテクトのやまぱんです 😊

今回は、自分で作った VS Code 拡張機能 Copilot Scheduler を紹介します!🎉

補足コメントや質問、いいね、拡散、ぜひお願いします 🥺!
間違っていたら 優しく 教えてください!

TL;DR

  • Copilot Scheduler は GitHub Copilot のプロンプト実行を Cron 式で予約 できる VS Code 拡張機能
  • 毎朝のニュース収集や週次レポート作成など、 定型タスクを自動化 できる
  • WorkIQ MCP と連携すれば、Microsoft 365 のデータ(メール・会議・ドキュメント)を使った日報・週報も自動生成!
  • GUI でタスク管理できるので、Cron 式に詳しくなくても大丈夫 🙌
  • v0.9.0 で安全対策(ジッター・日次上限・免責通知など)を実装。ただし アクセス制限リスクをゼロにするものではない ので、利用は自己責任で 🙏

Copilot Scheduler とは?

Copilot Scheduler は、GitHub Copilot のプロンプトを 指定した時刻に自動実行 できる VS Code 拡張機能です。

「毎朝 9 時に最新の技術ニュースをまとめてほしい」「毎週金曜 17 時に週報を作成してほしい」といった定型タスクを、Cron 式でスケジューリングできます。

Copilot Scheduler デモ

要件

  • VS Code 1.80.0 以上
  • GitHub Copilot 拡張機能(Copilot Chat が動作する状態)

インストール方法

VS Code の拡張機能マーケットプレイスから 「Copilot Scheduler」 を検索してインストールするだけです!

  1. VS Code のサイドバーで拡張機能アイコン(四角が 4 つ並んだやつ)をクリック
  2. 検索ボックスに Copilot Scheduler と入力
  3. yamapan 作の拡張機能をインストール

または、以下のコマンドでもインストールできます:

code --install-extension yamapan.copilot-scheduler

主要機能

1. Cron 式でスケジュール設定(GUI で超簡単!)

おなじみの Cron 式でプロンプトの実行タイミングを指定できます。

# Cron 式の書式
分 時 日 月 曜日

# 例:毎日 9:00 に実行
0 9 * * *

# 例:平日(月〜金)18:00 に実行
0 18 * * 1-5

# 例:毎週金曜 17:00 に実行
0 17 * * 5

🎯 Cron 式がわからなくても大丈夫!

Friendly cron builder 機能で、ドロップダウンから選んで、生成をするだけで Cron 式が自動生成されます!

Friendly cron builder

選択肢 説明 生成される Cron 式の例
Every N minutes N 分ごとに実行 */5 * * * *(5分ごと)
Hourly at minute 毎時 X 分に実行 30 * * * *(毎時30分)
Daily at time 毎日 X 時に実行 0 9 * * *(毎日9時)
Weekly at day/time 毎週 X 曜日 X 時に実行 0 17 * * 5(毎週金曜17時)
Monthly on day/time 毎月 X 日 X 時に実行 0 10 1 * *(毎月1日10時)

「Cron 式ってなに?🤔」という方でも、ポチポチ選ぶだけでスケジュール設定できます!

さらに「Open in crontab.guru」リンクから、設定した Cron 式の意味を確認することもできます 🔗

頑張りポイント 💪: Cron 式を覚える必要なし!GUI で直感的に設定できるので、非エンジニアの方でも安心して使えます。

2. エージェント&モデル選択

タスクごとに使用するエージェントとモデルを選べます。

  • エージェント: 環境にインストールされているエージェントを自動認識します。カスタムエージェント(.agent.md)も選択可能!
  • モデル: GitHub Copilot で利用可能なモデル(GPT-4o、Claude など)から選択できます

※ 選択可能なモデルは GitHub Copilot の設定により変更される場合があります。また、一部の設定ではモデル選択が正しく動作しないことがあります。

3. サイドバー TreeView でタスク管理

VS Code のサイドバーに Copilot Scheduler のアイコンが追加され、登録済みタスクを一覧表示できます。

  • タスクの有効/無効切り替え
  • 次回実行時刻の確認
  • ワンクリックで手動実行

4. Webview GUI でタスク作成・編集

タスクの作成・編集は Webview ベースの GUI で直感的に行えます。

  • プロンプトの入力(複数行対応)
  • Cron 式の設定(プリセット選択 or 直接入力)
  • エージェント・モデルの選択

5. プロンプトテンプレート(GitHub Copilot 機能)

GitHub Copilot の プロンプトテンプレート機能 を呼び出して使えます。

プロンプトテンプレートは GitHub Copilot 自体の機能 です。この拡張機能はテンプレートを「呼び出せる・設定できる」だけで、テンプレート機能自体を提供しているわけではありません。

  • ローカルテンプレート: .github/prompts/*.md(ワークスペース専用)
  • グローバルテンプレート: %APPDATA%\Code\User\prompts\*.md(全ワークスペースで共有)
    • Windows の場合: C:\Users\<username>\AppData\Roaming\Code\User\prompts

グローバルテンプレートの保存場所を変更したい場合は、この拡張機能の設定 copilotScheduler.globalPromptsPath でカスタムパスを指定できます。

💡 v0.9.0 以降: テンプレートファイルの内容はタスクの prompt に自動同期されるようになりました。テンプレートを編集するだけで、次回同期時にスケジュールタスクのプロンプトも更新されます。

6. プレースホルダ

プロンプト内で動的な値を使いたいときは プレースホルダ が便利です。

プレースホルダ 展開結果
{{date}} 実行日(例: 2026-02-02)
{{time}} 実行時刻(例: 09:00:00)
{{datetime}} 実行日時(日付 + 時刻)
{{workspace}} ワークスペース名
{{file}} 現在開いているファイル名
{{filepath}} 現在開いているファイルのパス
# プロンプト例
{{date}} の技術ニュースをまとめてください。

7. 設定項目

VS Code の設定(settings.json)で動作をカスタマイズできます。

設定項目 デフォルト 説明
copilotScheduler.enabled true スケジュール実行の有効/無効
copilotScheduler.showNotifications true 実行時の通知表示
copilotScheduler.language auto UI 言語(auto / en / ja
copilotScheduler.timezone "" タイムゾーン(空欄でローカル時刻)
copilotScheduler.chatSession new new: 新規チャット / continue: 既存チャット継続
copilotScheduler.defaultScope workspace タスクのデフォルトスコープ
copilotScheduler.logLevel info ログレベル(none / error / info / debug
copilotScheduler.jitterSeconds 600 タスク実行前のランダム遅延の最大秒数(60〜1800秒。タスクごとにも設定可)
copilotScheduler.maxDailyExecutions 12 1日あたりの最大実行回数(全タスク合計。1〜48 の範囲で設定可)
copilotScheduler.minimumIntervalWarning true 30分未満の Cron 式に対する警告表示

多言語対応: UI は日本語と英語に対応しています。language 設定を auto にしておくと、VS Code の言語設定に合わせて自動切り替えされます 🌐

8. タスクのスコープ(Global / Workspace)

タスクには スコープ を設定できます:

  • Global: すべてのワークスペースでタスクが実行される
  • Workspace: 作成したワークスペース内でのみ実行される

プロジェクト固有のタスクは Workspace、汎用的なタスク(ニュース収集など)は Global がおすすめです 🎯

活用例

例 1: 毎朝のニュース収集 📰

毎朝 9 時に、自分の興味分野の最新ニュースをまとめてもらう。

# Cron 式
0 9 * * *

# プロンプト
{{date}} の Azure / GitHub Copilot 関連の最新ニュースを
以下の形式でまとめてください:

## 本日のハイライト(3 つ)
-

## 詳細

朝コーヒーを淹れている間に、自分専用のニュースレターが完成している…なんて素敵じゃないですか? ☕

例 2: WorkIQ 連携した日次レポート 📝

Microsoft WorkIQ MCP と連携すれば、Microsoft 365 のデータを使った日報を自動生成できます!

# Cron 式(平日 18:00)
0 18 * * 1-5

# プロンプト
#ask_work_iq を使って、今日の私の活動を振り返ってください。

以下の情報を含めてください:
- 参加した会議の概要
- 送受信した重要なメール
- 作成・編集したドキュメント
- Teams でのやり取りのハイライト

振り返りは日本語で、箇条書きでお願いします。

WorkIQ MCP の利用には以下が必要です

  • Node.js
  • Copilot ライセンス付きの Microsoft 365 サブスクリプション
  • 組織の Entra テナントでの管理者同意(Admin Consent)

個人の Microsoft アカウント(Outlook.com 等)では利用できません。

例 3: WorkIQ 連携した週次レポート 📊

金曜 17 時に、今週の活動を週報形式でまとめてもらう。

# Cron 式(毎週金曜 17:00)
0 17 * * 5

# プロンプト
#ask_work_iq を使って、今週の私の活動を週報形式でまとめてください。

## 今週やったこと
- 参加した会議とその成果
- 完了したタスク
- 送受信した重要なメール

## 来週の予定
- カレンダーに入っている会議
- 締め切りが近いタスク

## 所感・課題
- 今週の振り返りと来週への意気込み

週末前に週報が自動で下書きされていたら、だいぶ楽ですよね 💪

例 4: その他のアイデア

用途 Cron 式 プロンプト例
朝の TODO 確認 0 8 * * 1-5 今日の TODO を GitHub Issues から取得して
コードレビュー促進 0 10 * * * 未レビューの PR を一覧表示して
夕方の進捗確認 0 17 * * 1-5 今日コミットしたファイルをまとめて

WorkIQ MCP との連携について

Microsoft WorkIQ は、Microsoft 365 Copilot のデータにアクセスできる MCP サーバー です。

VS Code の GitHub Copilot と統合することで、以下のデータをプロンプトから参照できます:

  • メール: 送受信したメールの内容
  • 会議: カレンダーに登録されたミーティング
  • ドキュメント: OneDrive / SharePoint 上のファイル
  • Teams: チャット・チャンネルのやり取り

セットアップ

方法 1: ワンクリックインストール(推奨)

以下のリンクから VS Code に直接インストールできます:

方法 2: 手動設定

VS Code の MCP 設定(mcp.json)に以下を追加:

{
  "workiq": {
    "command": "npx",
    "args": ["-y", "@microsoft/workiq", "mcp"],
    "tools": ["*"]
  }
}

設定後、Copilot Chat で #ask_work_iq を付けて質問するか、Agent モードで自然に質問すれば WorkIQ のデータが参照されます。

注意: WorkIQ を利用するには Microsoft 365 Copilot ライセンスが必要です。個人の Microsoft アカウントでは利用できません。また、初回利用時に EULA への同意が必要です。

⚠️ Copilot アクセス制限のリスクと安全対策(v0.9.0〜)

Copilot Scheduler はスケジュール実行の性質上、GitHub Copilot API への自動的なアクセスが発生します。ここでは、実際に報告されているリスクと、v0.9.0 で実装した安全対策について率直にお話しします。

Copilot のアクセス制限(BAN)は実際に起きている

まず知っておいてほしいのが、Copilot のアクセスが制限・停止された事例は実際に複数報告されている ということです。

  • ツールを使っていなくても制限される: GitHub Community Discussion #160013 では、サードパーティツールを使っていないにもかかわらず、abuse-detection の警告メールが届いた事例が報告されています

  • 実際にアクセスが停止されたケース: Discussion #161697 では、Copilot へのアクセスが停止され、Support に問い合わせても TOS 違反としてクローズされた事例が報告されています

  • サードパーティ拡張経由での BAN 事例: Cline / Roo Code / OpenCode 等のサードパーティ拡張経由での停止事例も Reddit に多数報告されています。VS Code LM API 経由での停止について、copilot-more の作者が「429(レート制限)の頻発が主因」と解説している事例もあります

  • Neovim プラグインでの警告メール: Neovim の Copilot プラグインを使っていて警告メールが届いたという報告も

  • API レート制限内でも永久 BAN された事例: API Rate 制限に引っかからない範囲で自動化していたにもかかわらず、Copilot を永久 BAN されたという報告があります。BAN 時のメッセージには「excessive or automated usage(過度または自動化された使用)」が理由として明記されており、復元不可と通告されています。この事例は本記事の安全対策強化のきっかけにもなりました

上記の事例を見ると、停止前に警告メールが来るケース(Discussion #160013、Reddit の Neovim 事例)もあれば、警告なしで永久 BAN されるケース(上記ツイートの事例)もあります。これは結構怖いですよね… 😰

GitHub の規約ではどうなっている?

GitHub の規約を確認すると、以下の条項が関係してきます。

1. GitHub Acceptable Use Policies(利用ポリシー)§4 — 「過度な」自動化は禁止

GitHub の利用ポリシー(Acceptable Use Policies、以下 AUP)§4 では「過度な自動化された一括活動(automated excessive bulk activity)」と「サーバーに過度な負荷(undue burden)をかける自動化」が禁止されています。規約の文言上は 「過度(excessive)」「不当な負荷(undue burden)」 が要件として付されています。

ただし、X 上のポストで報告されている実際の BAN 通知では「excessive or automated usage(過度または自動化された使用)」と書かれており、自動化そのものが独立したリスク要因として扱われている可能性があります。規約の文言と実際の運用には乖離がある点に注意が必要です。

補足: 同じ AUP の §7(Information Usage Restrictions = 情報利用制限)には「API 経由のデータ収集は Scraping に該当しない」と明記されていますが、これは情報抽出に関する条文です。API 利用が上記 §4 や下記 ToS §H の制限から免除されるという趣旨ではないため、混同しないよう注意が必要です(これは筆者の解釈であり、公式の見解ではありません)。

2. GitHub Terms of Service(サービス利用規約)§H — API Terms(最も直接的に適用される条項)

Abuse or excessively frequent requests to GitHub via the API may result in the temporary or permanent suspension of your Account's access to the API. GitHub, in our sole discretion, will determine abuse or excessive usage of the API.

GitHub のサービス利用規約(Terms of Service、以下 ToS)§H では、API の「濫用(Abuse)または過度に頻繁なリクエスト」がアカウント停止の対象とされています。何が「過度」「濫用」にあたるかは GitHub の裁量で判断 されます。

3. GitHub Copilot 追加製品規約(Additional Product Terms)

上記の AUP(利用ポリシー)が Copilot にも直接適用されることが明記されています。

4. 公式レート制限ドキュメント

If you're making frequent or automated requests (for example, rapid-fire completions or large-scale usage), consider adjusting your usage pattern.

「automated requests(自動リクエスト)」は明確にリスク要因として挙げられています。ただし「禁止」ではなく「使い方を見直せ」という表現です。

規約の整理: 規約の文言上は「過度な自動化」「過度に頻繁なリクエスト」が禁止されており、「過度」の基準は GitHub の裁量に委ねられています。ただし、X 上のポストで報告された BAN 通知では「excessive or automated usage」と書かれており、「過度」でなくとも「自動化」だけで BAN 対象となる運用がされている可能性があります。

v0.9.0 で実装した安全対策

上記のリスクを少しでも下げるため、v0.9.0 で安全対策を実装し、v0.9.2〜v0.9.3 でさらに安全寄りのデフォルト設計に強化しました。

1. タスク別ジッター(ランダム遅延)

タスクごとに jitterSeconds(最大遅延秒数)を設定できます。設定した秒数を上限としたランダム遅延を、タスク実行前に挿入します。

  • デフォルト 600秒(10分) で有効化済み。設定範囲は 60〜1800秒(1分〜30分)
  • 機械的な「毎日ちょうど 9:00:00」のようなアクセスパターンを緩和
  • グローバル設定 copilotScheduler.jitterSeconds がデフォルト値として機能し、タスク側で個別に上書き可能

2. 1日の実行回数上限

copilotScheduler.maxDailyExecutions(デフォルト: 12 回/日)で、1日あたりの全タスク合計の実行回数に上限を設けられます。

  • 1〜48 回の範囲でのみ設定可能0 = 無制限 は廃止。settings.json 直接編集でのバイパスも防止)
  • ローカル日付ベース でカウントするため、UTC 境界で意図しないリセットが起きません
  • 上限到達時は 1日1回だけ通知 されます(通知がうるさくならない設計です 🔕)

3. 最小 Cron 間隔の警告

30 分未満の Cron 式を設定すると、警告を表示します。

  • copilotScheduler.minimumIntervalWarning で ON/OFF 可能
  • 「5 分ごとに実行」のような過度に短いスケジュールからユーザーを守るための仕組みです

4. 初回有効化時の免責通知

初めて有効なタスクを作成/有効化した際に、1回だけ 通知を表示します。自動 API アクセスに伴うリスクをユーザーに周知するためのものです。

5. テンプレート同期

VS Code 起動時+24 時間ごとに、テンプレートファイル(.github/prompts/ やグローバルテンプレート)の内容をタスクの prompt に自動同期します。テンプレートを更新すれば、次回同期時にタスクのプロンプトも反映されます。

⚠️ 大事なこと:安全対策 ≠ 完全な保証

これらの対策は 「機械的なパターンを緩和する」ためのもの であり、アクセス制限されないことを 保証するものではありません

ツールを使っていなくても制限された事例がある以上、自動化ツールを使う側が「制限されません」とは言えません。
利用は自己責任 でお願いします 🙏

注意点・制約

  • VS Code が起動している必要がある: バックグラウンドサービスではないため、VS Code を閉じているとタスクは実行されません
  • Copilot の API 制限: 短時間に大量のタスクを実行すると API 制限に引っかかる可能性があります。詳しくは上記「⚠️ Copilot アクセス制限のリスクと安全対策」を参照してください
  • ライセンス: CC-BY-NC-SA-4.0(非商用利用のみ)

Tips: タスクスケジューラーとの組み合わせ

VS Code が起動していないと動作しないため、PC のタスクスケジューラー(Windows)や cron(Mac/Linux)で VS Code の起動 を自動化しておくと便利です。

例(Windows タスクスケジューラー):

  • トリガー: 毎日 8:55(スケジュール実行の 5 分前)
  • 操作: code "C:\path\to\workspace" を実行

こうしておけば、PC さえ起動していれば自動で VS Code が立ち上がり、スケジュールタスクが実行されます 🚀

参考リンク

  • Copilot Scheduler リポジトリ

  • VS Code Marketplace

  • Microsoft WorkIQ Overview - MS Learn

  • WorkIQ MCP リポジトリ

  • Bringing work context to your code in GitHub Copilot - Microsoft Developer Blog

  • v0.9.4 Release(ジッター最大30分に拡大)

  • GitHub Copilot Rate Limits - GitHub Docs

まとめ

Copilot Scheduler を使えば、GitHub Copilot のプロンプト実行を Cron 式でスケジューリングできます。

毎日のニュース収集、日報・週報の自動生成、TODO 確認など、ルーティン作業を AI に任せちゃいましょう! 🚀

特に WorkIQ MCP と組み合わせると、Microsoft 365 のデータを活用した自動化がさらに広がります。

ぜひ試してみてください~!


この記事が参考になったら、 いいねストック お願いします 🙏

22
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?