一、问题背景:为什么会报「地区不可用」?
很多朋友用 OpenCode 时,想尝试一下 Muse Spark 模型(Spark 1.2 / Spark 1.3),却在使用时看到红色提示:
This model is not available in your country.
这通常有两个原因:
所以,问题的核心在于让 OpenCode 的网络请求按照配置的路径发出。下面按场景给你拆解。
二、方法一:配置网络请求路由环境变量(常用)
第 1 步:确认你的网络代理信息
确保你的本地代理客户端已开启,并记下本地代理的 地址(IP) 和 端口。
- 常见本地地址:127.0.0.1
- 常见端口:7890、7897 等,以你代理软件显示的 HTTP/HTTPS 代理端口为准。
⚠️ 这一步很关键:下面所有命令里的端口号,都要和你代理软件里显示的一致,否则配置了也不生效。
第 2 步:设置环境变量(按你的系统来)
✅ Windows(CMD 临时生效)
打开「命令提示符」或 PowerShell,逐条执行(把端口换成你的实际端口):
set HTTP_PROXY=http://127.0.0.1:7897
set HTTPS_PROXY=http://127.0.0.1:7897
set NODE_USE_ENV_PROXY=1
设置完后,在同一个窗口里启动 OpenCode 即可。
✅ Windows(永久生效)
| HTTP_PROXY | http://127.0.0.1:7897 |
| HTTPS_PROXY | http://127.0.0.1:7897 |
| NO_PROXY | localhost,127.0.0.1 |
| NODE_USE_ENV_PROXY | 1 |
✅ macOS / Linux(临时生效)
打开终端执行(把端口换成你的实际端口):
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
export NO_PROXY=localhost,127.0.0.1
export NODE_USE_ENV_PROXY=1
在同一个终端窗口里启动 OpenCode。
✅ macOS / Linux(永久生效)
把上面的 export 命令写入 Shell 配置文件,例如 ~/.zshrc、~/.bashrc 或 ~/.bash_profile。
⚠️ 特别提醒:macOS 的 GUI 应用用户
如果你是在 VSCode、Cursor 等图形界面(GUI)应用的插件里使用 OpenCode,这些应用不会读取 ~/.zshrc 等终端配置文件。你需要额外执行以下命令,把变量注入到系统会话:
launchctl setenv HTTP_PROXY "http://127.0.0.1:7890"
launchctl setenv HTTPS_PROXY "http://127.0.0.1:7890"
launchctl setenv NO_PROXY "localhost,127.0.0.1"
launchctl setenv NODE_USE_ENV_PROXY "1"
执行后,完全退出并重新打开 IDE 才能生效。
第 3 步:测试是否生效
启动 OpenCode 后直接尝试使用 Muse Spark 模型。如果不再出现「地区不可用」提示,说明配置成功。
如果依然报错,按顺序检查:
下面用一张流程图,把「第 3 步」的完整排查路径串起来,方便你按顺序定位问题:

