Skip to content

⚡帮你从 iFlow CLI 无缝迁移到OpenCode

约 4175 字大约 14 分钟

2026-03-23

0. 写在开头的话

好的,我非常理解大家的心情,我明白大家对iFlow CLI的不舍之情,因为我也一样……但是我们还是要向前看,iFlow CLI固然是好用顺手,陪我们度过了一个一个难忘的日子,但随着后续团队业务重心的转向,iFlow CLI从2026年3月20日之后,原则上不再进行维护和更新功能了,那么随着时间的推移,抱守不再更新的工具也并非明智之举,其实开源项目里,opencode的体验也还是很不错的,推荐各位没有尝试过的小伙伴也都可以试一下。

为了让各位没接触过的小伙伴能更加顺利地从iFlow CLI迁移过来上手使用(包括过去的资源和使用习惯),我这里整理了一些迁移和使用方面的内容,如果有错误和遗漏的地方,也欢迎大家指出或补充,众人拾柴火焰高嘛~

1. 安装

1.1 Node.js

opencode和iflow一样,也是需要node.js的环境,当然如果是之前就在用iFlow的小伙伴,这部分就可以跳过了, 如果之前没有安装过类似CLI工具的小伙伴,可以先看下你的电脑上是否安装了node.js环境,打开你的终端,输入:

node -v

看看能否返回版本号,如果可以正常返回版本号,并且版本号高于20,也可以调过此步骤了,如果没有正确返回版本号,说明没有安装过,那么需要首先安装nodejs,去官网: Node.js — Download Node.js®,选择你对应平台和版本的安装方式,按照官网指示安装即可。

1.2. opencode

image

官网: OpenCode | 开源 AI 编程代理
Github: GitHub - anomalyco/opencode: The open source coding agent. · GitHub

有多种安装方式

curl:curl -fsSL https://opencode.ai/install | bash

npm:npm i -g opencode-ai

bun:bun add -g opencode-ai

brew:brew install anomalyco/tap/opencode

paru:paru -S opencode

安装完后输入opencode -v,能正常看到返回版本号就算是成功了。

image

2. 模型提供商接入

2.1 官方支持的供应商

如果是官方支持的供应商,可以在opencode中输入/connect命令,然后在供应商列表中选择一个。
image
比如智谱的coding plan

我扫了一眼,支持智谱的api,智谱coding plan,Nvidia,魔搭社区,Llama,小米,七牛云,Minimax Coding plan,阿里百炼Coding plan,Kimi coding plan,DeepSeek,OpenRouter,腾讯Coding plan等等……

image
之后再输入你的API Key即可。


image

哎……

2.2 自定义模型

如果你的模型供应商没有在上面的支持的列表里,不论您是购买的,还是从其他什么渠道获得的,通常来说关键信息就是三个

  • baseUrl
  • API Key
  • 模型标识

拿到这三样信息后,我们有两种方式来配置。

2.2.1 (古法) 手搓配置

当你安装完opencode后,会在你的用户目录下创建了一个~/.config/opencode目录,这里是放置opencode各项配置的地方,类似于iFlow CLI的~/.iflow/。

步骤1
使用opencode auth login进行认证登录,然后选择other。

image

接着输入你的供应商id,api key

步骤2

在~/.config/opencode/下边创建一个opencode.json文件,文件格式为:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "<你的模型供应商id>": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "<你的模型供应商显示名称>",
      "options": {
        "baseURL": "<之前获取到的baseUrl填这里>/v1",
      },
      "models": {
        "<模型id>": { "name": "<模型显示名称>" }
      }
    }
  }
}

步骤3

进入opencode,使用/models命令列出模型列表,你就能看到刚刚添加的模型了。

我这加了个iflow-ROME来演示效果:
image

给它发条消息测试下,收到回应就说明调通了
image

