Skip to content

系统 ​

设置 → 系统 —— 在应用中标记为 系统管理 —— 是运维界面:“管理应用更新、开机自启、网络代理和语言偏好”,外加第五个面板,用于备份和恢复一切。五个相互独立的部分,各自保存;这里没有任何东西需要页面级的保存。

软件更新 ​

检查所配置的发布来源是否有更新版本的 Codeg,并在可以的地方就地安装它。面板显示你的当前版本和一个检查更新按钮;检查之后,它会记下时间(“上次检查…”),并显示 “你已是最新版本” 或那个正等待你的发布版本的详情 —— 它的版本、日期和完整的发布说明。

你不必特意来找

新版本也会在工作区里主动现身:状态栏会出现一个 New v… 徽章,它的浮层里同样有版本号、更新内容说明和各项操作。两处读取的是同一次检查 —— 一次拉取同时回答两边,因此它们永远不会说法不一。稍后会忽略某个版本,按版本生效并同步到每个打开的窗口,留下一个仍可点击的灰色图标;下一个版本会重新点亮徽章。

更新说明会用你的语言呈现。 Codeg 每个版本都发布为一份正文,里面装着英文说明、一个分隔线,然后是中文翻译——于是两处界面过去都会给你看你读不懂的那一半,而在一个 320 像素宽的浮层里,那一半正好挡在你和按钮之间。从 0.25 起,与你的界面语言匹配的那一半会被挑出来:简体中文与繁體中文取中文,其余八种语言取英文。切分点读的是发布格式实际写下的那个分隔线,而不是靠「中文从哪里开始」去猜——因此一份没有分隔线的说明会完整呈现,而不是被截断到两边读者都看不全。

升级按钮的行为取决于你在哪里运行 —— 这是桌面与服务器真正有所不同的唯一界面:

  • 桌面应用 —— 升级到 vX 会下载该发布版本、显示进度条,并在准备就绪时切换为 重启以更新;点击它会重新启动进入新版本。这是 Codeg 内置的自动更新器。
  • 可自更新的服务器 —— 支持就地更新的独立 codeg-server(或 Docker)行为相同:下载、进度、重启。关于服务器更新如何工作,见部署。
  • 任何无法自更新的情况 —— 较旧的远程服务器会回退到一个 查看 vX 发布 按钮,它会打开 GitHub 发布页面,让你手动更新它。

回滚(仅限服务器)

可自更新的服务器会保留上一个二进制文件,因此升级之后会出现一个 回滚 按钮 —— “恢复到上次升级前所安装的版本。” 它是为那种只在后来才浮现的回归而准备的 —— 也就是在自动的试用窗口检查早已通过之后。桌面应用通过操作系统的安装程序更新,不提供这一项。在 Docker 上,就地升级只在容器被重建之前有效 —— “若要保留它,请拉取或构建新版本的镜像并重建容器。”

写不进自己安装位置的服务器,会在你动手之前就说出来。 自 0.32.1 起,可自更新的 codeg-server —— 在 Linux 或 macOS 上 —— 会提前检查它能否同时写入二进制文件所在的位置和 Web 文件所在的位置。写不进时,面板会用琥珀色指出是哪个目录,如果系统给出了原因(比如磁盘已满)也会一并说明;升级按钮会变成 查看 vX 发布,让你手动更新,而在有新版本可装期间,状态栏的更新浮层也会这么说。过去它会一路走到安装那一步,然后只丢下一句光秃秃的请关闭应用后重试。除非问题出在缺少权限,回滚 仍然可用。

如果检查或安装失败,原因会就地显示 —— 无法访问的更新来源、网络错误,或下载或安装失败 —— 通常是连接性问题,下面的代理面板可以处理它。

开机自启 ​

0.27 新增的一个开关:“登录这台电脑后自动打开。” 仅限桌面端,在 macOS、Windows 和 Linux 上一样可用。在 macOS 上它注册的是一个 Launch Agent,所以打开它不会触发「自动化」权限提示。

Codeg 不保存这个设置的任何副本 —— 操作系统自己的启动项就是这个设置,开关是从它那里读回来的。这带来一个具体的差别:之后开关显示的是系统最终认可的状态,而不是你请求的状态。如果 Codeg 之外的什么东西否决了这个启动项 —— 通常是 Windows 任务管理器的启动标签页 —— 开关会翻回关闭,而不是声称一个机器并不认同的状态。如果这个启动项根本读不到,面板会直说,而不是去猜。

网络代理 ​

将 Codeg 自身的网络流量通过代理路由。勾选 启用系统代理 并输入一个 代理地址;此后,“后续的网络请求会优先使用此代理(包括 ACP 聊天、智能体安装和 Git 远程操作)。”