三、方法二:勾选「启用部署在中国的模型」
如果你的报错与 DeepSeek V4 Flash 等模型有关,可以检查 OpenCode Go 订阅里是否有:
Enable models hosted in China(启用部署在中国的模型)
如果有,直接勾选即可。
四、方法三:使用国内模型供应商(无需额外配置)
如果不想折腾网络,可以直接用国内模型服务作为替代,更省心:
- 火山方舟:提供 DeepSeek 等模型的编程套餐,有的首月仅需 9.9 元。
- 阿里云百炼:提供多种大模型 API。
- 智谱、Kimi、MiniMax 等:多数都支持 OpenAI 兼容格式的 API。
在 OpenCode 中配置对应厂商的 API Key 和 Base URL 即可使用。
五、方法四:自行编译或修改配置(进阶)
技术较强的用户还可以:
- 配置独立路由:为 muse-spark-1.2-contributor 模型在 settings.yaml 中配置独立路由,使用 openai-responses 协议。
- 自行编译:如果 models.dev 在境内无法访问,可以自己拉取 models.json 文件并通过环境变量指定。
六、重要优化:如何避免影响国内网络
很多同学会担心:设置了代理,会不会影响我访问百度、淘宝、微信?
答案是:不会,只要设置得当,影响非常有限。
1. 影响的「范围」很小
这些环境变量只对当前终端窗口里启动的程序(Node.js / OpenCode)生效:
- 你打开的浏览器访问国内网站,不受影响,依然直连。
- 微信、QQ、游戏客户端,不受影响。
- 只有在你运行 OpenCode 的那个终端里,Node.js 发出的请求才会走代理。
2. 内置「免代理」白名单
如果你配置了 NO_PROXY,建议把它扩充一下,包含常见国内域名和局域网地址:
NO_PROXY=localhost,127.0.0.1,*.local,*.aliyun.com,*.baidu.com,*.qq.com,*.taobao.com,*.zhihu.com,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
这样访问阿里云、百度、腾讯等国内服务接口时,代理会自动绕过、直接连接,速度不受任何影响。
3. 推荐的做法:临时生效
为防止「忘记关代理导致国内访问慢」,不建议设为永久生效,而是每次只在运行 OpenCode 的终端里临时设置。
Windows(CMD):
set HTTPS_PROXY=http://127.0.0.1:7897
set NO_PROXY=localhost,127.0.0.1,*.local,192.168.*
set NODE_USE_ENV_PROXY=1
opencode
用完即关:关掉这个窗口后,变量就消失了,系统恢复纯净的国内直连状态。
Mac / Linux(推荐做一个别名):
alias opencode-proxy='HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890 NO_PROXY=localhost,127.0.0.1,*.local NODE_USE_ENV_PROXY=1 opencode'
之后只需输入 opencode-proxy,其他任何操作都不会走代理。
4. 唯一需要注意的坑:IDE 插件用户
如果你在 VSCode / Cursor 插件里使用,并且执行了 launchctl setenv 这类系统级命令,确实会让整个 IDE 的网络都走代理。
解决办法:在 IDE 的插件设置中找到 OpenCode 的 HTTP_PROXY 配置项,直接在插件里填代理地址,而不要用 launchctl 注入。这样只有插件里的 AI 请求走代理,IDE 更新、插件下载依然走国内直连。
七、桌面版(Desktop)专用说明
如果你用的是 OpenCode 桌面端,它是个独立的图形界面应用,不会读取终端里临时设置的环境变量。
好消息是:OpenCode 桌面端从 v1.14.39 版本开始,已经支持读取 HTTP_PROXY / HTTPS_PROXY 等标准代理环境变量了。
方法一:通过系统环境变量设置(推荐)
一次性设置好,以后每次打开桌面端都会自动生效。
Windows 用户:
- HTTP_PROXY = http://127.0.0.1:7897
- HTTPS_PROXY = http://127.0.0.1:7897
- (可选推荐)NO_PROXY = localhost,127.0.0.1
macOS 用户:GUI 应用不读 ~/.zshrc,需要用 launchctl setenv 注入(见上文 GUI 部分)。
Linux 用户:可通过 ~/.profile、~/.bashrc 或 ~/.pam_environment 等文件设置。
最后务必:完全退出并重新打开 OpenCode 桌面端,新环境变量才会生效。
方法二:通过配置文件设置(更灵活)
OpenCode 支持在配置文件里直接指定代理,更精确,也不会影响系统其他软件。
配置文件通常位于 ~/.config/opencode/ 目录下,文件名可能是 opencode.json 或 opencode.jsonc。
一个正确的配置示例:
{
"shell": "powershell",
"network": {
"proxy": {
"http": "http://127.0.0.1:7897",
"https": "http://127.0.0.1:7897",
"noProxy": ["localhost", "127.0.0.1", "::1"]
}
}
}
八、配置文件常见坑:只能有一个顶层对象
很多同学把配置直接粘贴,结果报 JSON 解析错误,比如:
EndOfFileExpected,在第 6 行第 1 列遇到了一个意外的 {
原因:JSON 标准要求整个文件只能有一个顶层对象。如果你把两个独立的 JSON 对象放在同一个文件里,就会报错。
错误示范(两个 { } 并列,不允许):
{ "$schema": "…", "shell": "powershell" }
{ "$schema": "…", "network": { "proxy": { … } } }
正确做法:把配置合并成一个对象,用逗号分隔:
{
"shell": "powershell",
"network": {
"proxy": {
"http": "http://127.0.0.1:7897",
"https": "http://127.0.0.1:7897",
"noProxy": ["localhost", "127.0.0.1", "::1"]
}
}
}
操作步骤:
九、关于 .json 还是 .jsonc:用 .jsonc 更好
可能有人会问:我目录下只有 opencode.jsonc,没看到 opencode.json,有影响吗?
完全没有影响,用 .jsonc 甚至更推荐。 原因有三:
一个正确的 opencode.jsonc 示例:
{
// 声明 JSON Schema,用于编辑器智能提示和校验
// 指定使用的 Shell
"shell": "powershell",
// 网络代理配置
十、常见报错速查表
下面把本文涉及的所有报错信息汇总成一张速查表,方便你遇到问题时快速定位原因和解决方法。
| This model is not available in your country. | Muse Spark 模型在部分网络环境下可达性不稳,或 Node.js 24 默认不读取系统代理环境变量,请求未按代理路径发出。 | 配置 HTTP_PROXY / HTTPS_PROXY 环境变量,并开启 NODE_USE_ENV_PROXY=1 开关。 | 一、问题背景;二、方法一 |
| 配置代理后仍报「地区不可用」 | 代理端口填写错误、代理链路不稳定、漏配 NODE_USE_ENV_PROXY=1,或 IDE 插件环境未按 GUI 方式配置。 | 按顺序检查端口、更换链路、补全开关;VSCode 插件用户需按「GUI 应用」部分用 launchctl setenv 注入。 | 二、方法一(第 3 步) |
| DeepSeek V4 Flash 等模型报「地区不可用」 | OpenCode Go 订阅中未开启「启用部署在中国的模型」选项。 | 在订阅设置中勾选 Enable models hosted in China。 | 三、方法二 |
| 桌面端配置了终端环境变量仍不生效 | OpenCode 桌面端是独立 GUI 应用,不读取终端里临时设置的环境变量。 | 通过系统环境变量或配置文件设置代理,并完全退出后重新打开桌面端。 | 七、桌面版专用说明 |
| EndOfFileExpected(JSON 解析错误) | 配置文件里写了两个并列的顶层 JSON 对象,违反「只能有一个顶层对象」的 JSON 标准。 | 把多个配置合并成一个对象,用逗号分隔后粘贴保存。 | 八、配置文件常见坑 |
| IDE 插件整个网络都走代理,国内访问变慢 | 执行了 launchctl setenv 等系统级命令,导致整个 IDE 的网络都走代理。 | 在 IDE 插件设置里直接填 OpenCode 的 HTTP_PROXY 配置项,不要用 launchctl 注入。 | 六、重要优化(第 4 点) |




