0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kilo Code(VS Code拡張)の外部通信を止めて、社内LLMだけで使う設定

0
Posted at

Kilo Code(VS Code拡張)の外部通信を止めて、社内LLMだけで使う設定

Kilo Code はオープンソース(MIT)の AI コーディング拡張ですが、初期状態ではテレメトリ送信、セッションの同期、自動更新、マーケットプレイス一覧の取得などで外部サーバーへ通信します。

この記事では、コードの改変や再ビルドなしで、環境変数と設定だけでこれらを止め、社内(オンプレ)の LLM サーバーだけを使う方法をまとめます。管理者権限は不要です。

  • 確認したバージョン:Kilo Code 7.8.25(Windows 11)
  • 古いバージョンでは一部の環境変数が存在しない場合があります
  • 非公式のまとめです。会社で使う場合は、社内の利用ルールに従ってください

1. VS Code の設定

settings.json に追加します(コマンドパレット →「基本設定: ユーザー設定を開く (JSON)」)。

"telemetry.telemetryLevel": "off",
"json.schemaDownload.enable": false
  • Kilo Code は VS Code のテレメトリ設定に従うため、これで Kilo 側のテレメトリ(PostHog)も止まります
  • json.schemaDownload.enable は、kilo.json を開いたときに VS Code がスキーマを外部から取得するのを防ぎます

2. ユーザー環境変数を設定する

PowerShell で以下を実行します(管理者権限不要、ユーザー単位の設定です)。

$vars = @{
  # 各種機能の無効化
  KILO_TELEMETRY_LEVEL         = "off"
  KILO_DISABLE_SESSION_INGEST  = "1"   # セッションのクラウド同期
  KILO_DISABLE_SHARE           = "1"   # セッション共有
  KILO_DISABLE_AUTOUPDATE      = "1"   # 自動更新
  KILO_DISABLE_MODELS_FETCH    = "1"   # models.dev からのモデル一覧取得
  KILO_DISABLE_PRESENCE        = "1"   # オンライン状態の通知
  KILO_DISABLE_LSP_DOWNLOAD    = "1"   # 言語サーバーの自動ダウンロード
  KILO_DISABLE_DEFAULT_PLUGINS = "1"   # デフォルトプラグイン
  KILO_DISABLE_EXTERNAL_SKILLS = "1"   # 外部スキル
  KILO_DISABLE_PROJECT_CONFIG  = "1"   # リポジトリ内の kilo.json を読まない(後述)
  # Kilo のサーバー宛て通信をローカルの未使用ポートに向ける
  KILO_MARKETPLACE_BASE_URL    = "http://127.0.0.1:9/api/marketplace"
  KILO_API_URL                 = "http://127.0.0.1:9"
  KILO_AI_GATEWAY_URL          = "http://127.0.0.1:9/api/gateway/v1"
}
$vars.GetEnumerator() | ForEach-Object {
  [Environment]::SetEnvironmentVariable($_.Key, $_.Value, "User")
}

設定後、VS Code を完全に終了してから起動し直してください(ウィンドウを閉じるだけでは反映されないことがあります)。

ポイント:最後の3つについて

マーケットプレイス一覧(api.kilo.ai/api/marketplace/...)とモデル一覧(ai-gateway.kilo.ai)は起動時に取得されますが、無効化用のスイッチがありません。

そこで、Kilo が公式に用意している接続先の上書き用環境変数を使い、接続先を 127.0.0.1:9(何も待ち受けていないローカルポート)に向けます。リクエストは PC の中で即座に失敗するので、外部には出ません。

実際に試したところ、起動時のマーケットプレイス取得は4件とも 127.0.0.1:9 に向かって失敗し、外部への通信は0件でした。社内 LLM との会話やファイル編集は問題なく動作します。

その代わり、以下は使えなくなります。

  • Kilo アカウントへのログイン
  • Kilo 提供のモデル(無料モデルを含む)
  • 拡張内のマーケットプレイス

3. 社内 LLM を設定する

グローバル設定ファイル %USERPROFILE%\.config\kilo\kilo.json を作成します。OpenAI 互換 API の場合の例です。

