你打开 Cursor 的扩展侧栏,搜「Prettier」「ESLint」或者那个你急用的偏门 language server——要么 spinner 一直转,要么直接「network error」,要么列表空空。又或者扩展找到了,点 Install 没反应。Cursor 是 VS Code 的 fork,但商店这边并不一致:Cursor 在合规层面不能用 Microsoft 的 Visual Studio Marketplace,默认走 Open VSX。商店出问题几乎只有这几种:gallery URL 写错;公司代理把 gallery 域名拦了;Open VSX 自己慢或 5xx;或者那个扩展只在 Microsoft 商店有、Open VSX 没镜像。每一种都有干净的解。
常见原因
按命中率从高到低。
1. 扩展只在 Microsoft 商店,Open VSX 没有
很多热门扩展(尤其 Microsoft 自己发布的,如 Pylance、Remote-SSH、C#)不在 Open VSX 上。搜索为空就是因为它根本不在 Cursor 用的那个目录里。
怎么判断:去 open-vsx.org 搜扩展名,没结果就是 Microsoft 独占。
2. 公司代理或防火墙拦了 open-vsx.org
扩展面板会向 open-vsx.org 和 CDN 发 HTTPS 请求。代理拦了哪一个,面板要么挂、要么报网络错误。
怎么判断:集成终端跑 curl -I https://open-vsx.org/api/-/search?query=prettier。回 403、超时、connection refused——就是代理。
3. 自定义 gallery URL 配错了
设置里可以覆盖 extensions.gallery.serviceUrl。某次(你或某次「修复」尝试)写了个错 URL,gallery 返回非法 JSON 或 404。
怎么判断:打开 Cursor user 设置 JSON,搜 extensions.gallery。任何不同于 Open VSX 默认的自定义 URL 都可疑。
4. Open VSX 在故障
它的基础设施比微软商店小,偶尔有短时 5xx。
怎么判断:去 status.open-vsx.org 或 curl 搜索端点。大家都 5xx——等一等。
5. Cursor 缓存了旧的空结果
之前那次因为瞬时错误搜出来是空的,结果可能被缓存到下次强制刷新前。
怎么判断:点扩展面板顶部刷新图标,结果出现了——就是缓存陈旧。
6. .vsix 发布了但 engine 版本跟 Cursor 对不上
Cursor 的 engines.vscode 兼容性接近但不完全等同。扩展要 vscode ^1.95,Cursor 底层引擎更旧就装不上。
怎么判断:从磁盘装 .vsix 试试。报错提到 engine 兼容性——就是它。
开始前
- 先确认你要的扩展在 Open VSX 还是只在 Microsoft 商店,绕法不同。
- 准备一份 .vsix 下载作为兜底(大多数扩展能手动装)。
- 清楚自己的网络环境:家里、VPN、公司代理。
需要收集的信息
- Cursor 版本(Help → About)。
- OS 和网络环境(VPN、proxy)。
- 同一台机器上浏览器能不能打开
https://open-vsx.org。 https://open-vsx.org/api/-/search?query=prettier的 curl 输出。- user 设置里当前的
extensions.gallery.*值。 - 扩展面板里精确的报错文案。
一步一步修复
Step 1:刷新扩展面板
点扩展侧栏顶部的刷新图标。如果首次加载时网络刚好抖了一下,这一下能把缓存的空状态清掉。
Step 2:核对 gallery URL
打开 Cursor user 设置 JSON。看到自定义的 extensions.gallery.* 就删掉、回到 Cursor 默认:
{
"extensions.gallery.serviceUrl": "https://open-vsx.org/vscode/gallery",
"extensions.gallery.itemUrl": "https://open-vsx.org/vscode/item"
}
要么整条删了,要么粘上面这两个值。reload 窗口。
Step 3:终端验一下 gallery
Cursor 集成终端:
curl -sI https://open-vsx.org/api/-/search?query=prettier | head -1
回 200 OK——gallery 通。回 403、5xx、或没响应——网络或上游问题。
Step 4:临时绕开代理
怀疑代理,切手机热点重载扩展面板。这下列表能加载——让 IT 把 open-vsx.org 和它的 CDN host 都加进允许列表。长期方案:公司内 Open VSX 镜像。
Step 5:从 .vsix 手动装
Open VSX 没收录的扩展,从发布者 GitHub Releases 或它的官网把 .vsix 下载下来,在 Cursor 里 Command Palette → 「Extensions: Install from VSIX」。完全绕开 gallery。
Step 6:指向自建或镜像 gallery
防火墙严的团队可以自建一个 Open VSX 镜像,然后改设置:
{
"extensions.gallery.serviceUrl": "https://your-mirror.internal/vscode/gallery",
"extensions.gallery.itemUrl": "https://your-mirror.internal/vscode/item"
}
要 ops 支持,但对受限网络是最稳的长期方案。
Step 7:为 engine 兼容性升降 Cursor
某个扩展嫌 engines.vscode 不匹配,去 Help → About 看 Cursor 底层 VS Code 引擎版本。升 Cursor(拿更新引擎)或装一个匹配你当前引擎的旧版扩展。
怎么验证修好了
- 搜「Prettier」这种公认大牌扩展,面板有结果。
- 装一个,确认它被激活(status bar 入口、command palette 命令等)。
- reload 窗口,扩展扛得住。
- 重开一次搜索,面板 3 秒内出结果。
长期预防
- 优先选 Open VSX 上有的扩展,开箱即用最省事。
- 真依赖的 Microsoft 独占扩展,按 Cursor 版本归档一份
.vsix,断网也能重装。 - 跟着 Cursor 发布节奏,升级前确认 engine 兼容性。
- 团队建一个 Open VSX 镜像;别在防火墙后面依赖
marketplace.visualstudio.com。 - 把 gallery URL 和允许列表要求写进团队 onboarding 文档。
容易踩的坑
- 把 Microsoft 商店 URL 粘到
extensions.gallery.serviceUrl里——非 Microsoft IDE 在合约层就用不了。 - 装完扩展就升 Cursor 不复查兼容性,engine 一变扩展会被静默禁用。
- 把搜不到当成「扩展不存在」。可能只是它只在 Microsoft 商店有。
- 忘了
.vsix装的扩展不走 gallery、不会自动更新,得自己手动刷。 - 代理只允许
open-vsx.org,没允许它的 CDN host。两个都要通。
常见问答
- Cursor 为什么不用 Microsoft 商店? Microsoft 的条款限定 gallery 只给 Microsoft 自家产品用。Cursor 是 fork,默认走 Open VSX 才合规。
- Cursor 上能装 Pylance 或 Remote-SSH 吗? 官方意义上不行,两者都是 Microsoft 独占。Cursor 自己有部分替代实现,看文档。
- 手动装的 .vsix 怎么更新? 重新下载新版本再 Install from VSIX 一次。sideload 的扩展没自动更新。
- Open VSX 有人维护吗? 有,Eclipse 基金会。主流扩展覆盖良好,但不全。
- .code-workspace 里推荐的扩展会装上吗? 只装你当前 gallery 上有的,少的会作为 warning 提示。
相关
标签: #Cursor #extensions #排查 #排查