仓库 →

会话与撤销

AtomCode 默认持久化每一次对话,允许你随时恢复、继续、清空或压缩。同时文件编辑会被记录进 file-history,一条 /undo 就能回滚上一轮的所有改动。

会话的生命周期

每次启动 atomcode 都会自动创建一个会话,会话包含:

会话数据落盘在 ~/.atomcode/sessions/ 下,按项目(工作目录 hash)分组存储。

恢复会话

命令行继续上次

atomcode -c        # 或 atomcode --continue

最常见的需求:接着昨天停下来的地方继续。

TUI 内切换会话

/resume

弹出会话选择器,按时间倒序显示当前项目的历史会话,可以快速跳到任一会话。每一条都带有最近的用户提问作为标题,便于识别。

新开一个干净会话

/session

在不切换工作目录的前提下开启全新的上下文。适合"刚刚那个任务已经收尾,我要开始完全不相关的另一件事"。

后台会话(/bg)

需要同时跟进多条任务、又不想丢失当前对话上下文?/bg 把当前会话挪到后台、打开一个全新前台,随时可以切回去。最多 16 个并行后台槽位

命令作用
/bg把当前会话送到后台,打开新的前台
/bg list(别名 /bg ls)列出所有后台会话:编号、ID、状态、创建时间、摘要
/bg <N>恢复第 N 号后台为前台(当前前台会被换下到后台)
/bg drop <N>丢弃第 N 号后台会话
/bg help(别名 -h--help)显示内置帮助

会话状态

/bg list 的"状态"列对应会话在后台时的运行情况:

所以 /bg 后台并不只是"挂起"——模型真的会在后台继续干活,切回来时直接拿到结果。

/background <任务> —— 一次性后台派发

如果你不想专门切换前后台、只是"顺手让它跑一下查个东西",用 /background 兼容入口:

/background 列出 src 下未使用的依赖

会在一个 /bg 槽位里启动一次性任务(默认配置为只读工具子集,不污染主对话上下文)。跑完后用 /bg list 看状态,/bg <N> 切过去读结果,/bg drop <N> 丢弃。

典型场景

主前台正在调试 A 模块,模型一边改一边跑 cargo check(耗时)。这时想到要顺便重构 B 模块——直接 /bg 切到新前台开始 B;A 那边的 build 在后台跑完状态切到"已完成",/bg 1 切回去拿结果。

清空 vs 压缩 vs 新建

命令保留历史保留会话 ID何时使用
/clear想在同一会话里"重置对话",保留会话条目便于以后 /resume
/compact部分(摘要)上下文快撑爆,但不想丢失之前的脉络
/session另起一段否(新 ID)开始完全不相关的新任务

文件编辑与 /undo

AtomCode 的所有文件编辑工具(write_fileedit_filesearch_replace 等)在写入前都会把原始内容快照到 file-history。执行:

/undo

会把上一轮 AI 执行的全部文件编辑一次性回滚到工具调用前的状态。

注意边界

/undo 只回滚文件编辑,回滚 bash 命令的副作用。比如模型执行了 rm -rf 或者把数据库 drop 了,/undo 帮不了你——那些操作本身在执行前应该已经触发过权限确认。

查看和清理成本

/cost

显示当前会话累计输入 / 输出 tokens。当数字逼近 provider 的 context_window 时:

多项目工作流

AtomCode 的会话是按工作目录分组的。切换目录的推荐方式:

下一步