{
  "model": "intranet/my-model",
  "provider": {
    "intranet": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "社内LLM",
      "options": {
        "baseURL": "http://llm.example.local/v1",
        "apiKey": "xxxx"
      },
      "models": {
        "my-model": { "name": "My model", "tool_call": true }
      }
    }
  },
  "permission": {
    "bash": {
      "*": "ask",
      "curl *": "deny",
      "wget *": "deny",
      "Invoke-WebRequest *": "deny",
      "iwr *": "deny",
      "Invoke-RestMethod *": "deny",
      "git push *": "deny",
      "scp *": "deny",
      "ssh *": "deny"
    },
    "webfetch": "deny"
  }
}

baseURL、apiKey、モデル名は自分の環境に合わせて変更してください。

permission の部分は、AI がシェルコマンドを実行するときに毎回確認を求め、外部通信系のコマンドを禁止する設定です。上記の環境変数は Kilo 本体の通信には効きますが、AI が実行する curl などのコマンドは別プロセスなので、ここで防ぎます。リポジトリ内のファイルに仕込まれた指示(プロンプトインジェクション)で、データを外部に送らされるのを防ぐ意味があります。

4. 使うときの注意

  • Kilo アカウントにログインしない。 セッションのクラウド同期は、ログインしているときだけ動きます。
  • Kilo の無料モデルを使わない。 バージョンによっては、無料モデルの利用時にワークスペースのデータを送る機能があります(7.8.25 ではコード上で無効になっています)。
  • 知らないリポジトリを「信頼」しない。 リポジトリ内の kilo.json にはプラグイン(npm から自動インストールされて実行される)や MCP サーバー(コマンドを実行する)を書けます。VS Code のワークスペース信頼が無効な状態では Kilo は起動しないので、これが防御になります。KILO_DISABLE_PROJECT_CONFIG=1 を設定しておくと、リポジトリ内の設定ファイル自体を読まなくなります。
  • kilo serve を手動で起動しない。 KILO_SERVER_PASSWORD を設定せずに起動すると、ローカルサーバーが認証なしで動きます。VS Code 拡張経由なら、毎回ランダムなパスワードが自動で設定されるので問題ありません。

5. 確認方法

VS Code の「出力」パネルで Kilo 関連のログを選び、kilo.ai への接続を試みた記録がないか確認します。

環境変数が反映されているかは、新しく開いた PowerShell で確認できます。

[Environment]::GetEnvironmentVariable("KILO_API_URL", "User")

http://127.0.0.1:9 と表示されれば設定されています。

6. 元に戻す

"KILO_TELEMETRY_LEVEL","KILO_DISABLE_SESSION_INGEST","KILO_DISABLE_SHARE",
"KILO_DISABLE_AUTOUPDATE","KILO_DISABLE_MODELS_FETCH","KILO_DISABLE_PRESENCE",
"KILO_DISABLE_LSP_DOWNLOAD","KILO_DISABLE_DEFAULT_PLUGINS","KILO_DISABLE_EXTERNAL_SKILLS",
"KILO_DISABLE_PROJECT_CONFIG","KILO_MARKETPLACE_BASE_URL","KILO_API_URL","KILO_AI_GATEWAY_URL" |
  ForEach-Object { [Environment]::SetEnvironmentVariable($_, $null, "User") }

実行後、VS Code を再起動してください。

まとめ

対象 方法
テレメトリ VS Code の telemetry.telemetryLevel: off と KILO_TELEMETRY_LEVEL=off
セッション同期・共有 KILO_DISABLE_SESSION_INGEST、KILO_DISABLE_SHARE、ログインしない
自動更新・各種ダウンロード KILO_DISABLE_*
マーケットプレイス・モデル一覧 KILO_*_URL で 127.0.0.1:9 に向ける
AI が実行するコマンド kilo.json の permission で確認・禁止
悪意あるリポジトリ ワークスペース信頼と KILO_DISABLE_PROJECT_CONFIG

なお、AI に送ったプロンプトやコードは、設定した LLM サーバーには当然送られます。社内のサーバーを指定していることを必ず確認してください。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?