附:
配置文件里其实还可以配置更多的附件参数,例如

  • headers:随每个请求发送的自定义请求头。
  • options.headers:可选,设置自定义请求头。
  • limit.context:模型接受的最大输入 Token 数。
  • limit.output:模型可生成的最大 Token 数。

2.2.2 使用CC-Switch(推荐)

其实我更推荐您使用CC-Switch来配置管理您的模型配置,无论从配置难度上,还是管理、切换的便利性上来说,相比古法配置方法都要好上不少,答应我宝贝,别再手搓json配置了,对自己好点。

CC-Switch Github地址:
GitHub - farion1231/cc-switch: A cross-platform desktop All-in-One assistant tool for Claude Code, Codex, OpenCode, openclaw & Gemini CLI. · GitHub

直接到旁边release链接里,根据你的平台,下载对应的即可。

它有两种,一个是安装包的,一个是便携版(绿色版),便携版开箱即用,就是无法自动更新,根据你的喜好下载即可。

image

打开之后长这个样子,可以看到它现在支持ClaudeCode,Codex,GeminiCLI,OpenCode,OpenClaw。

切换到Opencode下边,点击添加供应商,自定义配置,还是输入供应商标识,名称,APIKey,BaseUrl,模型id,模型显示名称(还是熟悉的配方,熟悉的味道)

从后边的json看,其实就是提供了一个GUI界面,然后帮你拼成上面格式的json,写入opencode.json文件。因此你配置一次后,即便下次不启动cc-switch,也不会影响,因为配置已经写入文件了,除非你要切换供应商。

image
之后将你要切换的供应商"+添加"到你的配置中,就可以在opencode中的模型列表中使用了。

是不是比古法手搓方便多了!

3. Skills 迁移

其实这里我强烈建议你,除了你自己创建的那些私有skills,其他公共安装的,就别迁移了,直接使用 The Agent Skills Directory上的方式来安装skills,具有以下两个明显优势:

  • 统一:通过该方式安装的skills,会统一安装在一个地方,而在各个vibe coding工具中都可以读取或者通过符号链接的方式来使用skills,这避免了你在不同的工具中要重复安装skills的问题
  • 更新:是的,skills也是会更新的,通过此方式安装skills之后,你便可以通过npx skills update一键更新你所有的skills了。

至于你自己创建的skills,可以直接把skills的目录复制粘贴到~/.config/opencode/skills/下即可。

4. Subagents 迁移

可以直接将你在iflow中的subagent迁移到opencode中,创建~/.config/opencode/agents将你的subagent的md文档直接复制粘贴过来。

PixPin_2026-03-23_09-50-31

****注意:**迁移过来后,你可能会遇到启动opencode后显示报错,类似下面的样子:

PixPin_2026-03-23_09-51-45

感谢 @10011029045 大佬和 @10011114789 大佬的贡献。

这是由于配置的兼容性问题。

第一个是subagent定义里的模型名为空,第一个是颜色信息不支持。

对于第一个,我们只要打开对应subagent的md文档,在元数据中的model:后边填写优先使用的模型名称即可。

对于第二个,我们需要调整subagent标识颜色,iflow使用的是颜色的英文名称,opencode需要改成颜色的16进制标识,并且需要使用引号进行包裹。

区别对比:

PixPin_2026-03-23_09-54-09
iflow的配置格式

PixPin_2026-03-23_09-55-05
opencode的配置格式

5. MCP 迁移

将你的~/.iflow/settings.json中的"mcpServers":{}中的配置,复制粘贴到~/.config/opencode/opencode.jsonmcp:{}下面,保存。

6. 项目迁移

这个其实就做的时候,在项目目录下,/init一下就好,opencode的指令也是/init,并且opencode也是使用的AGENTS.md文档,这就是统一的好处啊。opencode会读取你iflow创建更新的AGENT.md文档内容,对项目进行初始化,你可以继续用opencode更新你的项目了。

对于那种比较老的项目,之前iflow创建的是IFLOW.md文档,您可以手动修改下文件名即可。

7. 通知提示功能

