1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub Copilot が使えない環境でも諦めない!ローカル LLM 対応 OSS コード生成ツール比較と情報漏洩リスク調査

Last updated at Posted at 2025-12-04

背景

会社において

  • GitHub Copilot(GitHub Free)は利用できません
  • Git Hub Copilot Business/Enterprise では BYOK禁止
    • Bring Your Own Key (Model を使うには って意味で)

ってのはよくあることかな?と

理由はシンプルで、ライセンスの制約です。

企業利用では GitHub Copilot Business または Enterprise が必要ですが、クラウドサービスを利用できないセキュリティポリシーの環境では、そもそも選択肢に入りません。

:thinking: 「ローカル LLM を使った OSS のコード生成ツールはどうだろう?」

ってのは誰もが思うところで、OSS コード生成ツール を調査した
企業利用で最も気になる 情報漏洩リスク については、continue.dev AI Toolkit だけコード調査もしてみた

この調査は、GitHub Copilot を使ってほぼ行いました。

概要

  1. 調査対象: OSS コード生成ツール 10 種類
  2. 調査観点: 外部通信・テレメトリ・オプトアウト可否・安全性
  3. 結論: AI Toolkit for VS Code (Microsoft) が最もバランスが良さそう
    • Continue.dev vs AI Toolkit で二択かなぁと思ったので、他がもっと良い可能性はありますが :sweat_smile:

調査結果サマリー

以下概要は、Copilot に調査させて、上位二つのみを、コードまで精査させた。

ツール名 外部通信 テレメトリ オプトアウト 安全性評価
AI Toolkit (Microsoft) ⚠️ あり Microsoft標準 ✅ 可能 🟢 高
Continue.dev ⚠️ あり PostHog, Sentry ✅ 可能 🟡 中
TabbyML ⚠️ あり 匿名使用統計 ✅ 可能 🟢 高
FauxPilot ✅ なし なし - 🟢 高
Aider ⚠️ あり 匿名使用統計 ✅ 可能 🟡 中
Roo Code ⚠️ あり 匿名使用統計 ✅ 可能 🟡 中
Kilocode ⚠️ あり 匿名使用統計 ✅ 可能 🟡 中
VoidGPL ✅ なし なし - 🟢 高
Tabby ⚠️ あり 匿名使用統計 ✅ 可能 🟢 高
PearAI 🔍 要確認 不明 不明 🔴 要調査

詳細調査: 情報漏洩リスクについて

最重要ポイント: Query(プロンプト・コード)は送信されるのか?

結論から言うと、主要ツールはいずれもコード内容を外部に送信していないみたい
OSS って流石だなって思うところ

テレメトリ(使用統計)はデフォルトで有効なツールが多いため、気になる場合はオプトアウト設定が必要
まぁ、この辺は、オプトインにしても、誰も opt-in してくれないからしょうがないかもな・・と。


🥇 おすすめ: AI Toolkit for VS Code (Microsoft)

選定理由

観点 評価
開発元の信頼性 ✅ Microsoft 公式
テレメトリ ✅ VS Code 標準設定で一括管理
コード送信 ✅ なし(プロンプト・コードは収集されない)
ローカル LLM 対応 ✅ Ollama 連携で完全ローカル運用可
オプトアウト ✅ VS Code 設定で簡単に無効化

基本情報

項目 内容
GitHub https://github.com/microsoft/vscode-ai-toolkit
VS Code Marketplace https://marketplace.visualstudio.com/items?itemName=ms-windows-ai-studio.windows-ai-studio
ライセンス MIT

テレメトリについて

公式 README より:

The AI Toolkit for Visual Studio Code collects usage data and sends it to Microsoft to help improve our products and services.

重要: サードパーティサービス(PostHog 等)への送信はなく、Microsoft 直接です。

ソースコードによる詳細調査

AI Toolkit はオープンソースではあるものの、TypeScript コンパイル済みの拡張機能として配布されているため、テレメトリ実装の詳細はリポジトリ内のドキュメントとメタデータから確認できる

公式ドキュメント(README.md):

## Data and telemetry

The AI Toolkit for Visual Studio Code collects usage data and sends it to Microsoft 
to help improve our products and services. Read our privacy statement to learn more. 
This extension respects the `telemetry.enableTelemetry` setting which you can learn 
more about at disable telemetry reporting.

特徴:

  • VS Code 標準のテレメトリフレームワーク(@vscode/extension-telemetry)を使用
  • telemetry.telemetryLevel 設定を尊重
  • サードパーティサービスへの送信なし(Microsoft 直接)
  • プロンプト・コード内容は収集対象外

オプトアウト方法

VS Code の settings.json に以下を追加:

{
  "telemetry.telemetryLevel": "off"
}

または、設定画面で:

  1. Ctrl + , で設定を開く
  2. 「telemetry」で検索
  3. 「Telemetry: Telemetry Level」を「off」に設定

ローカル LLM との連携

AI Toolkit は Ollama と連携できるため、完全ローカル環境での運用が可能です。

AI Toolkit + Ollama + ローカル LLM(Llama, Phi, etc.)
= 外部通信ゼロのコード生成環境

🥈 次点: Continue.dev

基本情報

項目 内容
GitHub https://github.com/continuedev/continue
VS Code Marketplace https://marketplace.visualstudio.com/items?itemName=Continue.continue
ライセンス Apache 2.0

機能面での強み

  • 任意の LLM(Ollama, OpenAI, Anthropic, OSS モデル)に接続可能
  • カスタマイズ性が高い
  • 活発なコミュニティ

テレメトリの詳細

GitHub のソースコードを調査した結果、以下の外部通信ポイントを確認:

  1. PostHog (app.posthog.com) - 匿名使用統計
  2. Sentry - エラーレポート(現在は Continue チームメンバーのみ有効)

