📚AI 编程官方教程中文版
官方教程中文版个性化

切换主题

选择内置主题,或用少量颜色定义自己的 OpenCode 主题。

主题只影响阅读体验,不影响模型能力。新手优先从内置主题开始,不要一上来复制一份几百行配色表。

先理解它解决什么问题

主题配置解决的是长时间阅读和对比代码时的可读性问题。新手常见误区是把主题当成装饰,结果复制了一大段颜色表,却没有检查最关键的几处:正文、选中项、diff、新增删除、错误提示。

正确顺序是:

  1. 先选一个内置主题。
  2. 确认终端支持真彩色。
  3. 只在确实读不清时自定义少数颜色。
  4. 最后才考虑完整主题。

先选内置主题

OpenCode 内置了多种主题,例如 systemtokyonighteverforestayucatppuccingruvboxkanagawanordmatrixone-dark

建议优先试这三个:

  • system:跟随终端背景,适合已经精调过终端配色的人。
  • tokyonight:暗色终端常用,层次比较清晰。
  • catppuccin:对比度温和,长时间阅读不刺眼。

tui.json 中指定主题:

{
  "$schema": "https://opencode.ai/tui.json",
  "theme": "tokyonight"
}

终端要求

如果主题颜色看起来发灰或不准,先检查终端是否支持真彩色:

echo $COLORTERM

输出最好是 truecolor24bit。多数现代终端默认支持;如果没有,可以在 shell 配置里设置 COLORTERM=truecolor

自定义主题放哪里

自定义主题是 JSON 文件,按优先级从这些位置加载:

  1. 用户级:~/.config/opencode/themes/*.json
  2. 项目级:<project-root>/.opencode/themes/*.json
  3. 当前工作目录:./.opencode/themes/*.json

同名主题会被更高优先级的目录覆盖。个人偏好放用户级;项目统一视觉风格放项目级。

最小自定义主题

自定义主题不需要从完整配色表开始。先定义基础颜色,确认读写舒服,再逐步细化语法高亮和 diff 颜色。

{
  "$schema": "https://opencode.ai/theme.json",
  "theme": {
    "primary": "#88C0D0",
    "accent": "#A3BE8C",
    "error": "#BF616A",
    "text": "none",
    "background": "none",
    "backgroundPanel": "#2E3440",
    "border": "#4C566A"
  }
}

"none" 表示继承终端默认前景色或背景色。它适合想让 OpenCode 和终端整体外观保持一致的场景。

创建文件

用户级主题:

mkdir -p ~/.config/opencode/themes
vim ~/.config/opencode/themes/my-theme.json

项目级主题:

mkdir -p .opencode/themes
vim .opencode/themes/my-theme.json

创建后在 tui.json 中把 theme 设置为文件名对应的主题名。

设计建议

主题最重要的是对比度,不是颜色数量。优先检查这几处:

  • 普通正文是否足够清晰。
  • 当前选中项是否一眼能看出来。
  • diff 新增和删除是否容易区分。
  • 暗色 / 亮色终端下是否都能读。

如果你已经有成熟终端主题,system 往往比自定义 OpenCode 主题更省维护。

怎么判断主题可用

切换主题后,用一个真实会话检查这些画面:

  • 普通回答是否能连续阅读十分钟不累。
  • 代码块和正文是否有明显区分。
  • diff 里的新增和删除是否不用猜。
  • 当前选中的菜单项是否足够醒目。
  • 错误、警告、成功状态是否能一眼分辨。

如果这些都没问题,就不需要继续调色。主题配置的目标是降低阅读负担,不是追求配置完整。

© Anomaly

最近更新: 2026年5月1日

On this page