VSCodium — 去微软遥测的 VS Code 干净构建
是什么
VSCodium 是 VS Code 源码(MIT 许可)的自动化干净构建产物。日常类比:超市卖的可乐和自家用同一份配方在家熬的可乐——配料表一致,但去掉了厂家的防腐剂和品牌包装。它的核心不是另写一个编辑器,而是一个 CI 脚本仓库:每天拉一次微软的 vscode 源码,把品牌定制和遥测端点的 product.json 换成中性版,再跑 vscode 自带的 gulp 构建脚本,输出 deb / rpm / dmg / msi / tarball。
你装上后看到的还是那个熟悉的界面:
brew install --cask vscodiumcodium . # 命令叫 codium 不是 code启动后默认打开的 marketplace 不是微软的 marketplace.visualstudio.com,而是社区版 open-vsx.org;右下角不会再有”使用情况和崩溃数据正在发送”的小字。版本号与官方 VS Code 同步——上游今天发 1.96.0,VSCodium 今晚或明早就跟上 1.96.0。
为什么重要
不理解 VSCodium 的定位,下面这些事都没法解释:
- 为什么 VS Code 源码 MIT 但官方下载的二进制不是 MIT 构建——微软在自家构建里加了私有 license 包(品牌、字体、CLA 限制)
- 为什么”零遥测”在金融、医疗、政府这些受监管行业是一条硬性合规线,普通 VS Code 过不了审
- 为什么 VSCodium 不是 fork 而只是”build 仓库”——fork 意味着要维护代码差异,build 仓库只维护构建参数差异,长期成本天差地别
- 为什么有人愿意接受”装不了 Pylance / Remote-SSH”的代价,也要换掉官方 VS Code
核心要点
VSCodium 的整套机制可以拆成 三块:
-
它不是 fork,是构建脚本:仓库里没有 src/,只有 build.sh / patch/ / product.json。脚本的工作流程是
git clone microsoft/vscode → 应用 patch → 执行 yarn gulp vscode-darwin-x64 → 签名打包。类比:不是改菜谱,是用同一份菜谱但换掉一两味调料。这样上游升级几乎零成本——除非微软改了构建脚本本身。 -
product.json 是开关总闸:vscode 源码里 product.json 控制了所有品牌和服务端点——logo、产品名、telemetry endpoint、marketplace URL、内置扩展白名单、Settings Sync server。VSCodium 提供一份”中性版” product.json 直接覆盖,不用动一行 src/ 代码就把遥测和品牌全部抹掉。这是它能做到”零代码差异”的关键。
-
Marketplace 替代是 open-vsx.org:微软的 marketplace 协议禁止非官方 VS Code 客户端连接(ToS 第 1.b 条)。VSCodium 默认指向 Eclipse 基金会维护的 open-vsx.org,绝大部分主流扩展(ESLint / Prettier / GitLens / Vim / Rust Analyzer)作者都同步发布两边。少数微软自家扩展(Pylance / Remote-SSH / C++)只发到官方 marketplace,且 license 内置了”仅限官方 VS Code”检查,VSCodium 装上会报错。
三块加起来就是 VSCodium 的全部——一个编辑器项目里没有编辑器代码。
实践案例
案例 1:在 macOS 切换默认编辑器
brew install --cask vscodium# 启动命令是 codiumcodium ~/projects/foo
# 把 git 默认编辑器换掉git config --global core.editor 'codium --wait'切换前先把 VS Code 的 settings.json 复制过去:
cp -r "$HOME/Library/Application Support/Code/User" \ "$HOME/Library/Application Support/VSCodium/User"扩展需要重装一次——VSCodium 的扩展目录是 ~/.vscode-oss/extensions/,不是 ~/.vscode/extensions/。
案例 2:在受监管环境部署内网 marketplace
合规审查通过 VSCodium(零遥测 + MIT)后,扩展也要走内网。Eclipse 提供 open-vsx 的 self-host 镜像:
docker run -p 8080:8080 ghcr.io/eclipse/openvsx-server:latest# 然后给 VSCodium 改 product.json 指向内网team 配一份 settings.json 模板下发,所有人扩展走内网 registry,再不会有”装个扩展把代码索引发到外网”的合规风险。
案例 3:用作 AI 编程插件的开发基线
做 continue / claude-code / Cursor 这类 AI 编程插件的人,常拿 VSCodium 当干净测试基线:
- 没有官方 marketplace ToS 限制——可以自由发布到 open-vsx
- 没有遥测干扰——能精确测自家插件的网络流量
- 命令行叫 codium,与官方 code 共存不冲突,开发和日常用机分离
案例 4:验证 VSCodium 真的零遥测
不要光信 README,自己抓包验证:
# macOS:装 mitmproxy 当系统代理brew install mitmproxymitmproxy -p 8080# 把系统 HTTP/HTTPS 代理指向 127.0.0.1:8080,启动 codium,操作 5 分钟会看到 VSCodium 只在以下场景发请求:扩展安装走 open-vsx.org、更新检查走 github.com/VSCodium/vscodium/releases。对比官方 VS Code 启动后会向 vortex.data.microsoft.com / mobile.events.data.microsoft.com 发数十个 telemetry beacon——这一对比就是合规审查最有说服力的证据。
踩过的坑
-
微软自家扩展装不了:Pylance / Remote-SSH / Remote-Containers / Live Share / C++ IntelliSense 这五个最常用的扩展 license 写死”仅限 VS Code 官方构建”,VSCodium 装上会报 “this extension is not compatible”。代替方案:Pylance → Pyright(同公司的开源版);Remote-SSH → Open Remote SSH(社区 fork);C++ → clangd 扩展。
-
改 product.json 指回官方 marketplace 违反 ToS:网上很多教程教把 VSCodium 的 marketplace URL 改回 marketplace.visualstudio.com 来装 Pylance——能跑,但违反微软的 marketplace 服务条款,团队部署不要这么做,个人用机自负风险。
-
远程开发握手必须两端版本一致:用 VSCodium 通过 SSH 连远端,远端 server 也得是 VSCodium 的 server build(codium-server)。如果远端已经装过官方 vscode-server,会出现连接成功但功能错乱、或直接握手失败。解法:删掉远端的
~/.vscode-server/,让 VSCodium 重新推它自己的 server。 -
Settings Sync 要么不可用要么用第三方:官方 Settings Sync 走微软账号,VSCodium 没接入。要么不用,要么装 Settings Sync (Shan Khan) 这个老牌社区扩展走 GitHub Gist 同步——但维护节奏跟不上官方。
适用 vs 不适用场景
适用:
- 隐私敏感个人用户——拒绝任何遥测但又想保持 VS Code 的生态体验
- 受监管行业(金融 / 医疗 / 政府)——合规审查需要 100% MIT 构建链
- AI 编程插件开发者——需要干净基线测自家插件
- 内网开发环境——配合 self-host open-vsx 形成闭环
不适用:
- 重度依赖 Pylance / Remote-SSH / Live Share 的 Python / 远程开发场景——直接用官方 VS Code 更省心
- 需要 Settings Sync 跨设备同步——官方 sync 不支持,第三方扩展体验降级
- 团队全员 onboarding 时间紧——切换需要重装扩展、重配命令、培训”为什么不能装 Pylance”
历史小故事(可跳过)
- 2015 年:微软把 VS Code 源码以 MIT 许可开源,但官方下载的二进制是用包含微软专有组件的构建脚本打的——logo / 品牌 / 部分内置扩展不在 MIT 里。
- 2017 年前后:社区维护者发现”自己重新构建一份干净的 VS Code”是可行的——只要把 product.json 换掉就行。VSCodium 项目在 GitHub 上线,最初是几个志愿者的脚本仓库。
- 2019 年起:随着 GitHub 被微软收购、Telemetry 默认开启,VSCodium 用户激增。Homebrew / Scoop / WinGet 都把它收进了官方仓库。
- 现在:仓库 24k stars,项目核心仍然只有几百行 shell + 几份 patch——它最了不起的不是技术,是”把构建脚本本身做成一个长期维护的项目”这个洞察。
学到什么
- 开源不等于开源构建——MIT 许可保护源码,但官方二进制可能是混进了专有组件的版本;想拿到纯净版需要自己(或社区)重新构建
- “build 仓库”是一种被忽视的项目形态——不写代码、只维护构建参数差异,长期成本远低于 fork
- product.json 这种”集中配置入口”是软件可定制性的关键设计——一份文件控制所有品牌和服务端点,下游能用极小成本做衍生版本
- 生态依赖才是切换成本的真相——VSCodium 技术上 100% 兼容,但 Pylance / Remote-SSH 这几个扩展的 license 锁就足以挡住一半用户
延伸阅读
- 官方仓库:VSCodium/vscodium(README 把所有 FAQ 都答了)
- open-vsx 替代 marketplace:open-vsx.org
- 微软 vscode 源码:microsoft/vscode(理解 product.json 在源码里的位置)
- monaco-editor —— VS Code 的编辑器内核,也是 VSCodium 跑起来后你看到的那个
- claude-code —— 这类 AI 编程插件常拿 VSCodium 当干净基线测
关联
- monaco-editor —— VSCodium 内嵌的就是 Monaco 同款编辑器内核
- codemirror —— 浏览器里的另一条编辑器路线,更轻但功能更克制
- claude-code —— AI 编程插件的代表,常用 VSCodium 测试发布
- continue —— 开源 AI 编程助手,原生支持 open-vsx 发布
- biome —— JS/TS 工具链,VSCodium 上装它体验和官方一致
- universal-ctags —— 没有 Pylance 时的轻量替代思路
反向链接
- biome —— Biome — JS/TS 工具链一体化(Rust 写的 linter+formatter)
- claude-code —— Claude Code — Anthropic 终端编程助手
- codemirror —— CodeMirror — 编辑器不是一个类,是一组扩展的合奏
- continue —— Continue — 让 AI code review 跑成 git 跟踪的 PR status check
- monaco-editor —— monaco-editor — 把 VSCode 编辑器搬进浏览器的 SDK