背景
Kilo Code 有云端 Session 功能。使用 Kilo 免费模型、Cloud Agent、Fork Session 等功能时,会涉及 Kilo 的云端服务。
如果只是使用自己配置的 API Key,例如 OpenAI、Anthropic、Gemini、OpenRouter、本地 Ollama、LM Studio、LiteLLM 等,有些情况下并不希望 Kilo Code 把会话同步到 Kilo 云端。
Kilo Code 源码中提供了一个环境变量开关:
KILO_DISABLE_SESSION_INGEST=1
它用于禁用 Session Ingest,也就是会话上传 / 会话同步相关逻辑。
如果还想禁用分享相关功能,可以同时设置:
KILO_DISABLE_SHARE=1
需要注意的区别
1. 关闭 Session 上传,不等于模型请求完全本地化
如果你使用的是 OpenAI、Anthropic、Gemini、OpenRouter 等远程模型,请求内容仍然会发送给对应模型服务商。
关闭 KILO_DISABLE_SESSION_INGEST 的目标是:
不把 Kilo Code 的 Session 同步到 Kilo 云端
它不是:
让所有 AI 请求都不出本机
如果想让代码和对话内容完全不出本机,应使用本地模型,例如 Ollama、LM Studio、vLLM 等。
2. 使用 Kilo 免费模型时,通常不能避免 Kilo 云端
如果你使用 Kilo 免费模型、Kilo Gateway、Kilo Auto、Cloud Agent 或 Fork Session,这些功能本身就依赖 Kilo 云端服务。
可以简单理解为:
使用 Kilo 免费模型 = 接受 Kilo 云端能力
使用自己 API Key = 可以尝试禁用 Kilo 云端 Session 上传
3. 不要只在 VS Code / Windsurf 的集成终端里 export
在终端里执行:
export KILO_DISABLE_SESSION_INGEST=1
通常只影响当前终端和它启动的子进程。
如果 VS Code / Windsurf 是从 Dock、Spotlight、Finder、开始菜单等图形界面启动的,Kilo Code 扩展进程不一定能读取到这个环境变量。
所以要设置“全局 GUI 环境变量”。
macOS 设置方法
方法一:当前登录会话内设置
打开“终端”,执行:
# 关闭 Session 上传
launchctl setenv KILO_DISABLE_SESSION_INGEST 1
# 关闭分享
launchctl setenv KILO_DISABLE_SHARE 1
然后:
- 完全退出 VS Code / Windsurf
- 重新打开 VS Code / Windsurf
- 重新启动 Kilo Code 会话
检查是否设置成功:
launchctl getenv KILO_DISABLE_SESSION_INGEST
launchctl getenv KILO_DISABLE_SHARE
正常应输出:
1
1
取消设置:
# 取消 Session 上传
launchctl unsetenv KILO_DISABLE_SESSION_INGEST
# 取消分享
launchctl unsetenv KILO_DISABLE_SHARE
然后重新打开 VS Code / Windsurf。
注意:launchctl setenv 通常只对当前登录会话生效。重启电脑后可能失效,需要重新执行。
方法二:登录后自动设置
如果希望每次登录后自动设置,可以使用 LaunchAgent。
先创建脚本:
mkdir -p ~/.config/kilo-env
cat > ~/.config/kilo-env/set-kilo-env.sh <<'EOF'
#!/bin/bash
/bin/launchctl setenv KILO_DISABLE_SESSION_INGEST 1
/bin/launchctl setenv KILO_DISABLE_SHARE 1
EOF
chmod +x ~/.config/kilo-env/set-kilo-env.sh
创建 LaunchAgent:
mkdir -p ~/Library/LaunchAgents
cat > ~/Library/LaunchAgents/local.kilo.env.plist <<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.kilo.env</string>
<key>ProgramArguments</key>
<array>
<string>/Users/YOUR_USERNAME/.config/kilo-env/set-kilo-env.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
EOF
把文件中的:
/Users/YOUR_USERNAME
改成你的真实用户目录,可以用下面命令自动替换:
perl -pi -e "s|\Q/Users/YOUR_USERNAME\E|$ENV{HOME}|g" ~/Library/LaunchAgents/local.kilo.env.plist
加载 LaunchAgent:
launchctl unload ~/Library/LaunchAgents/local.kilo.env.plist 2>/dev/null
launchctl load ~/Library/LaunchAgents/local.kilo.env.plist
检查:
launchctl getenv KILO_DISABLE_SESSION_INGEST
launchctl getenv KILO_DISABLE_SHARE
正常应输出:
1
1
之后完全退出并重新打开 VS Code / Windsurf。
Windows 设置方法
方法一:图形界面设置
-
打开开始菜单,搜索:
环境变量 -
打开:
编辑账户的环境变量 -
在“用户变量”区域点击“新建”。
-
添加关闭session上传的变量:
变量名:KILO_DISABLE_SESSION_INGEST 变量值:1 -
如果想关闭共享,添加关闭共享的变量:
变量名:KILO_DISABLE_SHARE 变量值:1 -
点击确定保存。
-
完全退出 VS Code / Windsurf,然后重新打开。
必要时注销 Windows 账户后重新登录。
方法二:PowerShell 命令设置
打开 PowerShell,执行:
# 关闭 Session 上传
setx KILO_DISABLE_SESSION_INGEST 1
# 关闭分享
setx KILO_DISABLE_SHARE 1
然后:
- 关闭所有 VS Code / Windsurf 窗口
- 重新打开 VS Code / Windsurf
- 必要时注销 Windows 后重新登录
检查是否设置成功:
重新打开一个 PowerShell 窗口,执行:
echo $env:KILO_DISABLE_SESSION_INGEST
echo $env:KILO_DISABLE_SHARE
正常应输出:
1
1
取消设置:
[Environment]::SetEnvironmentVariable("KILO_DISABLE_SESSION_INGEST", $null, "User")
[Environment]::SetEnvironmentVariable("KILO_DISABLE_SHARE", $null, "User")
然后关闭并重新打开 VS Code / Windsurf。必要时注销后重新登录。
使用 VS Code / Windsurf 时的建议配置
如果使用自己配置的 API Key,并且不希望上传 Kilo Session,建议:
不使用 Kilo 免费模型
不使用 Kilo Gateway / Kilo Auto
不使用 Cloud Agent
不点击 Fork Session / Continue in Cloud Agent
设置 KILO_DISABLE_SESSION_INGEST=1
设置 KILO_DISABLE_SHARE=1
使用自己的 OpenAI / Anthropic / Gemini / OpenAI Compatible Provider
如果使用本地模型,可以配置为:
Provider: OpenAI Compatible
Base URL: http://127.0.0.1:11434/v1
API Key: ollama
Model: 你的本地模型名
如何验证是否仍有上传
设置完成后,可以用网络工具观察是否仍访问:
ingest.kilosessions.ai
常见工具包括:
macOS: LuLu、Little Snitch、Proxyman、Charles
Windows: Windows 防火墙、Fiddler、Proxyman、Wireshark
如果设置后仍然访问 ingest.kilosessions.ai,可能有两种情况:
- VS Code / Windsurf 没有继承环境变量
- Kilo Code 的某部分逻辑没有走这个开关
此时建议额外在防火墙中阻断:
ingest.kilosessions.ai # kilo session上传
api.kilo.ai # kilo API服务
app.kilo.ai # kilo Web界面
*.kilo.ai # kilo相关域名
*.cloudflarestorage.com # kilo存储服务
注意:如果阻断这些域名,Kilo 免费模型、Cloud Agent、Fork Session、云端 Session 等功能可能无法使用。
推荐工作流
可以分成两种使用模式。
模式一:普通任务,使用 Kilo 免费模型
适合非敏感代码、临时问题、普通问答。
允许 Kilo 云端服务
允许 Kilo 免费模型
允许云端 Session
模式二:私有项目,使用自己的 API Key
适合私有仓库、公司代码、敏感上下文。
使用自己的 API Key
禁用 Session Ingest
禁用 Share
不使用 Cloud Agent
不使用 Fork Session
必要时用防火墙阻断 Kilo 云端域名
如果要求代码和对话完全不出本机,应使用本地模型,并阻断所有不必要的外部网络请求。