占坑,需要仔细研究下opencode的hook,等我下周一去单位再更新这块吧,先留个坑

8. 一些在iFlow中常用的命令映射到opencode,以及opencode中一些有意思的功能特性

8.1 常用命令映射关系

注:

  • 斜杠命令有多个的,说明有别名,都可以用
  • opencode的组合键,是先按ctrl+x松手,它会等待你继续按下一个命令键,再按一个键触发命令
命令内容iflowopencodeopencode(组合键)
压缩上下文/compress/compactctrl+x c
清空上下文/clear/new, /clearctrl+x n
切换会话/resume/sessions, /resumectrl+x l(是L,不是i)
跳转到指定对话内容/timelinectrl+x g
重命名会话/rename
切换模型/model/modelsctrl+x m
切换模式sifth+tab, alt+mtab(向下切换,默认bulid,第二个plan,之后是subagent,所以实际上opencode都是agent),shift+tab(向前切换)
回滚/restore/undo(可多次回滚)ctrl+-
重做/redoctrl+.
退出/quit/exit, /quitctrl+x q
主题/theme/themesctrl+x t
终止输出ESC两次 ESC
分支/fork
输入换行ctrl+Enterctrl+Enter
执行shell命令!开头切换shell模式!开头切换shell模式
导出会话/export/exportctrl+x x
分享会话/share
引用文件@@
显式调用subagent$tab, /agentctrl+x a

先整理这么多,基本涵盖之前在iFlow CLI中使用到的一些功能,映射到opencode里对应的命令,以及组合快捷键。

这里重点解释一下加粗的三个。

  • 清空上下文:在iFlow CLI中,仅仅是清屏+清空上下文,让上下文剩余百分比回满(100%)。在opencode中,其实它是在当前窗口中新开了一个会话,你原先的会话如果有任务,还会继续跑(对,并发!),你可以随时通过后边的切换会话命令/sessions或者快捷键ctrl+x l,回到你前一个会话去看执行的结果情况。
  • 分支:这是一个特性,用于某个地方,如果你拿不动主意哪个方案更好,可以/fork有个分支会话出来,进行ab方案的验证。
  • 切换到指定对话内容:之前其实也有小伙伴提过,对话内容太多了,怎么能定位到之前的某次对话,在终端界面里疯狂滚动鼠标,腱鞘炎都要滚出来了。在opencode里,你可以通过/timeline,会弹出窗口,列出你的对话列表,然后你可以快速跳转了。
    image

8.2 其他

Q:旁边的侧边栏看着烦,怎么隐藏?
A:ctrl+x b

Q:从剪贴板中粘贴文字和图片?
A:iflow里粘贴文字是Ctrl+V,粘贴图片是Alt+V,在Opencode里都是Ctrl+V

Q:会话可以重命名吗?
A:可以的,使用/rename即可对会话进行重命名
image
然后再切换会话时,就会看到会话名字已经变成你刚刚重命名过的了
image

Q:启动后直接进如上一次的会话?
A:在iflow里是iflow -c,在opencode里是opencode -c

于是,你依然可以使用类似下面的做法,将opencode打开添加到你的右键菜单里,参数加上-c,就可以直接在你的项目目录打开opencode并自动进入上一次的会话,继续你未完成的任务了。

https://vibex.iflow.cn/t/topic/1474

Q:思考深度?
A:iflow里是通过提示词触发的不同深度的思考,opencode通过ctrl+t来切换
image

Q:支持自动压缩吗?
A:有自动压缩的配置,可以在你的~/.config/opencode/opencode.json配置文件中加入相关配置,类似如下格式:

{
  "$schema": "https://opencode.ai/config.json",
  "compaction": {
    "auto": true,
    "prune": true,
    "reserved": 10000
  }
}

auto:自动压缩,默认值true
prune:删除旧的工具输出以节省token,默认值true
reserved:压缩时的 Token 缓冲区。保留足够的窗口以避免压缩过程中溢出。

