无需下载 · 一条命令

把 OpenCode 恢复干净
只需要一行命令

重置用户数据、升级或降级版本、备份与恢复。复制下面任意一行直接运行, 不用先下载脚本,也不用打开编辑器。

选择你的系统 命令会自动带上当前域名

macOS / Linux Windows
先看看状态 · 不会改动任何文件
curl -fsSL /sh | bash -s -- --status
复制
交互菜单 · 推荐
bash <(curl -fsSL /sh)
复制
清空数据,保留登录信息 · 先自动备份
curl -fsSL /sh | bash -s -- --execute --backup --keep auth
复制
只升级到同系列最新 · 不动任何数据
curl -fsSL /sh | bash -s -- --execute --version latest
复制
先看看状态 · 不会改动任何文件
iex "& { $(irm /ps) } -Status"
复制
交互菜单 · 推荐
irm /ps | iex
复制
清空数据,保留登录信息 · 先自动备份
iex "& { $(irm /ps) } -Execute -Backup -Keep auth"
复制
只升级到同系列最新 · 不动任何数据
iex "& { $(irm /ps) } -Execute -Version latest"
复制
◆
默认只演练,不动手。 不加 --execute / -Execute 时,它会先告诉你打算做什么,确认没问题再加参数执行。

它能做什么

重置数据

清空 data / state / config / cache / tmp,可选保留登录信息与配置目录。

升级与切版本

自动识别 1.x 与 2.x 两条版本线,可装当前、同系列最新或指定版本。

备份与恢复

动手前把 data / state / config 打包保存,之后可以一键回滚。

彻底重装

清空用户数据并重装 CLI,回到和刚安装时一样的状态。

为什么可以放心跑 源码可审

1
所有检查前置 版本、包名、安装方式、权限、registry 可用性全部检查完才动手,不通过直接中止,一个文件都不动。
2
顺序是安全的 读登录信息 → 停服务 → 备份 → 安装 → 删数据。安装失败时,用户数据完好无损。
3
只删该删的 只处理名字叫 opencode 的目录和数据库文件,拦家目录与盘符根目录。
4
不穿过符号链接 目录是软链时只清空它指向的真实内容,链接本身保留;指向的目录名不对就直接拒绝。
5
登录信息不会丢 通过 opencode auth export / auth import 中转;导入失败会把凭据留到备份目录并给出恢复命令。
6
恢复是软的 先拷到临时目录,成功了再替换,失败自动换回原目录,不会出现半途而废的状态。

查看源代码 脚本加密,但可完整审阅

直接 curl / irm 拿到的是加密后的入口文件——不是明文脚本,也没法直接读懂。 但源码是公开的:点下面的按钮可以在这里把完整源码展开来看,或者下载成文件慢慢审。

bash 源码 PowerShell 源码 下载 .sh 下载 .ps1
点击上方按钮加载源码
命令行里也可以直接看
curl -fsSL /source/sh.txt | less
复制
Windows
irm /source/ps.txt | more
复制

环境体检 出问题时先跑这个

只读诊断:检查 Node / npm / registry 连通性、数据目录可写性、磁盘余量、备份数量、是否有进程占用。 不改动任何文件,出问题可以直接把这个结果发出来。

Windows
iex "& { $(irm /ps) } -Doctor"
复制
macOS / Linux
curl -fsSL /sh | bash -s -- --doctor
复制

管理备份

备份默认保留最近 5 份,超出会自动清理。也可以手动查看或指定保留份数。

查看所有备份
iex "& { $(irm /ps) } -ListBackups"
复制
只保留最近 3 份(先演练,确认后加 -Execute)
iex "& { $(irm /ps) } -PruneBackups 3 -Execute"
复制

只备份,什么都不改

单独用 -Backup / --backup 就只做备份。会话、登录信息、配置一个都不动,也不安装任何东西。

Windows
iex "& { $(irm /ps) } -Backup -Execute"
复制
macOS / Linux
curl -fsSL /sh | bash -s -- --backup --execute
复制

排障三件套

OpenCode 出问题时按顺序跑这三个,基本能定位到原因。

① 看日志 · 只读
iex "& { $(irm /ps) } -Logs -LogLines 100"
复制
② 看配置概况 · 只读
iex "& { $(irm /ps) } -Info"
复制
③ 清缓存 · 常能释放几百 MB
iex "& { $(irm /ps) } -CleanCache -Execute"
复制

更新日志

