OpenCode Web 指南
OpenCode Web 浏览器界面:运行浏览器、设置端口与安全访问
简短结论:需要在浏览器使用 OpenCode 时运行 opencode web;个人电脑先保留默认 localhost 绑定,只有在需要其他设备访问时才扩大范围,并在此之前设置密码。本指南覆盖 Web UI、端口、主机名、CORS、会话、opencode attach、Windows 与 WSL,以及如何区分浏览器、Provider 和项目问题。
- 快速结论
- OpenCode Web 浏览器界面
- 文档核验
- 核验于 2026 年 10 月 25 日
- 阅读时间
- 约 14 分钟
快速结论
OpenCode Web 一览

| 目标 | 命令或设置 | 需要确认 |
|---|---|---|
| 本机启动 | opencode web | 浏览器打开且服务保持在 localhost。 |
| 固定端口 | opencode web --port 4096 | 端口没有被占用并记录最终 URL。 |
| 允许局域网访问 | --hostname 0.0.0.0 | 让其他设备连接前先设置密码。 |
| 保护共享服务 | OPENCODE_SERVER_PASSWORD | 密钥在运行时注入,不提交到仓库。 |
| 从 TUI 接入 | opencode attach http://localhost:4096 | Web 与终端使用预期的会话。 |
快速结论:先本机运行,再有意识地扩大边界
OpenCode Web 是 OpenCode 服务的浏览器界面。它适合查看会话列表、在浏览器中打开项目,或在不持续使用终端 TUI 的情况下访问相同的编码工作流。它仍是本地开发服务,不是替你处理 Provider 凭据的托管账号。
第一条命令应是 opencode web,不要立即覆盖 hostname。官方文档说明服务会绑定 127.0.0.1 并选择可用端口,然后打开默认浏览器。先用这个本机边界确认项目目录、Provider、权限和会话行为。
本地流程稳定后再选择固定端口、网络主机名、mDNS 或 CORS。每个选项都会改变谁能连接。浏览器打不开通常是端口或进程问题;服务被不该访问的人看到则是边界问题,需要收紧暴露范围。
启动 OpenCode Web 并记录本地 URL
opencode web在计划使用的仓库或工作区运行命令。OpenCode 会启动 Web 服务并打开浏览器。保留拥有该进程的终端,记录地址、端口和警告。浏览器标签能打开,不代表服务看到了正确文件或连接到了目标模型。
需要稳定地址时使用 opencode web --port 4096。固定端口方便书签、脚本和 opencode attach,但可能与其他进程冲突。失败时先查哪个进程占用了端口,不要为了绕过冲突把所有端口发布到主机。
第一项 Web 任务应是只读:列出项目、总结一个小文件,并查看会话或服务器状态。接着确认 Git status 和同一工作区的 Provider 模型。这样可以分别验证浏览器、进程、仓库和模型。
端口、主机名、mDNS 与 CORS:理解每个参数
端口是主机上的数字,主机名决定哪些网络接口接受连接。默认 127.0.0.1 只面向当前机器;--port 4096 只改变端口,--hostname 0.0.0.0 则改变监听范围,让网络设备也可能连接。
mDNS 适合受信任的局域网。官方示例使用 opencode web --mdns 发布 opencode.local,也可以用 --mdns-domain 区分多个实例。发现服务不等于加密或认证,只是寻找地址的机制。
CORS 决定哪些浏览器来源可以发起跨域请求。自定义前端可能需要它,但 CORS 不会让暴露的服务自动变私有。保持允许列表精确,测试实际 Origin,不要把通配规则直接放进共享环境。
| 设置 | 默认或示例 | 需要检查的边界 |
|---|---|---|
| 端口 | 随机端口;--port 4096 | 冲突、书签和 attach URL |
| 主机名 | 127.0.0.1;局域网可用 0.0.0.0 | 哪些接口和设备能连接 |
| mDNS | --mdns 与可选域名 | 受信网络和名称冲突 |
| CORS | --cors https://example.com | 准确来源,而不是全量允许 |
扩大网络访问前先保护 OpenCode Web
官方警告很明确:没有设置 OPENCODE_SERVER_PASSWORD 时,服务是不安全的。本机短时实验可以接受,但只要其他设备能连接就不应省略。通过启动进程的环境注入密码,不要把它放进 opencode.json、shell 历史、截图或提交的 .env。
默认用户名是 opencode,也可以用 OPENCODE_SERVER_USERNAME 修改。凭据只保护 Web 服务,不会替你保护 Provider 或仓库。Provider 密钥、OpenCode 权限、文件挂载和进程用户都要单独审查。
使用 --hostname 0.0.0.0 前检查防火墙和网络分段。优先使用私有开发网络、短时密码和已知端口。如果前面有反向代理、VPN 或自定义前端,记录哪一层负责 TLS,哪一层仍能看到会话信息。

