会话与上下文

MiMo Code 会把每一次对话持久化为一个会话,保留消息历史与元数据。你可以关闭终端,稍后再恢复之前的工作。本页介绍会话的存储、恢复、切换、分叉,以及上下文窗口的压缩管理。


会话存储

会话数据保存在 MiMo Code 的数据目录中,并按工作目录分组。

$MIMOCODE_HOME/ ├── config/ ← 全局配置文件 ├── data/ ← auth.json、会话数据库 ├── state/ └── cache/
WARNING

请不要手动编辑这些文件。会话状态由 MiMo Code 管理,手动修改可能导致无法恢复。

卸载时可使用 mimo uninstall --keep-data 保留会话数据和快照。了解更多


启动与恢复会话

运行 MiMo Code 会在当前目录创建一个新会话。

mimo

你可以通过以下标志恢复已有会话:

# 恢复当前目录下最近的会话
mimo --continue

# 按会话 ID 恢复指定会话
mimo --session <id>
标志简写描述
--continue-c继续上一个会话
--session-s要继续的会话 ID
--fork继续时分叉会话(需与 --continue--session 同用)
NOTE

--continue--session 不可同时指定同一个新会话来源;--fork必须与其中之一配合使用。

完整的 CLI 标志见命令行运行


在 TUI 中切换会话

在 TUI 中,你可以使用斜杠命令在会话之间切换:

  • /new(别名 /clear)— 开始新的会话,丢弃当前上下文。快捷键 ctrl+x n
  • /sessions(别名 /resume/continue)— 列出会话并在它们之间切换。快捷键 ctrl+x l

完整的斜杠命令列表见斜杠命令速查


列出会话

在 TUI 之外,可使用 session 命令管理会话。

mimo session list
标志简写描述
--max-count-n限制为最近 N 个会话
--format输出格式:table 或 json(默认 table)

上下文压缩

每个模型都有有限的上下文窗口。对话变长时,MiMo Code CLI 会在上下文接近窗口上限时自动压缩历史消息,释放 token 空间。也可以随时手动触发:

none
/compact

/compact 的别名为 /summarize,快捷键为 ctrl+x c

压缩由一个隐藏的 Compaction 代理执行,它将长上下文压缩为较小的摘要。

配置

你可以通过 compaction 选项控制上下文压缩行为。

mimocode.json
{
  "$schema": "https://mimo.xiaomi.com//config.json",
  "compaction": {
    "auto": true,
    "prune": true,
    "reserved": 10000
  }
}
  • auto - 当上下文已满时自动压缩会话(默认值:true)。
  • prune - 删除旧的工具输出以节省 Token(默认值:true)。
  • reserved - 压缩时的 Token 缓冲区。保留足够的窗口以避免压缩过程中溢出。

如需完全禁用自动压缩,可设置环境变量 MIMOCODE_DISABLE_AUTOCOMPACT=true了解更多


分叉会话

分叉允许你从某个会话派生出一个独立副本,用于尝试新思路而不影响原会话。派生后的两个会话彼此独立,互不影响。

# 从最近的会话分叉并继续
mimo --continue --fork

# 从指定会话分叉
mimo --session <id> --fork

通过 HTTP 接口运行时,也可以在某条消息处分叉现有会话。。


导出与导入

你可以将会话导出为 JSON,用于归档、分享或问题反馈。

mimo export [sessionID]

如果不提供会话 ID,系统会提示你从可用的会话中选择。

随后可以从本地文件或 MiMo Code 分享链接导入会话数据。

mimo import session.json
mimo import https://opncd.ai/s/abc123
TIP

导出的文件可能包含敏感信息(代码、命令输出、路径等),分享前请先检查内容。

如需通过链接实时分享会话,请参阅分享会话