Q:工具权限如何设置?支持yolo模式吗?
A:通过"permission": {}来设置工具的权限。
支持的工具包括:

  • bash
  • edit
  • write
  • read
  • grep
  • glob
  • list
  • lsp
  • patch
  • skill
  • todowrite
  • todoread
  • webfetch
  • websearch
  • question

支持的权限配置为:

  • allow
  • ask
  • deny

你可以自由的配置每种工具的权限,例如:

{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "*": "ask",
    "bash": "allow",
    "edit": "deny"
  }
}

表示bash允许,edit进制,其他询问。

如果设置了”*“:”allow“,即为全部允许,也就是iFlow CLI的YOLO,注意该配置风险较大,请谨慎评估是否要使用全部允许的模式。

当然如果你有更加灵活的配置需求,也可以针对每种工具,对不同的命令,甚至不同的代理单独配置,例如:

{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "bash": {
      "*": "ask",
      "git *": "allow",
      "git commit *": "deny",
      "git push *": "deny",
      "grep *": "allow"
    }
  },
  "agent": {
    "build": {
      "permission": {
        "bash": {
          "*": "ask",
          "git *": "allow",
          "git commit *": "ask",
          "git push *": "deny",
          "grep *": "allow"
        }
      }
    }
  }
}

上面的例子,为bash中的git commit,git push进行了阻止,grep,git其他设置了允许,其余bash命令为询问。build代理下的执行bash命令也是同样的权限配置。

:construction:施工中……

9. WSL

占坑

10. opencode server(Web)

opencode可以本机起一个服务,然后通过浏览器web进行访问
image
通过opencode web命令启动后,会自动给你分配一个默认的端口(4096端口,默认值,配置里可进行修改)

然后你就可以在你的浏览器中使用啦

image
image

大概长这个样子(我把能展开的都展开了),看起来功能还是很全的,更多的你可以自己去探索~

指定端口:

opencode web --port xxxx

默认情况下,服务器绑定到 127.0.0.1 (仅限本地访问)。要使 OpenCode 在网络中可访问:

opencode web --hostname 0.0.0.0

11. 颜值

Opencode默认有个黑色的底色,四周和终端有个一些间距,当改变终端的外观,如透明度,开启亚克力材质效果(Windows Terminal)时,只有四周margin的区域是透明亚克力的,里边还是很丑的黑色大方框,而且由于要给滚动条留出位置,左右还不等宽的感觉,强迫症史诗狂怒,没有人比我更懂亚克力!(风琴手)

image

无法做到iFlow CLI那种一整块亚克力的效果?
image

其实是主题的问题,默认的主题是有背景色的。

使用/themes,或者组合快捷键ctrl+x t,打开主题列表,搜索system,选择它,回来了,都回来了,你的一整块亚克力它来了。

image

12. 支持中文吗?

web版和桌面应用都是支持中文界面的。

输入和输出的内容也都是支持中文的。

目前CLI的界面语言还没有支持中文,未来可能会支持,毕竟现在文档,web,desktop都逐渐有原生中文支持了。

如果实在需要CLI界面显示中文,可以看看下面的项目,是一个Opencode的汉化项目,基于opencode官方仓库做的自动化流水线。

https://github.com/1186258278/OpenCodeChineseTranslation

OpenCode 汉化发行版 是一个全自动化的 OpenCode 本地化项目。我们基于 GitHub Actions 构建了一套完整的自动化流水线:

  • :one_o_clock: 每小时检测 官方仓库更新
  • :bar_chart: 智能触发 累计 ≥5 个新 commit 时自动构建
  • :memo: 完整日志 Release Notes 自动包含官方更新日志

主要特性:

:bar_chart: 汉化统计

指标数量说明
:file_folder: 翻译文件41模块化 JSON 配置
:memo: 翻译规则397精准字符串替换
:bullseye: 覆盖模块5dialogs/routes/components/common/root
:white_check_mark: 测试覆盖100%18 个单元测试用例