1.2.0 2026-11-01 最新
  • 新增「迁移包」 —— 把 data(会话 + 登录)、config、state 打成一个 .tar.gz,换电脑或重装系统时整个带走。2.5 MB 左右,比手工复制目录可靠得多。会排除 service.json、locks、shell、log —— 这些绑定当前机器,搬过去只会让新机器启动卡在陈旧锁上。导入前自动备份、自动停服务,解包失败可以回滚。
  • 新增「一键修复」 —— 重建缺失的 data / state / config / cache / tmp 目录,校验数据库文件头,清理「服务没在跑但 service.json 还在」的残留,清掉 7 天前的临时文件,检查 CLI 是否还能响应。只做保守修复,不碰会话和登录信息。
  • 新增「磁盘占用」 —— 各目录(data / state / config / cache / tmp / db)逐个列出体积和文件数,再按大小排出最大的 12 个文件。缓存那 247 MB 的服务二进制一眼就能看到。
  • 新增「会话管理」 —— 列出、批量导出、单条导出、删除会话。导出走 opencode session export,只认「非空且以 { 或 [ 开头」的结果,不会把错误信息当 JSON 存下来。删除要二次确认。
  • 新增「服务管理」 —— 查看 / 重启 / 停止 / 启动后台服务。后台服务卡住、改完配置不生效时最有用。
  • 新增「模型列表」 —— 列出当前账号可用的模型。
  • 新增「卸载」 —— 移除 CLI 本体,保留会话数据和登录信息。单独放在「危险操作」组,默认选「否」。
  • 菜单从 12 项扩到 19 项,分 4 组 —— 常用操作 / 备份·迁移 / 诊断与工具 / 危险操作。仍然是一行一项、输入序号。
  • 全部功能都有命令行参数 —— --sessions、--export-sessions、--migrate、--migrate-import、--service、--models、--disk、--fix、--uninstall,脚本里也能用。
1.1.2 2026-11-01
  • 交互菜单改回输入序号 —— 方向键菜单依赖「按行数上移光标重绘」,只要有一行折行或清行数算错,菜单就会逐帧往下漂、越按越乱。数字输入完全没有重绘,天然免疫这类问题,行为在窄终端、SSH、管道、CI 里完全一致。
  • 菜单一行一项 —— 序号、名称、说明压在同一行,例如 1) 查看状态 只读:版本、数据占用、登录信息,不改任何文件。原来说明单独占一行,12 个选项要滚两屏。
  • 空回车取默认值 —— 直接回车等于选第一项;q 取消。输错会提示范围并重问,不会退出。
  • 是/否确认改成 [Y/n] / [y/N] —— 大写的那个是默认值,直接回车即为默认;也接受 是 / 否 / y / n,q 取消。
  • 删掉一整套光标控制代码 —— 清行、上移、按键解析、终端宽度探测、按宽度截断这些全部移除,两个脚本各少了两百多行。少即是稳。
1.1.1 2026-11-01
  • 修复菜单重绘时逐帧往下漂 —— 清屏时光标少上移了一行,每按一次方向键整个菜单就往下错一行,连按几次后选项会一层层堆叠、看起来像一棵树。现在上移行数严格等于清行数,Esc 取消后也不会再多出一条竖线。
  • 修复窄终端下菜单折行错乱 —— 最长的选项有 56 列,终端比这窄时那一行会自动折成两行,但重绘仍按一行计算,于是越按越乱。现在所有绘制内容都按终端实际宽度截断并补省略号,30 列的终端也不会错位。
  • 修复 PowerShell 侧强制最小 40 列 —— 原来宽度用 Max(40, WindowWidth-1) 计算,终端比 40 列窄时内容照样溢出折行。现在优先用真实窗口宽度。
  • 菜单改成分组短标签 —— 12 个长句子换成「查看状态 / 清空数据 / 清空并重装……」这类短语,按「常用操作 / 备份 / 工具」分组;当前选中项的详细说明显示在底部那一行,列表本身保持干净。
  • 修复脚本源文件缺 BOM —— scripts/opencode-tool.ps1 在一次批量改写中丢了 UTF-8 BOM,PowerShell 5.1 直接运行它时会按 ANSI 解码,中文乱码导致 here-string 被截断、整个文件语法错误。已恢复,并在构建流程里加了强校验:缺 BOM 直接构建失败。
1.1.0 2026-11-01
  • 脚本加密 —— /sh 和 /ps 现在下发的是加密后的入口文件,直接 curl 或 irm 拿到的是密文,源码不会摊在 URL 上。PowerShell 侧为 gzip + AES-256-CBC,bash 侧为 gzip + base64 + 字母表移位(零外部依赖,Linux / macOS / Git Bash 通用)。
  • 新增「查看源代码」面板 —— 加密不等于黑箱。页面里的按钮可以直接展开完整源码,也可以下载成 .sh / .ps1 文件慢慢审。
  • 修复登录信息统计错误 —— 过滤条件写成了 -match 'S'(应为 '\S'),导致每行都被算成一条登录记录,永远显示「N 条」。
  • 修复配置文件解析失败 —— 去注释的正则写成了 ^s*//(反斜杠丢了),正确是 ^\s*//;带注释的 opencode.jsonc 一直解析不出来。
  • 修复会话数虚高 —— 空行过滤同样丢了反斜杠,空行被算进会话数。
  • 修复耗时永远为空 —— Stop-Stage 在未调用 Start-Stage 时读取未定义变量,在 Set-StrictMode -Version 2 下会直接抛异常。已给变量设初始值。
  • 输出彻底中文化 —— 清掉最后残留的 Cancelled / dry run / Ready / Done 等英文;交互确认项由 Yes / No 改为 是 / 否。
  • 删除死代码 —— 未使用的 Write-Pair、重复的注释分节块。
  • 构建期自检加强 —— 每次构建都会把密文按运行时算法解回来跟源码逐字节比对,不一致就构建失败;同时校验入口不含明文特征、不含域名、不含非 ASCII。
1.0.2 2026-11-01
  • 修复一个会造成数据丢失的问题 —— 之前单独用 -Backup / --backup 会被误判成「重置」,配上 -Execute 就会直接删掉会话数据。现在它只做备份,一个文件都不动。
  • 新增 -Logs / --logs —— 直接看 OpenCode 最近的日志,不用自己去翻目录。配 -LogLines N / --log-lines N 指定行数。
  • 新增 -Info / --info —— 一屏看清:版本、安装方式、配置文件内容摘要(当前模型、agent / plugin / MCP 数量)、数据库大小、会话数、登录数、备份情况。
  • 新增 -CleanCache / --clean-cache —— 只清缓存目录(实测常有 200+ MB),会话、登录信息、配置一个都不碰。默认演练,加 -Execute 才真删。
  • 交互菜单重排 —— 12 个选项按「常用操作 / 备份 / 工具」分组。新增「只备份」「查看日志」「清理缓存」「配置概况」四项。
  • 操作计时修好了 —— 之前 Stop-Stage 被连调两次,耗时永远是空的;现在正常显示 (438ms) 这类结果。
  • 输出全部中文化 —— 之前中英混杂(User data、Login: none、-Done 之类),现在统一成中文,只有 data / db 这类目录名保留原名并附中文标注,如 data(会话与登录)。
  • 备份路径拼错 —— 计划里显示成 Documents 后面少了路径分隔符,已修。
  • 计划区重复行 —— -Backup 时「备份到」会打印两次,已去重。
  • 清理保护 —— -PruneBackups 0 这种会删光所有备份的输入现在直接拒绝。
1.0.1 2026-10-31
  • 交互菜单支持键盘选择 —— 早期版本试过方向键菜单。(1.1.2 起已改回输入序号,原因见 1.1.2 的说明。)
  • 是/否确认 —— 早期版本用过 > Yes / No 光标切换。(1.1.2 起改为 [Y/n] 直接输入。)
  • 终端输出对齐 opencode 真实样式 —— 用 T | • ! — 四个符号,格式为 • Key: Value 与 • Key: Value 缩进子项,组间以单独的 | 分隔。管道输出时自动去掉颜色。
  • 新增 -Doctor / --doctor —— 只读环境体检:Node / npm / registry 连通性、各数据目录可写性(真的写一个探针文件再删)、磁盘余量、备份数量、进程占用。有问题会汇总成清单。
  • 新增 -ListBackups / --list-backups —— 列出全部备份,含大小与包含哪些目录,标出最新一份。
  • 新增 -PruneBackups N / --prune-backups N —— 只保留最近 N 份,其余删除。默认演练,加 -Execute / --execute 才真删。
  • 备份自动保留策略 —— 每次备份后自动只保留最近 5 份(-KeepBackups N / --keep-backups 可调),避免备份堆积占满磁盘。
  • 备份前检查磁盘 —— 剩余不足 2 GB 直接拒绝备份并说明原因,不会备份到一半失败。
  • 操作计时 —— 停止服务、备份等阶段显示耗时(如 (1.2s))。
  • 交互菜单新增两项 —— 「环境体检」和「管理备份(查看 / 清理)」。
  • 修复 —— 验证阶段 session list / auth list 的输出格式统一;删除失败时不再只提示一个数字。
1.0.0 2026-10-31
  • 首个版本 —— 一条命令完成 OpenCode 的重置、升级、备份与恢复。
  • 自包含入口 —— /ps 是纯 ASCII,完整脚本 base64 内嵌,不依赖任何域名,换域名不用重新打包。
  • 安全设计 —— 预检全部前置;顺序为「读登录信息 → 停服务 → 备份 → 安装 → 删数据」;只删名为 opencode 的目录和 opencode.db;符号链接只清目标不穿透;登录信息走 auth export/import 中转。
  • 落地页 —— MDUI / Material You,自动跟随系统深色模式。