Skip to content

OpenCode 除终端 TUI 外,还支持通过浏览器访问的 Web 界面。运行 opencode web 即可在本地启动服务,支持指定端口、绑定 IP、开启 mDNS 局域网发现和密码保护。Web 界面与 TUI 共享同一套会话数据,可以同时使用两种方式。

opencode web 命令会启动一个本地 Web 服务器,让你在浏览器中使用 OpenCode,无需打开终端。

注意:未设置 OPENCODE_SERVER_PASSWORD 时服务器没有访问保护。本地使用可以接受,如果要让局域网其他设备访问,务必设置密码。


快速启动

bash
opencode web

命令执行后会在随机可用端口启动服务(绑定到 127.0.0.1),并自动在默认浏览器中打开。

Windows 用户提示:建议在 WSL 中运行 opencode web 而不是 PowerShell,可以获得更好的文件系统访问和终端集成效果。详见 Windows/WSL 文档


配置选项

指定端口

bash
opencode web --port 4096

绑定到所有网卡(局域网访问)

bash
opencode web --hostname 0.0.0.0

使用 0.0.0.0 后,OpenCode 会同时显示本地地址和局域网地址:

  Local access:       http://localhost:4096
  Network access:     http://192.168.1.100:4096

mDNS 局域网发现

bash
opencode web --mdns

自动将 hostname 设为 0.0.0.0 并向局域网广播为 opencode.local,局域网其他设备可以通过 http://opencode.local:<port> 访问。

同一局域网有多台实例时,可以自定义 mDNS 域名:

bash
opencode web --mdns --mdns-domain myproject.local

CORS 配置

允许自定义前端从其他域访问时:

bash
opencode web --cors https://example.com

密码保护

bash
OPENCODE_SERVER_PASSWORD=secret opencode web

默认用户名为 opencode,可以用 OPENCODE_SERVER_USERNAME 修改。


Web 界面功能

启动后,Web 界面提供以下功能:

  • 会话管理:首页查看所有活跃会话,可以创建新会话
  • 服务器状态:点击"See Servers"查看已连接的服务器及状态

同时使用 TUI 和 Web

Web 服务器启动后,可以在另一个终端窗口 attach TUI:

bash
# 终端 1:启动 Web 服务器
opencode web --port 4096

# 终端 2:连接到同一实例
opencode attach http://localhost:4096

两个界面共享同一套会话和状态,适合需要同时查看浏览器预览和终端输出的场景。


在配置文件中固化服务器设置

避免每次都要敲命令行参数,可以在 opencode.json 中写入:

json
{
  "server": {
    "port": 4096,
    "hostname": "0.0.0.0",
    "mdns": true,
    "cors": ["https://example.com"]
  }
}

命令行参数优先级高于配置文件,临时修改用命令行,长期固化用配置文件。


常见问题

Q: Web 界面和 TUI 的功能是否完全一样?

A: 基本功能一致,会话、对话历史完全共享。部分依赖终端特性的功能(如直接操作文件系统)在 Web 界面中表现略有差异。

Q: 如何让团队成员也能通过局域网访问我的 OpenCode 实例?

A: 用 --hostname 0.0.0.0 绑定所有网卡,同时设置 OPENCODE_SERVER_PASSWORD 保护访问权限。如果局域网有 mDNS 支持,加上 --mdns 让成员直接用域名访问。

Q: 可以在服务器上部署供外网访问吗?

A: 技术上可行,但 OpenCode Web 定位为本地/团队工具,对外网暴露时需要自行在前面加反向代理(如 nginx)并配置 HTTPS 和身份验证。