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 サーバーには当然送られます。社内のサーバーを指定していることを必ず確認してください。