请仔细参考本文操作,如有遇到问题,建议询问AI
AI推荐:
https://www.google.com/ 选择AI模式
https://copilot.microsoft.com/
项目相关网站如下,官网有DOCS
opencode官网:https://opencode.ai/ GitHub项目链接:https://github.com/anomalyco/opencode
本文撰写时,opencode版本为1.4.7,如后续版本更新,有差异,请尝试AI解决
访问官网下载地址:https://nodejs.org/zh-cn/download下载 LTS 版本(64-bit .msi)
执行安装程序
- 双击已下载的.msi文件
- 按照安装向导选择默认选项
- 确保勾选"Add to PATH"选项
- 点击"Install"完成安装
安装完成后,验证安装是否成功:
node --version npm --version
应该能输出类似:
v24.x.x 11.x.x
仅当遇到权限错误("ERR! Permission denied")时参考本步骤
在PowerShell中执行以下命令,配置npm全局安装路径,避免权限问题:
powershell# 1. 创建全局安装目录 mkdir -p $env:USERPROFILE\.npm-global # 2. 告诉 npm 使用这个新目录 npm config set prefix "$env:USERPROFILE\.npm-global" # 3. 获取当前用户已有的 Path(不含系统 Path),避免重复和混乱 $currentPath = [Environment]::GetEnvironmentVariable("PATH", "User") $npmPath = "$env:USERPROFILE\.npm-global" # 4. 如果 Path 里还没这个路径,就加进去 if ($currentPath -notlike "*$npmPath*") { $newPath = "$npmPath;" + $currentPath [Environment]::SetEnvironmentVariable("PATH", $newPath, "User") $env:PATH = "$npmPath;" + $env:PATH Write-Host "环境变量已更新!" -ForegroundColor Green } else { Write-Host "环境变量已存在,无需重复添加。" -ForegroundColor Yellow }
验证配置:
powershellnpm config get prefix
步骤1:创建目录
在PowerShell中执行以下命令:
powershellNew-Item -ItemType Directory -Force -Path "D:\opencode" New-Item -ItemType Directory -Force -Path "D:\opencode\projects" New-Item -ItemType Directory -Force -Path "D:\opencode\config"
步骤2:验证目录创建
powershellGet-Item D:\opencode Get-Item D:\opencode\projects Get-Item D:\opencode\config
在D:\opencode\config目录下,创建opencode.json配置文件:
powershellNew-Item -Path "D:\opencode\config\opencode.json" -ItemType File -Force
编辑该文件,添加以下内容:
json{
"$schema": "https://opencode.ai/config.json",
"provider": {
"myproxy": {
"npm": "@ai-sdk/openai",
"options": {
"baseURL": "https://api.aiguoguo199.com/v1"
},
"models": {
"gpt-5.4-nano": {
"name": "GPT-5.4-nano"
}
}
}
},
"model": "myproxy/gpt-5.4-nano",
"autoupdate": true
}
baseURL必须以/v1结尾(不能是/chat/completions)
apiKey留空,后面通过auth命令单独设置
models列出中转站支持的模型如果需要配置模型为配Gemini 或 Claude,对应的npm包名称为
@ai-sdk/google,@ai-sdk/anthropic
在用户主目录和应用数据目录创建软链接,在管理员 PowerShell 中运行以下命令
powershell# 创建配置文件软链接 New-Item -ItemType SymbolicLink -Path "$HOME\.opencode.json" -Target "D:\opencode\config\opencode.json" -Force
验证软链接
powershellGet-Item "$HOME\.opencode.json" -ErrorAction SilentlyContinue | Select-Object LinkType, Target, FullName
输出应显示 SymbolicLink,且 Target 指向 D:\opencode\config 下的相应文件。
步骤1:设置OPENCODE_HOME环境变量
打开PowerShell(以管理员身份运行),执行:
# 设置环境变量 [Environment]::SetEnvironmentVariable("OPENCODE_HOME", "D:\opencode", "User") [Environment]::SetEnvironmentVariable("OPENCODE_WORKSPACE", "D:\opencode\projects", "User") [Environment]::SetEnvironmentVariable("OPENCODE_CONFIG", "$HOME\.opencode.json", "User") # 刷新当前会话 $env:OPENCODE_HOME = "D:\opencode" $env:OPENCODE_WORKSPACE = "D:\opencode\projects" $env:OPENCODE_CONFIG = "$HOME\.opencode.json" # 验证 echo $env:OPENCODE_HOME echo $env:OPENCODE_WORKSPACE echo $env:OPENCODE_CONFIG
输出应分别显示:
D:\opencode D:\opencode\projects
| 位置 | 含义 | 谁来用 | 什么时候用 |
|---|---|---|---|
| C:\Users$env.opencode.json | 用户全局配置(Unix/Linux传统) | opencode程序本身 | 程序启动时读取 |
| %APPDATA%\opencode\opencode.json | Windows应用配置目录 | opencode程序 | 可选的备选方案 |
| D:\opencode\projects | 你的工作区(代码项目存放) | 你的项目文件 | 运行时存放代码 |
opencode的****配置文件查找顺序****(优先级从高到低):
1️⃣ OPENCODE_CONFIG 环境变量指定的文件 ↓ 如果找不到 2️⃣ ~/.opencode.json (用户主目录的隐藏文件) ↓ 如果找不到 3️⃣ %APPDATA%\opencode\opencode.json (Windows应用数据目录) ↓ 如果找不到 4️⃣ 项目目录下的.opencode.json ↓ 如果找不到 5️⃣ 内置默认配置
使用npm全局安装
在PowerShell中执行:
powershellnpm install -g opencode-ai@latest
OpenCode 并不自带所有接口驱动。要连接 OpenAI 兼容格式的中转站,必须先在 PowerShell 中全局安装驱动包:
npm install -g @ai-sdk/openai
如果需要配置模型为配Gemini 或 Claude,对应的npm包名称为@ai-sdk/google,@ai-sdk/anthropic
执行以下命令确认安装成功:
opencode --version
输出示例(版本号可能不同):
1.4.7
如果显示"command not found"错误,执行以下命令:
powershellnpm list -g opencode-ai
查看实际安装路径,然后将该路径添加到环境变量PATH中。
由于 OpenCode 默认只列出主流官方提供商,若要使用中转站(如 aiguoguo199.com)提供的 gpt-5.4 模型,必须手动更改配置文件并输入API Key。
打开PowerShell(以管理员身份运行),输入opencode auth login,回车
在Select provider中直接拉到最下面,选择Other,输入Enter provider id为myproxy,回车
粘贴API Key,回车,完成
Enter provider id需要跟opencode.json的内容对应,具体位置可见json文件配置
powershellPS C:\Users\test> opencode auth login T Add credential | o Select provider | Other | o Enter provider id | myproxy | ! This only stores a credential for myproxy - you will need configure it in opencode.json, check the docs for examples. | o Enter your API key | ••••••••••••••••••••••••••••••••••••••••••••••••••• | — Done
在PowerShell中执行:
powershellcd D:\opencode\projects opencode
进入TUI后输入:
/models
**成功标志:**能看到 myproxy/gpt-5.4 等配置的模型
如后期执行部署,需要选择自己喜欢的模行,在OpenCode TUI界面中,输入以下命令连接提供商:
/connect
- 系统将提示选择提供商。根据需要选择:
- OpenCode Zen(推荐):https://opencode.ai/auth
- OpenAI: 提供OpenAI API密钥
- Google Gemini: 提供Gemini API密钥
- GitHub Copilot: 需要GitHub认证
输入API密钥
按照TUI提示,粘贴相应的API密钥。OpenCode将自动保存该密钥。
在TUI中输入:
/models验证自己选择的模型即可
在你的 D:\opencode\config\opencode.json 中添加 permission 字段:
json{
"$schema": "https://opencode.ai/config.json",
"provider": { ... },
"model": "myproxy/gpt-5.4",
"permission": {
"external_directory": {
"*": "deny"
},
"read": {
"*": "allow",
"*.env": "deny",
"*.env.*": "deny"
},
"edit": "*: allow",
"bash": "ask"
}
}
必须从项目目录启动:
powershellcd D:\opencode\projects opencode
| 操作 | 命令 | 预期结果 |
|---|---|---|
| 列出当前目录 | /ls . | ✅ 允许 |
| 访问上级目录 | /ls .. | ❌ 拒绝 |
| 访问C盘 | /read C:\Windows\test.txt | ❌ 拒绝 |
| 编辑文件 | /edit src/app.js | ✅ 允许 |
| 运行命令 | /bash npm install | ⚠️ 需确认 |
问题:尝试访问外部目录时显示permission denied
原因:你启动OpenCode的位置错误,或者从不同驱动器启动。
解决方案:
powershell# 确保从项目目录启动 cd D:\opencode\projects opencode
OpenCode 有两类方式与你交互:内置命令(你输入)和AI工具(AI自动使用)。
| 命令 | 功能说明 | 使用示例 | 说明 |
|---|---|---|---|
opencode | 启动OpenCode TUI | cd D:\opencode\projects && opencode | 必须从项目目录启动 |
/init | 初始化项目,生成AGENTS.md | /init | 帮助OpenCode理解项目结构 |
/connect | 连接AI提供商,配置API密钥 | /connect | 选择提供商并输入密钥 |
/models | 列出所有可用的AI模型 | /models | 查看已配置的模型列表 |
/undo | 撤销上一步操作 | /undo | 回退最后一次AI修改 |
/redo | 重做撤销操作 | /redo | 恢复被撤销的修改 |
/share | 生成对话分享链接 | /share | 复制链接分享给团队成员 |
/help | 显示所有可用命令 | /help | 查看命令帮助信息 |
这些是OpenCode AI可以自动调用的能力。你不需要手动输入/ 来触发它们,而是直接和AI交互,AI会根据需要使用这些工具。
| 工具 | 功能 | 工作方式 | 示例场景 |
|---|---|---|---|
ls | 列出目录文件 | 你说:"查看src目录的内容" → AI使用ls工具 | 探索项目结构 |
view | 查看文件内容 | 你说:"看看package.json" → AI使用view工具 | 理解文件结构 |
read | 读取文件(同view) | 你说:"读取配置文件" → AI使用read工具 | 分析代码 |
write | 创建或完全覆写文件 | 你说:"创建一个新组件" → AI使用write工具 | 生成新文件 |
edit | 修改现有文件 | 你说:"修改这个函数" → AI使用edit工具 | 代码编辑 |
patch | 应用补丁(精确修改) | AI识别需要修改→应用patch | 精确代码修改 |
glob | 按模式查找文件 | 你说:"找所有.ts文件" → AI使用glob工具 | 文件搜索 |
grep | 在文件中搜索文本 | 你说:"找所有import语句" → AI使用grep工具 | 内容搜索 |
bash | 执行Shell命令 | 你说:"运行npm install" → AI使用bash工具 | 运行脚本/命令 |
OpenCode有两种工作模式,用****Tab键****切换:
| 模式 | 功能 | 工具可用性 | 使用场景 |
|---|---|---|---|
| *Build模式*(默认) | 完整功能,可读写文件 | ✅ 所有工具可用 | 写代码、修改文件、运行命令 |
| *Plan模式*(只读) | 分析规划,不修改代码 | ❌ 禁用:write, edit, patch, bash | 制定计划、分析代码、方案设计 |
切换方式:
按 Tab 键 → 看右下角的模式指示器切换
场景:我想添加一个新功能,但先让AI规划
1️⃣ 启动OpenCode(在项目目录) cd D:\opencode\projects opencode 2️⃣ 切换到Plan模式(只读、安全) 按 Tab 键 → 看右下角显示 "Plan" 3️⃣ 问AI如何实现 你输入:当用户点击删除按钮时,标记为软删除。然后创建一个恢复页面。 AI使用 ls, view, grep 等工具分析,给出计划 4️⃣ 满意计划后,切换到Build模式 按 Tab 键 → 看右下角显示 "Build" 5️⃣ 让AI执行 你输入:好的,开始实现 AI使用 edit, write, bash 等工具修改代码 6️⃣ 如果不满意,撤销 /undo → 回到步骤5之前 /redo → 恢复修改
Build模式(默认)
所有操作都允许:
read, view)write)edit, patch)bash)glob, grep)*适用于:* 实际开发、调试、优化代码
Plan模式(规划模式)
只读操作允许,写操作被禁用:
read, view)glob, grep)write 禁用)edit, patch 禁用)bash 禁用)适用于: 分析现有代码、制定实现方案、审查代码
方式1:直接对话(最常用)
你:在src/components中创建一个用户卡片组件AI:自动使用glob找.tsx文件 → view查看现有组件 → write创建新组件
方式2:引用文件
你:@src/types.ts 定义一个新的User接口AI:自动view查看当前的types → edit添加新接口
方式3:命令方式
你:/initOpenCode:生成AGENTS.md文件,记录项目信息
OpenCode 的配置优先级:
.well-known/opencode 端点)~/.config/opencode/opencode.json)OPENCODE_CONFIG 环境变量)opencode.json).opencode 目录中的代理、命令、插件OPENCODE_CONFIG_CONTENT)关键点:配置文件会自动合并,而不是覆盖。后加载的配置只覆盖有冲突的键,不影响其他设置。
推荐的目录结构:
D:\opencode\ ├── config\ # 全局配置(前面1-3章创建) │ ├── opencode.json │ └── auth.json │ ├── projects\ # 项目根目录 │ ├── project-1\ │ │ ├── opencode.json # 项目1特定配置 │ │ ├── src\ │ │ ├── package.json │ │ └── .opencode\ # 代理、命令、技能目录 │ │ │ ├── project-2\ │ │ ├── opencode.json # 项目2特定配置 │ │ ├── src\ │ │ ├── package.json │ │ └── .opencode\ │ │ │ └── project-3\ │ ├── opencode.json # 项目3特定配置 │ ├── src\ │ ├── package.json │ └── .opencode\
为项目1创建配置(D:\opencode\projects\project-1\opencode.json):
json{
"$schema": "https://opencode.ai/config.json",
"model": "myproxy/gpt-5.4",
"permission": {
"external_directory": {
"D:\\opencode\\projects\\**": "allow"
},
"bash": {
"*": "ask",
"npm *": "allow",
"git *": "allow",
"git push *": "deny",
"rm *": "deny"
},
"edit": "allow",
"read": {
"*": "allow",
"*.env": "deny",
"*.env.*": "deny"
}
},
"snapshot": true,
"formatter": {
"prettier": {
"extensions": [".js", ".jsx", ".ts", ".tsx", ".json"]
}
}
}
为项目2创建配置(D:\opencode\projects\project-2\opencode.json):
json{
"$schema": "https://opencode.ai/config.json",
"model": "myproxy/gpt-5.4",
"permission": {
"external_directory": {
"D:\\opencode\\projects\\**": "allow"
},
"bash": "ask",
"edit": "allow"
},
"snapshot": true
}
启动项目1:
powershellcd D:\opencode\projects\project-1 opencode
启动项目2:
powershellcd D:\opencode\projects\project-2 opencode
OpenCode 会自动在启动目录查找
opencode.json,然后与全局配置合并。无需指定--config参数。
如果需要严格隔离(项目1完全不能访问项目2的代码),使用 external_directory:
项目1的隔离配置:
json{
"$schema": "https://opencode.ai/config.json",
"permission": {
"external_directory": {
"D:\\opencode\\projects\\project-1\\**": "allow",
"*": "deny"
},
"read": {
"*": "allow",
"*.env": "deny"
},
"edit": "allow"
}
}
现在OpenCode在项目1中只能访问项目1目录,对其他外部目录(包括项目2)的访问会被拒绝。
如果想为所有项目使用统一的全局配置,使用 OPENCODE_CONFIG 环境变量(opencode.ai1):
powershell# 设置全局配置路径 [Environment]::SetEnvironmentVariable("OPENCODE_CONFIG", "D:\opencode\config\opencode.json", "User") # 刷新当前会话 $env:OPENCODE_CONFIG = "D:\opencode\config\opencode.json" # 验证 echo $env:OPENCODE_CONFIG
此后,启动任何项目的OpenCode时,都会先读取这个全局配置,然后与项目目录下的 opencode.json 合并。
全局配置 (D:\opencode\config\opencode.json):
json{
"model": "myproxy/gpt-5.4",
"autoupdate": true,
"permission": {
"bash": "ask"
}
}
项目1配置 (D:\opencode\projects\project-1\opencode.json):
json{
"permission": {
"bash": "allow",
"edit": "deny"
}
}
合并结果(项目1实际生效的配置):
json{
"model": "myproxy/gpt-5.4", // 继承全局
"autoupdate": true, // 继承全局
"permission": {
"bash": "allow", // 项目级覆盖
"edit": "deny" // 项目级新增
}
}
| 错误做法 | ❌ 为什么不对 | ✅ 正确做法 |
|---|---|---|
在config中写workspaceDirectory | 此字段不存在 | 直接从项目目录启动opencode |
使用opencode --config path | 不支持此参数 | 设置OPENCODE_CONFIG环境变量 |
| 在permission中直接写path规则 | 应该用external_directory | 见7.5示例 |
配置ignorePatterns | 此字段不存在 | 使用.opencodeignore文件(如果支持) |
在json配置中设maxTokens | 这是实验功能环境变量 | 使用OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX |
| 位置 | 用途 | 创建位置 | 何时读取 |
|---|---|---|---|
| 全局配置 | 所有项目通用设置 | ~/.config/opencode/opencode.json(Linux/Mac)或 %APPDATA%\opencode\opencode.json(Windows) | OpenCode启动时 |
| Windows用户主目录 | Windows特定全局配置 | C:\Users\$env:USERNAME\.opencode.json | 如果~/.config不存在 |
| 项目配置 | 该项目特定配置 | 项目根目录下 opencode.json | 启动该项目时 |
| 环境变量指定 | 自定义全局配置位置 | 由OPENCODE_CONFIG指向的任意路径 | 优先级最高(除托管配置) |
| 项目代理/命令 | 项目特定代理、命令、技能 | 项目根目录下 .opencode/ 目录 | 启动项目时自动加载 |
插件是 OpenCode 最强大的扩展方式,可添加自定义工具、事件钩子、外部集成。
配置方式
在 opencode.json(全局或项目级)中添加 plugin 数组:
json{
"$schema": "https://opencode.ai/config.json",
"plugin": [
"opencode-helicone-session@latest",
"@my-org/custom-plugin"
]
}
本地插件目录(推荐)
D:\opencode\projects\您的项目\.opencode\plugins\C:\Users\您的用户名\.opencode\plugins\(或软链接指向的位置)插件文件为 .js 或 .ts,自动加载。
安装 npm 插件后执行 opencode 重启即可生效(或 opencode update)。
创建简单插件示例(notification.js):
jsexport const NotificationPlugin = async ({ $ }) => ({
"session.idle": async () => {
await $`echo "OpenCode 会话已空闲" > session.log`
}
})
更多钩子(command、tool、lsp、file 等)详见官方 https://opencode.ai/docs/plugins/。
Agents 是专用 AI 助手,可为不同任务(代码审查、文档生成等)定制模型、提示词和权限。
创建方式(推荐两种,均支持)
方式一:Markdown 文件(最灵活,推荐)
powershellmkdir D:\opencode\projects\您的项目\.opencode\agents
code-reviewer.md(文件名即 Agent 名)markdown---
description: AI代码审查agent
mode: subagent
model: gpt-4o # 或 anthropic/claude-sonnet-4-20250514
temperature: 0.1
tools:
write: false
edit: false
bash: false
---
You are an expert code reviewer. Analyze code for bugs, performance issues, security vulnerabilities, and best practices. Provide constructive feedback only.
方式二:opencode.json 中定义
json{
"$schema": "https://opencode.ai/config.json",
"agent": {
"code-reviewer": {
"description": "AI代码审查agent",
"mode": "subagent",
"model": "gpt-4o",
"prompt": "You are an expert code reviewer...",
"tools": {
"write": false,
"edit": false
}
}
}
}
使用命令:
opencode agent create(推荐,会自动生成 MD 文件)@code-reviewer 帮我审查这段代码权限支持 ask / allow / deny 以及 glob 细粒度控制(如 "bash": { "git push": "ask" })。
自定义命令让您用 /test、/review 等快捷方式执行重复提示词任务。
创建方式
方式一:Markdown 文件(推荐)
powershellmkdir D:\opencode\projects\您的项目\.opencode\commands
test.md:markdown---
description: 运行测试套件
agent: build
model: gpt-4o
---
Run the full test suite: !`npm test -- --coverage`
Focus on failing tests and suggest fixes.
方式二:opencode.json
json{
"$schema": "https://opencode.ai/config.json",
"command": {
"test": {
"description": "运行测试套件",
"template": "Run the full test suite: !`npm test -- --coverage` ...",
"agent": "build"
}
}
}
高级用法(在模板中支持):
$ARGUMENTS 或 $1、$2(例:/component Button)!npm run build``(反引号)@src/utils.js(自动注入文件内容)使用:在 TUI 直接输入 /test 或 /review src/App.tsx
允许 LLM 在对话中调用您编写的函数(可封装任意语言脚本)。
创建位置:
D:\opencode\projects\您的项目\.opencode\tools\~/.config/opencode/tools/示例(database.ts):
tsimport { tool } from "@opencode-ai/plugin"
export default tool({
description: "查询项目数据库",
args: { query: tool.schema.string().describe("SQL 查询语句") },
async execute(args) {
return `执行结果:${args.query}`
}
})
文件名即工具名,可在 Agent/Commands 中被 LLM 自动调用。自定义工具优先于内置工具。
支持同时配置多个 LLM 提供商,并随时切换。
json{
"$schema": "https://opencode.ai/config.json",
"provider": {
"openai": {
"apiKey": "sk-...",
"models": {
"gpt-4o": { "name": "gpt-4o" }
}
},
"anthropic": {
"apiKey": "sk-ant-..."
},
"google": {
"apiKey": "AIza..."
}
},
"defaultProvider": "openai"
}
TUI 操作:
/models —— 列出所有可用模型/model gpt-4o —— 切换模型快捷键、主题等在独立配置文件 tui.json 中设置(非 opencode.json)。
创建位置:
D:\opencode\projects\您的项目\tui.json~/.config/opencode/tui.json示例:
json{
"$schema": "https://opencode.ai/tui.json",
"theme": "opencode",
"keybinds": {
"leader": "ctrl+x",
"switchAgent": "tab"
},
"scroll_speed": 3
}
使用建议
- 所有
.opencode/修改后重启opencode生效。- 多项目推荐项目级
.opencode/配置。- 全局配置放软链接目录,便于所有项目共享。
- 查看当前加载的扩展:输入
/debug config或/help。
OpenCode 性能优化主要通过 opencode.json(或 opencode.jsonc)中的 snapshot、compaction 以及 provider 配置实现。
对于大型仓库(超过 1000 个文件、多个子模块或文件列表极长的项目):
快照(snapshot)系统会使用内部 Git 仓库跟踪所有更改,在大型项目中可能导致索引变慢和显著的磁盘占用。
推荐配置(在项目根目录或配置目录下的 opencode.json 中添加):
json{
"$schema": "https://opencode.ai/config.json",
"snapshot": false
}
snapshot: false 可大幅提升大型项目启动和操作速度,同时禁用 UI 回滚功能(代理修改无法通过界面撤销)。.gitignore(包括之前已被跟踪的文件)。.gitignore 并确保排除 node_modules/**、.git/**、 dist/**、 build/** 等目录。OpenCode 通过 compaction 自动管理会话上下文 token 占用,这是官方提供的内存/上下文优化手段。
推荐配置:
json{
"$schema": "https://opencode.ai/config.json",
"compaction": {
"auto": true,
"prune": true,
"reserved": 10000
}
}
参数说明:
auto: true —— 上下文满时自动压缩(默认开启)。prune: true —— 自动移除旧的工具输出,释放 token。reserved —— 保留的 token 数量(默认值通常为 10000,根据实际模型调整)。此配置可有效防止长时间会话导致的内存占用过高问题。
网络相关配置统一放在 provider 下(支持 Anthropic、OpenAI、Ollama 等所有提供商)。
推荐配置示例(以 Anthropic 为例,其他提供商同理):
json{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"options": {
"timeout": 300000,
"chunkTimeout": 30000
}
}
}
}
参数说明:
timeout —— 整体请求超时(单位:毫秒,默认 300000,即 5 分钟)。chunkTimeout —— 流式响应块之间的超时(单位:毫秒)。提示:Windows 用户若使用 Bun 安装或二进制运行,网络优化效果更明显;如遇代理环境,可在 v1.4.0+ 版本中通过 HTTP 代理支持进一步配置。
- 在项目根目录创建/编辑
opencode.json。- 添加上述配置后,重启 OpenCode(
opencode或opencode web)。- 配置会自动生效(支持 JSONC 注释)。
OpenCode v1.4.6 始终自动记录日志,无需在 opencode.json 中添加任何 "logging" 配置(该配置在当前版本中不存在,添加后会被忽略或导致配置文件加载警告)。
日志位置(Windows): %USERPROFILE%.local\share\opencode\log\ (文件名为时间戳,例如 2026-04-15T235200.log,自动保留最近 10 个日志文件)
开启详细调试日志:
opencode --log-level DEBUG
或
opencode --print-logs
**** 强烈建议开启。 几乎所有问题(API 连接失败、权限错误、TUI 无响应、配置文件加载失败等)都能通过 DEBUG 级日志快速定位根因。官方 troubleshooting 页面也明确指出:“To debug issues with OpenCode, start by checking the logs”。
查看日志快捷方式:
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
opencode 命令未找到 | Node.js 全局路径未正确配置 | 1. 重启 PowerShell 2. 执行 npm list -g opencode-ai 确认安装路径3. 将安装路径添加到系统环境变量 PATH 4. 重启终端 |
| 权限限制不生效 / 子项目仍可访问其他目录 | 配置文件语法错误、未重启、或使用了相对路径 | 1. 检查 opencode.json JSON/JSONC 格式是否正确(无多余逗号)2. 使用绝对路径配置 permission(推荐使用 \\)3. 重启 OpenCode 4. 确保每个项目 workspaceDirectory 不同 |
| 无法连接 LLM 提供商 | API 密钥无效、网络问题、或提供商配置错误 | 1. 在 TUI 中输入 /connect 重新验证密钥2. 检查网络连接 3. 查看 DEBUG 日志获取具体错误 4. 运行 opencode models 检查可用模型 |
| D 盘访问权限错误 / 目录不存在 | D:\opencode 目录不存在或权限不足 | 1. 执行 Test-Path D:\opencode 验证目录2. 右键目录 → 属性 → 安全 → 检查权限 3. 如不存在则手动创建目录 |
| 配置文件加载失败 | 文件位置错误、编码不是 UTF-8、或路径分隔符问题 | 1. 使用 VS Code 或 Notepad(以 UTF-8 编码)编辑 2. 确认文件路径正确 3. 重启 OpenCode |
| OpenCode TUI 无响应 | 网络不稳定、LLM 请求超时 | 1. 检查网络 2. 在 provider 下增加 timeout(见第 9 章)3. 重启 OpenCode 4. 查看 DEBUG 日志 |
| 文件访问超时(大型项目) | 大型项目索引性能不足 | 1. 在 opencode.json 中设置 "snapshot": false(大幅提升速度)2. 优化 .gitignore 排除 node_modules、dist 等3. 使用 compaction 配置(见第 9 章) |
| 环境变量未生效 | PowerShell 会话缓存 | 1. 关闭并重新打开 PowerShell 2. 若安装了 Chocolatey,执行 refreshenv3. 重启系统 |
| NPM 安装包失败 | 网络问题或镜像源问题 | 1. 更换镜像源:npm config set registry https://registry.npmmirror.com2. 清除缓存: npm cache clean --force3. 检查网络后重试 |
- 优先级最高:始终先查看 DEBUG 日志(官方推荐 + 最有效)。
- 所有配置相关问题都强调“重启 OpenCode 后生效”。
- Windows 用户重点保留 PowerShell、D 盘、路径分隔符等实用操作。
如使用的是 OpenAI 或 Gemini 模型,请输入:https://api.aiguoguo199.com/v1
如使用的是 Claude 模型,请输入:https://api.aiguoguo199.com
模型ID必须与下列相符,可自行挑选需要的
markdownclaude-haiku-4-5-20251001 claude-opus-4-1-20250805 claude-opus-4-1-20250805-thinking claude-opus-4-20250514 claude-opus-4-20250514-thinking claude-opus-4-5-20251101 claude-opus-4-5-20251101-thinking claude-opus-4-6 claude-opus-4-6-thinking claude-sonnet-4-20250514 claude-sonnet-4-20250514-thinking claude-sonnet-4-5-20250929 claude-sonnet-4-6 gemini-2.0-flash gemini-2.0-flash-001 gemini-2.0-flash-lite gemini-2.0-flash-lite-001 gemini-2.5-computer-use-preview-10-2025 gemini-2.5-flash gemini-2.5-flash-image gemini-2.5-flash-image-preview gemini-2.5-flash-lite gemini-2.5-flash-lite-preview-09-2025 gemini-2.5-flash-native-audio-latest gemini-2.5-flash-native-audio-preview-09-2025 gemini-2.5-flash-native-audio-preview-12-2025 gemini-2.5-flash-nothinking gemini-2.5-flash-preview-tts gemini-2.5-pro gemini-2.5-pro-preview-tts gemini-2.5-pro-thinking-128 gemini-2.5-pro-thinking-512 gemini-3-flash-preview gemini-3-flash-preview-nothinking gemini-3-pro-image-preview gemini-3-pro-preview gemini-3-pro-preview-thinking gemini-3.1-flash-image-preview gemini-3.1-flash-image-preview-c gemini-3.1-flash-lite-preview gemini-3.1-pro-preview gemini-3.1-pro-preview-customtools gemini-embedding-001 gemini-embedding-2-preview gemini-flash-latest gemini-flash-lite-latest gemini-pro-latest gemma-3-12b-it gemma-3-27b-it gemma-3n-e2b-it claude-3-5-haiku-20241022 claude-3-5-sonnet-20240620 claude-3-5-sonnet-20241022 claude-3-7-sonnet-20250219 claude-3-7-sonnet-20250219-thinking claude-3-haiku-20240307 claude-haiku-4-5-20251001-thinking claude-sonnet-4-5-20250929-thinking claude-sonnet-4-6-thinking dall-e-3 deepseek-chat deepseek-r1 deepseek-reasoner gemini-3-flash gemini-3-pro-high gemini-3-pro-low gpt-3.5-turbo gpt-3.5-turbo-0125 gpt-3.5-turbo-1106 gpt-3.5-turbo-16k gpt-3.5-turbo-16k-0613 gpt-3.5-turbo-instruct gpt-3.5-turbo-instruct-09-14 gpt-4-0125-preview gpt-4-0613 gpt-4-1106-preview gpt-4-32k gpt-4-32k-0613 gpt-4-turbo gpt-4-turbo-2024-04-09 gpt-4-vision-preview gpt-4.1 gpt-4.1-2025-04-14 gpt-4.1-mini gpt-4.1-mini-2025-04-14 gpt-4.1-nano gpt-4.1-nano-2025-04-14 gpt-4.5-preview gpt-4.5-preview-2025-02-27 gpt-4o gpt-4o-2024-05-13 gpt-4o-2024-08-06 gpt-4o-2024-11-20 gpt-4o-mini gpt-4o-mini-2024-07-18 gpt-4o-mini-transcribe gpt-4o-mini-tts gpt-4o-transcribe gpt-5 gpt-5-2025-08-07 gpt-5-chat-latest gpt-5-codex gpt-5-mini gpt-5-mini-2025-08-07 gpt-5-nano gpt-5-nano-2025-08-07 gpt-5-pro gpt-5-pro-2025-10-06 gpt-5-search-api gpt-5-search-api-2025-10-14 gpt-5.1 gpt-5.1-2025-11-13 gpt-5.1-chat-latest gpt-5.1-codex gpt-5.1-codex-2025-11-13 gpt-5.1-codex-max gpt-5.1-codex-max-2025-12-04 gpt-5.1-codex-mini gpt-5.1-codex-mini-2025-11-13 gpt-5.2 gpt-5.2-2025-12-11 gpt-5.2-chat-latest gpt-5.2-codex gpt-5.2-codex-2026-01-14 gpt-5.2-codex-max gpt-5.3-codex gpt-5.3-codex-max gpt-5.4-nano gpt-image-1 gpt-image-1-mini gpt-image-1.5 gpt-oss-120b gpt-realtime grok-3 grok-4-0709 gte-rerank-v2 o1 o1-2024-12-17 o1-mini o1-mini-2024-09-12 o1-preview o1-preview-2024-09-12 o3 o3-2025-04-16 o3-deep-research o3-deep-research-2025-06-26 o3-mini o3-mini-2025-01-31 o3-pro o3-pro-2025-06-10 o4-mini o4-mini-2025-04-16 qwen-max qwen-max-longcontext qwen-plus qwen-turbo qwen3-235b-a22b qwq-32b text-embedding-3-large text-embedding-3-small text-embedding-ada-002 text-embedding-v1 tts-1 tts-1-1106 tts-1-hd tts-1-hd-1106 whisper-1