重要: プロンプトやコード内容は送信されません。

公式ドキュメントより:

Suggestion Interactions: Whether you accept or reject suggestions (excluding the actual code or prompts involved).

ソースコードによる詳細調査

Continue.dev は完全にオープンソースであり、テレメトリ実装を詳細に確認できます。

1. PostHog テレメトリ

メインの実装ファイル:

// PostHog クライアント初期化(API Key はパブリック)
static async getTelemetryClient(): Promise<PostHogType | undefined> {
  try {
    const { PostHog } = await import("posthog-node");
    return new PostHog("phc_JS6XFROuNbhJtVCEdTSYk6gl5ArRrTNMpCcguAXlSPs", {
      host: "https://app.posthog.com",
    });
  } catch (e) {
    console.error(`Failed to setup telemetry: ${e}`);
  }
}

送信されるデータの構造:

static async capture(
  event: string,
  properties: { [key: string]: any },
  sendToTeam: boolean = false,
  isExtensionActivationError: boolean = false,
) {
  try {
    const augmentedProperties = {
      ...properties,
      os: Telemetry.os,
      extensionVersion: Telemetry.ideInfo?.extensionVersion,
      ideName: Telemetry.ideInfo?.name,
      ideType: Telemetry.ideInfo?.ideType,
    };
    // ... コード・プロンプトは含まれない
  }
}

2. Sentry エラーレポート

Sentry DSN 定義:

export const SENTRY_DSN =
  "https://fe99934dcdc537d84209893a3f96a196@o4505462064283648.ingest.us.sentry.io/4508184596054016";

Sentry 初期化と匿名化処理:

// beforeSend でセンシティブデータを除去
beforeSend(event: Event) {
  // First apply anonymization
  const anonymizedEvent = anonymizeSentryEvent(event);
  if (!anonymizedEvent) return null;
  
  // Add basic properties similar to PostHog telemetry
  if (!anonymizedEvent.tags) anonymizedEvent.tags = {};
  // ... OS情報、IDE情報のみ追加
}

重要: Sentry は現在 Continue チームメンバーのみ に有効化されています:

// Sentry depends on both allowAnonymousTelemetry and hasContinueEmail
if (allowAnonymousTelemetry && hasContinueEmail) {
  // Initialize Sentry (new for GUI - enhanced React setup)
  Sentry.init({
    // ... 一般ユーザーには初期化されない
  });
}

3. テレメトリ無効化の確認

環境変数チェック:

get isEnabled() {
  return process.env.CONTINUE_ALLOW_ANONYMOUS_TELEMETRY !== "0";
}

テレメトリ無効時の処理:

if (allowAnonymousTelemetry) {
  posthog.init("phc_JS6XFROuNbhJtVCEdTSYk6gl5ArRrTNMpCcguAXlSPs", {
    api_host: "https://app.posthog.com",
    disable_session_recording: true,
    autocapture: false,
    capture_pageleave: false,
    capture_pageview: false,
  });
  posthog.identify(window.vscMachineId);
  posthog.opt_in_capturing();
} else {
  // Disable PostHog
  posthog.opt_out_capturing();
}

オプトアウト方法

方法1: VS Code 設定(推奨)

{
  "continue.telemetryEnabled": false
}

方法2: 環境変数

[Environment]::SetEnvironmentVariable("CONTINUE_ALLOW_ANONYMOUS_TELEMETRY", "0", "User")

方法3: config.json

// ~/.continue/config.json
{
  "allowAnonymousTelemetry": false
}

AI Toolkit との比較

項目 AI Toolkit Continue.dev
開発元 Microsoft Continue Inc.
テレメトリ送信先 Microsoft 直接 PostHog(サードパーティ)
オプトアウト VS Code 標準設定 専用設定が必要
安全性評価 🟢 高い 🟡 中程度

🥉 自己ホスト派向け: TabbyML

完全に自己ホストしたい場合は TabbyML がおすすめです。

特徴

  • 自己ホスト型コード補完サーバー
  • VS Code プラグインあり
  • エンタープライズ向けセキュリティ機能

オプトアウト方法

クライアント側:

# ~/.tabby-client/agent/config.toml
[anonymousUsageTracking]
disable = true

サーバー側:

export TABBY_DISABLE_USAGE_COLLECTION=1

ツール一覧と公式リンク

ツール名 ライセンス GitHub / 公式
AI Toolkit MIT GitHub / Marketplace
Continue.dev Apache 2.0 GitHub / Marketplace
TabbyML Apache 2.0 GitHub
FauxPilot MIT GitHub
Aider MIT GitHub
Roo Code MIT GitHub
Kilocode MIT GitHub
VoidGPL GPL GitHub

あとがき

やっぱり、Microsoft 製ってところが安心してしまう、自分の場合は

  • ✅ Microsoft 公式で企業利用に適した信頼性
  • ✅ VS Code 標準テレメトリ設定で一括管理
  • ✅ Ollama 連携で完全ローカル運用可能
  • ✅ Query(プロンプト・コード)は外部送信されない

あとは、Ollama or Jan.ai で gpt-oss-120b を満足に動かせる環境を作りたいわけだけど、お金の問題ですね・・ :cry:

最後に、注意事項

:warning: テレメトリはデフォルトで有効なツールが多い

導入前に必ず以下を確認しよう:

  1. 何が収集されるのか(コード内容?使用統計のみ?)
  2. どこに送信されるのか(自社サーバー?サードパーティ?)
  3. オプトアウトは可能か
    • 当然、オプトアウトは検討した方が良いとは思う。自宅じゃないなら

参考リンク


1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?