该地址接受一个 http、https 或 socks5 URL —— 占位符是 http://127.0.0.1:7890,一个典型的本地代理。代理启用后它是必填的(打开代理而不填地址会被拒绝),且该设置随手保存 —— 切换复选框或离开该字段都会提交它。它仅在 启用系统代理 打开时生效;取消勾选即可重新直连。

不写协议头,Codeg 会替你补上。 光写 127.0.0.1:7890 从前也能通过校验并被原样存下 —— 更新和二进制下载还扛得住,但 npm 会拒绝每一次智能体安装,只丢下一句光秃秃的 ERR_INVALID_URL,完全看不出原因。从 0.28 起,没有协议头的地址会在保存时、以及再次交给子进程时被规范化为 http://,而已经写明协议的地址则原样保留,因此 socks5:// 代理绝不会被改写。旧版本存下的值会在读取时被修好。从 Codeg 外部设置的代理 —— docker -e、shell export —— 则刻意保持你写的样子;如果 npm 因此报错,错误信息会点出是哪个变量,而不必你自己去找。

不走代理的地址 列出哪些目标应当直连 —— 这是 0.32.2 新增的。各条目之间用逗号分隔、不加空格:example.com 匹配该域名,.example.com 匹配它的所有子域名,IP 地址也可以。本机地址 —— localhost、127.0.0.1、::1 —— 总是直连,无需列出。该字段在你离开它时保存;代理开启期间,这份列表会以 NO_PROXY 环境变量的形式生效,对 Codeg 以及它启动的每一个智能体都是如此。列表里任何位置出现 *,都表示全部绕过代理,此时 Codeg 会只传一个 * 出去,因为 Python 和 curl 只在 * 是整个取值时才认它。

* 对 Antigravity 1.3.0 不再完全生效

自 0.34.0 起固定的 Antigravity 1.3.0,只要设置了代理,就会自己把本机地址追加进 NO_PROXY。这会把单独一个 * 变成 *,localhost,127.0.0.1,::1——一个列表,而 Python 会跳过列表里的 *。所以在配置了代理、而这份列表里(或者你自己导出的 NO_PROXY 里)有 * 时,Antigravity 自己的一部分请求——它的 Python 服务发出的那些——会重新走代理。想让它们保持直连,就把它们需要访问的主机逐个列出来,而不是写 *。

这条本机例外同样适用于你从 Codeg 外部设置的代理,也正是它让 OpenCode 和 Antigravity 在代理架设于另一台机器上时依然能用:两者都要和各自的一个本地服务通信,而在 0.32.2 之前,这些连接也会被送进代理,结果以 OpenCode service failure 或 Failed to connect to WebSocket 失败。

这就是承载 Codeg 一切对外请求的代理 —— 你的账户所认证的 Git 操作、智能体安装、模型流量。若要在应用启动之前从环境中设置代理,见配置。

语言 ​

设置 Codeg 自身界面的语言 —— 菜单、按钮、设置。应用语言 可以是 跟随系统 或十种之一:英语、简体中文和繁体中文、日语、韩语、西班牙语、德语、法语、葡萄牙语,以及阿拉伯语。跟随系统区域设置时,“不支持的语言会回退到英语。” 该选择立即生效并被记住。

(这是桌面或浏览器应用的界面语言 —— 与任何单个对话的语言,或本文档站点的语言无关。)

备份与恢复 ​

一个便携的 Codeg 安装快照 —— “导出你的 codeg 数据的便携备份,或从中恢复。” 两个标签页:备份 和 恢复。

备份 ​

导出会写出一个包含你的数据库和上传内容的 .codegbak 归档文件。有两个选项来塑造它:

  • 包含对话内容 (默认关闭) —— “同时归档智能体 CLI 的会话记录(Claude、Codex、Gemini……)。会增大体积。” 关闭时,备份只是你的 Codeg 数据;打开时,它还会拉入底层智能体 CLI 各自的会话记录文件。
  • 口令 (可选) —— 加密归档。留空则 Codeg 会以琥珀色警告 “此备份将以明文包含机密(API 密钥、令牌)” —— 因为它确实如此;请把它存放在安全的地方。设置一个,则相反的告诫适用:“如果你丢失了它,备份将无法恢复。”

导出备份 会构建它 —— 桌面应用保存一个文件,浏览器会话则下载一个。