在 Web UI 管理会话并接入终端
Web 首页可以显示活动会话并启动新会话。发送请求前确认项目和工作区正确。浏览器标签可能在进程或仓库变化后仍然存在,因此要重新检查服务器状态,不要假设旧标签指向当前项目。
服务器状态可以帮助区分 Web 进程和已连接的编码会话。模型缺失时查看 Provider 与模型 ID;文件缺失时检查工作目录和进程用户,再决定是否修改提示词或重新安装 CLI。
同时使用两个界面时,先启动 Web 服务,再在另一个终端运行 opencode attach http://localhost:4096。官方文档说明两者可以共享会话和状态。编辑时只保留一个明确的写入者,每次小改动后检查 Git diff。
Windows 与 WSL:先检查运行边界
官方 Web 页面建议 Windows 用户从 WSL 运行 opencode web,以获得更好的文件系统和终端集成。如果仓库在 Linux 路径、工具装在 WSL,或 PowerShell 与项目使用不同 PATH 和 home,这一点尤其重要。
记录命令在哪里运行、仓库在哪里、哪个用户拥有进程。Windows 浏览器可以连接 WSL 监听器,但 localhost、Windows 防火墙和文件路径可能跨越终端看不到的边界。先做只读请求,再允许编辑。
页面能打开但命令或文件引用失败时,对比 opencode --version、当前目录、Provider 环境变量和启动 Web 的 shell。部署、VS Code 和权限页面覆盖相邻检查;本页只负责浏览器服务及其边界。
排错:定位失败发生在哪一层
先检查进程和 URL,再向内检查。浏览器连接错误通常指向服务、端口、主机名、防火墙或 CORS;页面能开但无法创建会话,通常涉及项目、Provider、权限或模型。一次改动所有变量会让结果失去解释性。
固定端口要确认监听者和终端打印的 URL 使用同一端口。网络主机名要在本机 URL 成功且已设置密码后再从第二台设备测试。mDNS 场景要把发布的名字与实际地址对照。
会话行为异常时保存服务命令、工作目录、模型 ID、环境来源和 Git status。先重现一个短只读请求,再做一个小文档改动;若 diff 出现无关文件、密钥、构建产物或工作区外路径,立即停止并收紧边界。
| 现象 | 可能层级 | 第一次检查 |
|---|---|---|
| 浏览器拒绝连接 | 进程、端口、主机名或防火墙 | 读取终端 URL 并测试 localhost |
| 页面能开但无法创建会话 | Provider、模型或工作区 | 看服务器状态、模型 ID 和工作目录 |
| 远程设备无法连接 | 监听、防火墙或密码 | 使用已知主机名、端口和运行时密码 |
| 自定义前端被阻止 | CORS | 比较实际 Origin 与允许列表 |
| TUI 状态不同 | attach URL 或进程 | 接入终端打印的端口并比较会话 |
什么时候适合使用 OpenCode Web
当浏览器更容易查看项目和对话、需要第二个运行视图,或团队想要稳定本地 URL 时使用 Web。快速键盘操作、重度 shell 工作或没有浏览器的环境仍然适合 TUI。
Web 不会替代 Provider、权限或 Docker 指南,它只改变访问 OpenCode 服务的方式。凭据、文件权限、项目挂载、MCP 工具和 Git review 仍要单独检查。根据下一个决策链接到对应窄主题页面。
稳定流程很简单:本机启动,确认项目和模型,扩大 hostname 前设置密码,记录端口,需要时接入 TUI,任务结束关闭服务。这样可以获得浏览器便利,又不会把开发监听器误当成公共服务。
OpenCode Web 常见问题
OpenCode Web 是什么?
OpenCode Web 是由 OpenCode CLI 提供的浏览器界面。运行 opencode web 会启动本地服务并打开 Web UI。
如何启动 OpenCode Web?
在目标项目运行 opencode web。默认使用 localhost 和可用端口,然后打开默认浏览器。
如何固定 OpenCode Web 端口?
运行 opencode web --port 4096,确认端口空闲,再把终端输出的 URL 用于浏览器或 opencode attach。
没有密码时 OpenCode Web 安全吗?
本机短时实验可以接受,但官方说明没有 OPENCODE_SERVER_PASSWORD 时服务不受保护。网络访问前必须设置运行时密码。
可以从其他设备访问吗?
可以,但要使用合适的 --hostname,设置密码,检查防火墙,并且只在受信网络测试。不要随意暴露开发服务。
如何让终端连接 OpenCode Web?
启动 Web 服务后,在另一个终端运行 opencode attach http://localhost:4096,端口替换为实际输出值。
Windows 用户应从 WSL 启动吗?
官方 Web 文档建议 WSL,以获得更好的文件系统和终端集成。要在启动服务的 shell 中确认路径、PATH、环境变量和防火墙。
官方来源
核对当前 Web 契约
命令和服务行为于 2026 年 10 月 25 日根据官方 Web、CLI 与配置页面核验。参数和默认值可能变化,暴露服务或自动化共享流程前请再次确认。