CodeBuddy‑CLI:启动自动授权 + 继续上次对话 codebuddy -c --permission-mode acceptEdits
前提:已经完成一次登录授权,token会本地持久保存,后续不会再弹出浏览器登录窗口,直接复用已有授权。
1、启动直接继续最近一次对话(交互TUI)
参数 -c / --continue,启动就加载上一轮完整上下文,不用重新登录、不用新建会话。
bash
codebuddy -c
#等价
codebuddy --continue
- ✅复用本地已保存token,默认授权,不会再触发登录流程
- ✅自动加载最近会话全部历史,直接接着聊
- ✅进入交互式TUI程序,不会退出
如果要恢复某一个指定会话ID:
bash
codebuddy -r 你的sessionId
2、默认工具授权(自动放行文件/命令,不用每次y确认)
两种方式:命令行参数临时生效,或者写入配置永久生效。
①启动参数(单次生效)
--permission-mode acceptEdits:允许读文件、编辑文件;bash命令依旧询问
bash
codebuddy -c --permission-mode acceptEdits
⚠️高危:
bypassPermissions全部跳过所有确认(不推荐日常使用)
bash
codebuddy -c --permission-mode bypassPermissions
②写入配置永久生效(每次启动自动继承)
编辑 ~/.codebuddy/settings.json,没有就新建:
json
{
"permission": {
"defaultMode": "acceptEdits"
}
}
保存后,直接执行 codebuddy -c,每次启动自动使用该权限模式,不用每次加参数。
注意:
auto模式在CLI配置文件会被忽略,只能用参数传入,优先用acceptEdits。
3、一键别名(推荐,简化输入)
bash/zsh配置 ~/.bashrc / ~/.zshrc,增加别名:
bash
alias cb='codebuddy -c --permission-mode acceptEdits'
source生效
bash
source ~/.bashrc
之后直接敲
bash
cb
效果:自动复用登录授权,继续上次对话,文件编辑默认放行,进入交互TUI。
4、容器环境关键点(你docker场景)
- token保存在
~/.local/share/CodeBuddyExtension/,容器销毁会丢失登录状态,务必做卷挂载持久化目录,否则每次docker重启要重新扫码登录。
bash
-v $PWD/codebuddy_data:/root/.local/share/CodeBuddyExtension
- 只要本地token文件完好,
codebuddy -c就不会弹出浏览器登录,直接授权。
5、OpenCode对应对照(一并给你)
OpenCode没有 -c 参数,要继续对话只能进入TUI后执行 /new / /sessions;
OpenCode设置默认权限编辑 ~/.config/opencode/tui.json。
常用速记
| 命令 | 作用 |
|---|---|
codebuddy |
全新空白会话,复用已有登录授权 |
codebuddy -c |
启动,继续最近会话,复用token |
/clear |
TUI内清空上下文,开新对话,程序不退出 |
Esc |
打断AI输出,不退出程序 |
Ctrl+C |
完全退出CLI |
排查:如果启动又弹出登录,说明本地token丢失,重新运行一次
codebuddy完成一次扫码登录即可,之后-c就免登录。
OpenCode CLI 与 CodeBuddy CLI 会话控制完全指南
核心区别一览
| 操作 | OpenCode CLI | CodeBuddy CLI |
|---|---|---|
| 打断生成(不退出程序) | Esc |
Esc |
| 开启全新对话(不退出程序) | /new |
/clear |
| 彻底退出程序 | /exit 或 Ctrl+X → Q |
Ctrl+C |
⚠️ 关键提醒 :两个 CLI 中
Ctrl+C都不是打断生成,而是直接强制退出整个 TUI 程序。
OpenCode CLI 完整会话控制
1. 打断当前 AI 输出 / Agent 工具执行(程序不退出)
Esc(Escape 键):立刻停止流式输出,TUI 保持运行,上下文完整保留,可继续聊天。Agent 正在执行 shell、文件修改等工具调用时,Esc 同样可以中断任务。- 兜底命令 :若终端不响应 Esc(常见于 Docker 容器或 Web 终端),直接输入
/interrupt回车,效果与 Esc 完全等同。
部分终端/容器内 Esc 响应慢,可连按两次强制中断。
2. 结束当前对话,开启全新空白对话(程序不退出)
- 斜杠命令(最可靠,不受终端按键影响) :
/new - Leader 快捷键 :先按
Ctrl+X松开,再按N
旧会话自动存档,可随时通过历史会话功能切回。
3. 浏览、切回历史会话
- 斜杠命令 :
/sessions - Leader 快捷键 :
Ctrl+X松开后按L
4. 真正退出 OpenCode(完全关闭程序)
- 推荐斜杠命令 :
/exit - Leader 快捷键 :
Ctrl+X松开后按Q - 不推荐 :
Ctrl+C(直接强制退出,无保存提示)
高级:修改配置,让 Ctrl+C 变为中断而非退出
编辑配置文件 ~/.config/opencode/tui.json(不存在则新建):
json
{
"$schema": "https://opencode.ai/config.json",
"keybinds": {
"app_exit": "ctrl+d,<leader>q",
"session_interrupt": "escape,ctrl+c"
}
}
保存后重启 OpenCode。修改后行为:
Ctrl+C→ 中断生成(不退出程序)- 退出程序 → 只能用
Ctrl+D或Ctrl+X→Q
注意:老版本 OpenCode 对此配置支持存在 bug,若修改后无效,请坚持默认方案:用
Esc和斜杠命令。
CodeBuddy CLI 完整会话控制
1. 打断正在生成的回复(程序不退出)
Esc:中断当前正在流式输出的回答,TUI 不退出,保留当前对话上下文。- JetBrains 终端 :若
Esc无效,尝试Ctrl+Esc或Shift+Esc。
⚠️ 注意 :
Ctrl+C在 CodeBuddy 中是直接退出整个程序,不要用来打断生成。
2. 结束当前对话、开启全新对话(程序不退出)
输入斜杠命令:
/clear
效果:旧会话存档,开启干净全新对话,程序不退出。旧会话以后可用 /resume 找回。
3. 会话管理速查
| 命令/按键 | 作用 |
|---|---|
Esc |
打断正在输出的 AI 回答,保留当前对话上下文 |
/clear |
结束当前对话,新建空白会话(程序不退出) |
/resume |
列出历史会话,可切回之前的对话 |
/compact |
压缩当前会话上下文,减少 token 占用 |
Ctrl+C |
完全退出 CodeBuddy 程序 |
容器/终端环境兼容性说明
| 问题场景 | 解决方案 |
|---|---|
Docker 容器内 Esc 无响应 |
使用斜杠命令 100% 可靠:/interrupt(打断生成)、/new(开新对话) |
| JetBrains 内置终端 | 使用 Ctrl+Esc 或 Shift+Esc 代替 Esc |
完整对比总表
| 工具 | 打断生成(不退出) | 新开对话(不退出) | 彻底退出程序 |
|---|---|---|---|
| CodeBuddy-CLI | Esc |
/clear |
Ctrl+C |
| OpenCode-CLI | Esc / /interrupt |
/new |
/exit / Ctrl+X → Q / Ctrl+C(不推荐) |