相信大家都知道 Opencode ,一款开源的AI编程助手。对 liunx、mac系统比较友好。我们虽然可以使用桌面(bata版本)勉强体验,但是在开发大型项目中整体感受执行命令、性能方面不如Liunx系统。官方也推荐windows用户可以基于WSL来使用,这期教程教大家基于WSL流畅的使用Opencode进行前后端开发

在这里插入图片描述

WSL 安装

wsl --install

在 WSL 中安装 OpenCode

WSL安装完成后,打开WSL终端,执行下方命令就可以安装Opencode, 安装好Opencode后,需要自定义模型记得配置好对应的模型,对应的配置路径如下:

  • Windows
    • 全局配置
      • C:\Users\你的用户名\.config\opencode\opencode.json
  • Liunx( WSL 本次教程配置地址)
    • 全局配置
      • ~/.config/opencode/opencode.json
    • 自定义配置
      • OPENCODE_CONFIG 环境变量- 自定义覆盖
curl -fsSL https://opencode.ai/install | bash

注意

.opencode~/.config/opencode 目录的子目录使用复数名称:agents/、commands/、modes/、plugins/、skills/、tools/ 和 themes/。为了向后兼容,也支持单数名称(例如 agent/)

从 WSL 中使用 OpenCode

导航到你的项目目录(通过 /mnt/c/、/mnt/d/ 等路径访问 Windows 文件),然后运行 OpenCode。到这里你就已经可以在WSL使用Opencode进行AI编码了。

cd /mnt/c/Users/YourName/project
opencode

桌面应用 + WSL 服务器

如果你习惯桌面操作,也是在Windows安装Opencode桌面版,然后连接Opencode服务; 在 WSL 中启动服务器,添加 --hostname 0.0.0.0 以允许外部连接:

opencode serve --hostname 0.0.0.0 --port 4096

在这里插入图片描述

在这里插入图片描述
在桌面应用中连接到 http://localhost:4096
注意
如果 localhost 在你的环境中无法使用,请改用 WSL 的 IP 地址进行连接(在 WSL 中运行:hostname -I),使用 http://<wsl-ip>:4096
警告

使用 --hostname 0.0.0.0 时,请设置 OPENCODE_SERVER_PASSWORD 以保护服务器安全。

OPENCODE_SERVER_PASSWORD=your-password opencode serve --hostname 0.0.0.0

Web 客户端 + WSL

  • 要在 Windows 上获得最佳的 Web 体验:
  • WSL 终端中运行 opencode web,而非在 PowerShell 中运行:
opencode web --hostname 0.0.0.0
  • 本地访问可以执行一下命令
opencode web --port 4096

在这里插入图片描述

  • 可以修改 opencode.json 的 server 选项为 opencode serve 和 opencode web 命令配置服务器设置
    • 可用选项:
      • port - 监听端口
      • hostname - 监听主机名。当 mdns 启用且未设置主机名时,默认为 0.0.0.0。
      • mdns - 启用 mDNS 服务发现。这允许网络上的其他设备发现您的 OpenCode 服务器。
      • mdnsDomain - mDNS 服务的自定义域名。默认为 opencode.local。适用于在同一网络上运行多个实例的场景。
      • cors - 从基于浏览器的客户端使用 HTTP 服务器时允许 CORS 的额外来源。值必须是完整的来源(协议 + 主机 + 可选端口),例如 https://app.example.com。
{
  "$schema": "https://opencode.ai/config.json",
  "server": {
    "port": 4096,
    "hostname": "0.0.0.0",
    "mdns": true,
    "mdnsDomain": "myproject.local",
    "cors": ["http://localhost:5173"]
  }
}

在这里插入图片描述

进阶用法

通过 /mnt(例如 /mnt/c/Users/你的名字)访问 Windows 文件,虽然在 WSL 中很方便,但存在几个不可忽视的缺点,尤其在运行 Opencode 这类需要频繁读写、监控文件变化的工具时,影响会更明显:

  • 性能明显下降
    • /mnt 下的文件访问经过 DrvFs(Drive File System)协议层,需要来回转换 Linux 系统调用到 Windows NT 内核调用
    • 大量小文件读写(如 node_modules、git 仓库、编译产物)时,速度比在 WSL 原生 Linux 文件系统(如 /home)慢 2~5 倍
    • 随机读写、元数据操作(stat、chmod、readdir)延迟高,对于构建工具、包管理器(npm、pip)影响显著
  • 文件监控(inotify)不工作或不可靠
    • WSL 2 对 /mnt 的 inotify 支持有限,许多工具(如 nodemon、webpack --watch、jest --watch、Opencode 的自动重载)无法检测到 Windows 侧的文件变更
  • 权限和所有权混乱:/mnt 下的所有文件默认显示为 root 或默认 WSL 用户,无法设置真正的 Linux 用户/组权限(chown/chmod 仅能模拟基本标志)
  • 文件系统特性差异、路径转换开销和兼容问题等

优化

通过 mnt 访问window文件,鉴于两个系统之间的是存在缺陷的,我们应该改变方式:用 WSL 开发,就住在 WSL 的家里,别挤在 /mnt 这个“朋友家的客厅”干活, 在WSL环境安装好我们开发需要的环境,比如:node、git、java、maven等按需部署;下面我就前后端介绍两种不同的方式

VsCode + WSL插件
  • 安装WSL插件:VS code切到远程模式, 添加WSL中的项目进行管理、编译、版本控制
    在这里插入图片描述
  • 在项目路径下执行 Opencode既可唤起AI编程工作
    在这里插入图片描述
IDEA + WSL终端(Opencode Web界面)
  • IDEA支持WSL打开项目、对项目进行开发、编译、版本控制,打开路径需要注意
  • 打开WSL路径写法:\\wsl.localhost\发行版名称\用户目录\项目名,例如 \wsl.localhost\Ubuntu\home\test\MyProject
  • 自动识别 Git‌:如果 Windows 没装 Git,IDEA 会自动调用 WSL 里的 Git,无需额外配置,如果windows安装了,需要指定wsl的git路径,例如 \wsl.localhost\Ubuntu\usr\bin\git
  • Maven配置注意事项:maven项目如果拉取不到依赖的话,可以把maven的地址、配置、仓库都配置为wsl的maven配置

在这里插入图片描述
操作到这里,恭喜你已经安装完成,可以体验AI编程的快乐了…

在这里插入图片描述

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