有些智能体把会话存在 SQLite 里,而一个正被打开着的 SQLite 没法简单复制。从 0.30.4 起,导出会点名那些需要特殊处理的(没被点名就说明普通复制成功了),并写明它遇到的是三种情况中的哪一种:从一份私有副本中恢复(完整)、未连同预写日志一起归档(最新的消息可能缺失),或者根本没有归档 —— 因为它在复制过程中一直在变,或者压根复制不出来,而这总好过归档一份撕裂的副本。面板会列出前八条,其余的只给一个计数。在此之前,OpenCode、Hermes、Cursor 和 Antigravity 的数据库可能还原回来时丢掉最新的消息、旁边还躺着一份过期的日志;而自定义 ACP 智能体的对话还原回来是在的、却是空的 —— 它们的消息正文备份和恢复两条路径都没打包。

恢复 ​

选择备份文件(.codegbak 或 .zip),Codeg 会在做任何事之前先检查它。如果它是加密的,你会被要求输入口令;然后一个 备份详情 卡片会显示它是何时制作的、由哪个应用版本制作,以及它是否兼容 —— 来自比你正在运行的更新的 Codeg 的备份无法恢复。

恢复是一次完全替换,面板对此直言不讳,用红色标出:“恢复会替换所有当前的 codeg 数据(数据库和上传内容)。你的当前数据会先被快照,以便可以恢复。” 你要通过一个 替换所有数据? 对话框确认,之后 Codeg 会暂存恢复并重启以应用它。

动手之前有两件事值得了解:

  • 桌面备份不携带你的钥匙串机密。 “桌面端的 GitHub/聊天令牌存放在你操作系统的钥匙串中,不包含在内;恢复后请重新输入它们。” 在服务器上,这些相同的令牌存放在一个确实在备份中的文件里 —— 区别正是版本控制下所述的那种系统密钥环划分。
  • 恢复对话内容是单独的选择。 如果备份包含了智能体 CLI 的会话记录,你要选择它们落在哪里 —— 跳过它们、把它们放进一个安全的旁侧文件夹,或把它们写回原始的 CLI 位置(附带冲突扫描和可选的覆盖),好让智能体重新看到它们的历史。

恢复前的快照 ​

那句警告里说的快照不是一种修辞 —— 它是一份列出来、你可以退回去的东西。恢复前的快照就在恢复控件下方,通常保留最新的两份。

带着清单(记录了恢复前哪些东西不存在)的快照会提供回退到这一份;而在这份清单出现之前写下的快照只会列为仅供查看,因为没有它,一次回退分不清「这个别动」和「这个本来就不存在,删掉」。回退会用那份快照替换你当前的数据并重启,而让它值得一试的正是这一点:它在替换的路上,又把被替换掉的数据快照了一份,所以这次回退本身也是可逆的。

一次恢复也会报告它做了什么,而不是留给你去猜:恢复已暂存,并附上因为你没有选择覆盖而被保留的文件数、没能写回的会话数据库数,以及 —— 当有智能体正在运行、它们的会话记录改落到旁侧文件夹时 —— 是哪些智能体、落到了哪个路径。

备份作用于这台机器

备份和恢复作用于实际运行 Codeg 的那台机器的数据。如果你身处一个连接到远程工作区的桌面应用中,该面板会被禁用,并附注 “请直接从那台服务器管理它的备份” —— 这里的原生文件对话框与远程服务器的存储对不上。

值得了解 ​

  • 五个面板,五次独立的保存。 代理、语言、开机自启和更新检查各自行事;没有页面级的保存,改动其中一个绝不会触及另一个。
  • 开机自启没有本地副本。 操作系统的启动项就是这个设置,因此开关显示的是你的机器实际认可的状态。
  • 桌面和服务器的更新方式不同。 桌面应用自动安装并重新启动;服务器就地更新并重启(且可以回滚);旧的远程服务器只是给你链接到发布页面。同一个面板,三种行为。
  • 未加密的备份就是明文机密。 除非你设置口令,否则 API 密钥和令牌会以明文随行 —— 请加密它,或把文件保存在可信之处。Codeg 一般如何处理机密,见隐私与安全。
  • 恢复是替换,但可逆。 它会整体换入备份的数据库和上传内容 —— 但会先快照你的当前数据,而那份快照会连同一个回退按钮一起列出来,因此一次误操作的恢复可以被撤回。
  • 代理是应用级的。 一旦打开,它就同时承载 git、智能体安装和模型调用 —— Codeg 对外的一切都经由这一条路径。
  • 部署 —— codeg-server 和 Docker 的就地更新,以及服务器在哪里保存桌面备份所遗漏的那些令牌。
  • 配置 —— 在应用启动前,从环境中设置代理及其他选项。
  • 版本控制 —— 桌面备份刻意排除的那个操作系统钥匙串。
  • 隐私与安全 —— 明文机密、加密,以及什么会离开你的机器。
  • 参考概览 —— 完整的 17 个设置界面地图。

基于 Apache-2.0 许可证发布。