初见Vibe Coding:环境准备,WSL2上安装OpenCode
OpenCode安装
前置准备完成后,启动WSL,cd一个风水宝地开始安装OpenCode,记得用安装好的nvm选个合适的node版本。
nvm use 22
npm install -g opencode-ai
安装时会询问你是否已订购各厂商的coding套餐,本文以未订购任何plan为例演示。
未订购任何套餐时使用第三方模型API
选择若干次No选项之后即完成OpenCode安装,此时不配置任何模型也可体验OpenCode,因为OpenCode提供了限时限量的免费模型,我们直接去配置第三方模型API。配置模型API需要完成两个步骤:
1) 把你要使用的API站点名称写下来,并且记录这个站点中都支持哪些模型,配置文件路径在~/.config/opencode/opencode.json
nano ~/.config/opencode/opencode.json
将下面的provider字段补充到opencode.json中,里面的provider_id、baseURL、model-id需读者自行替换。
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"your_provider_id": {
"npm": "@ai-sdk/openai-compatible",
"name": "显示名称",
"options": {
"baseURL": "https://your-api-endpoint.com/v1"
},
"models": {
"model-id": {
"name": "模型显示名"
}
}
}
}
}
填写完成后Crtl + O 进行保存,Crtl + X退出nano。
2) 把API站点的密钥写下来,配置文件路径在~/.local/share/opencode/auth.json
登记好使用的站点后,将配置的站点密钥写入auth.json中,不再赘述文本编辑的相关指令。
{
"your_provider_id": {
"type": "api",
"key": "你的API密钥"
}
}
要注意provider_id和之前填写的id保持一致。
配备Skills:oh-my-opencode和Superpowers
skills可以大幅提升用户使用体验,这里仅推荐两个较为热门的skill,oh-my-opencode和superpowers,强烈建议直接让OpenCode自己来安装这两个插件。
1)oh-my-opencode
先CD一个风水宝地,然后使用opencode命令进入opencode主界面。
opencode
这时在文本框中输入/models就可以看到已经配置的模型,任选一个模型即可开始安装skills,只需要在文本框中输入以下内容:
Fetch the installation guide and follow it:
curl -s https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/refs/heads/master/docs/guide/installation.md
稍等片刻即可完成安装。
2)Superpowers
同样建议让OpenCode自行安装skill,同样是在文本框中输入以下内容即可:
Fetch and follow instructions from https://raw.githubusercontent.com/obra/superpowers/refs/heads/main/.opencode/INSTALL.md
稍等片刻即可完成安装,还会提示你“你可以问问opencode有没有superpowers的相关技能”来验证是否已经安装成功。
这两个skill建议读者稍微做些功课了解一下他们的功能,可在repo主页找到相关文档。另外,读者也可自行收集其他好用的skill和撰写一个属于你自己的skill。
如果你安装Skills时遇到了网络问题
博主的解决方案是,在windows宿主机上开启魔法,然后在wsl中创建一个proxyon和proxyoff指令,来连接/断开宿主机上的网络代理。需要在~/.bashrc的最后追加以下内容:
# ---- WSL use Windows host proxy: on/off ----
# Usage:
# proxyon # default port 7897
# proxyon 7890 # custom port
# proxyoff
# proxyshow
_wsl_host_ip() {
# Prefer WSL2: get Windows host IP from /etc/resolv.conf
local ip
ip=$(awk '/^nameserver/ {print $2; exit}' /etc/resolv.conf 2>/dev/null)
if [[ -n "$ip" ]]; then
echo "$ip"
return 0
fi
# Fallback (rare): parse default route
ip=$(ip route 2>/dev/null | awk '/default/ {print $3; exit}')
[[ -n "$ip" ]] && echo "$ip"
}
proxyon() {
local port="${1:-7897}"
local host
host=$(_wsl_host_ip)
if [[ -z "$host" ]]; then
echo "proxyon: cannot determine Windows host IP" >&2
return 1
fi
if ! [[ "$port" =~ ^[0-9]+$ ]]; then
echo "proxyon: invalid port: $port" >&2
return 1
fi
local url="http://${host}:${port}"
export http_proxy="$url"
export https_proxy="$url"
export all_proxy="$url"
export HTTP_PROXY="$url"
export HTTPS_PROXY="$url"
export ALL_PROXY="$url"
# Common bypass list (adjust as needed)
export no_proxy="localhost,127.0.0.1,::1,.local"
export NO_PROXY="$no_proxy"
echo "Proxy ON -> $url"
}
proxyoff() {
unset http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY no_proxy NO_PROXY
echo "Proxy OFF"
}
proxyshow() {
echo "http_proxy=${http_proxy:-<unset>}"
echo "https_proxy=${https_proxy:-<unset>}"
echo "all_proxy=${all_proxy:-<unset>}"
echo "no_proxy=${no_proxy:-<unset>}"
}
# -------------------------------------------
然后执行
source ~/.bashrc
即可让追加的指令生效,后续在使用wsl时可参考注释中的用法来开启/关闭/指定代理端口。
至此,VibeCoding的前置准备全部完成,读者可以愉快的让AI来帮你写代码了。
浙公网安备 33010602011771号