会话与记忆
每段对话都是持久的。REPL 每个回合都把完整对话快照到 ~/.hipmmcode/sessions/<id>.json,连同活跃模型、智能体人格与军团 —— 续接即恢复整个工作上下文。
续接
hipmmcode resume # 列出最近会话(当前项目)
hipmmcode resume sess_abc123 # 按 id(或任意唯一后缀)恢复
hipmmcode resume daimao # 按 /rename 起的名字恢复
hipmmcode -c # 继续最近一次会话
hipmmcode resume --all # 跨所有项目列出REPL 里:
/sessions # 列出
/resume sess_abc123 # 把当前聊天热切换到某个已存会话
/resume daimao fork # 以「新分叉会话」方式续接
/rename refactor-sprint # 给会话起个好记的名字(也可作为 @ 对端别名)
/peer list # 列出本机正在跑的会话
/peer accept # 接受暂挂的跨会话来信
/branch # 就地分叉,在副本里继续
/fork <prompt> # 在对话的后台副本上运行一个 promptv0.11.0+:/resume 现在精确还原上下文用量条而非显示 0% 直到下一回合。上一回合的真实 prompt-token 数被持久化并在 --resume(启动)和会话内 /resume 时恢复,底栏显示的百分比与关闭前一致。
裸 /resume 打开会话选择器 —— 每行显示 id、名字(来自 /rename)、时间与回合数:
› /resume Sessions 本项目 · 最新在前 ❯ refactor-sprint sess_9f2c… · 12 回合 · 5 分钟前 · deepseek-anthropic/deepseek-v4-flash daimao sess_a3b1… · 41 回合 · 2 小时前 · anthropic/claude-opus-4-8 (未命名) sess_77e0… · 3 回合 · 昨天 Enter 恢复 · f 分叉 · Esc 取消
本机跨会话 @(v1.0.1)
打开两个(或更多)正在跑的 HiPMMCode 会话后,可以用 @名字 给另一个会话发消息。这是本机 Unix socket,不是跨机器 bridge:。
/rename alpha # 当前会话叫 alpha,立刻可被 @alpha 点到
@beta 帮我看一下这段 diff # 发给本机另一个已命名会话
/peer list # 看本机在线会话
/peer accept # 或 /peer refuse [id]命名规则:字母开头,后面是字母、数字、.、_、-,最长 32 个字符。自动生成的第一句标题不会进入 @ 列表,避免把所有历史会话都倒出来。桌面端在侧边栏重命名会话,效果与终端 /rename 相同,不必再执行额外命令。
来信策略:
| 配置 | 效果 |
|---|---|
crossSessionInbound=accept | 直接收下并作为新的一轮用户消息 |
crossSessionInbound=hold | 暂挂,用 /peer accept 或 /peer refuse 处理 |
crossSessionInbound=refuse | 拒绝 |
dialogExpiry 默认 5 分钟(60s / 5m / 10m / never),也可用 HIPMMCODE_USER_DIALOG_TIMEOUT_MS 覆盖。对方收到后不会把上一条回复折叠进“执行过程”。
生成过程中再发一条:已生成内容保留。当前这条优先执行(类似终端的 Send now);后续消息排队,等当前轮结束后再跑。切换会话再回来,正在生成的内容也不会丢。
v1.3.0 起,恢复、回退、导入、导出都在全屏终端里用面板完成,不用退出全屏。终端重启后会回到同一个会话。
分叉与回退
--fork-session(CLI)/fork(REPL)—— 复制历史开新会话 id,原会话不动。/rewind [n](/checkpoint、/undo)—— 回到之前的某个点;可选恢复对话、代码或两者。--resume-session-at <n>—— 恢复到某会话第 N 个用户回合之后的状态。
在手机上接着做
/rcl 或 /rc 打开远程控制后,手机上的 HM Bot 可以接着这个会话,开远程之前的对话也会同步过去。手机还能接着电脑上保存的对话继续。见远程控制。
上下文管理
长会话会顶到模型上下文上限。hipmmcode 多层应对:
- 上下文 HUD —— 状态栏实时显示压力:
[████░░░░░░] 42% 85k/200k,按各模型真实窗口感知。 /compact [focus]—— 把历史摘要为结构化简报,替换为单条压缩回合。约 150K token 换 ~5K。带焦点(/compact 认证重构)可偏向某条线索。- 自动压缩(
autoCompactEnabled,默认开)—— 接近上限自动执行;autoCompactWindow可提前触发。 - 微压缩(
apiMicrocompactEnabled,默认开)—— 先静默清退过期工具结果,比整体压缩省得多。 /context—— 按类别的 token 拆解;/tokens看总量;/cost看估算花费。
持久记忆
hipmmcode 按项目维护文件式记忆,位于 ~/.hipmmcode/projects/<key>/memory/:
MEMORY.md—— 索引,每次会话载入上下文。- 每条事实一个 markdown 文件,带 frontmatter(
name、description、type: user|feedback|project|reference)。
记忆的写入时机:
| 触发 | 配置 |
|---|---|
/remember —— 立刻从最近对话提炼 | — |
/exit / Ctrl+D 时 | autoMemoryOnExit(默认开) |
无头 exec 结束时 | autoMemoryOnExec(默认关)或 --auto-memory |
| 每个回合后 | autoMemoryOnEveryTurn(默认关;耗 token) |
读取:会话启动时注入相关记忆。memoryRelevanceSelector=true 用廉价模型挑选 ≤5 个最相关文件(替代 token 重叠启发)。用 /memory list 与 /memory <name> 管理(打开编辑器)。总开关:autoMemoryEnabled=false 或 HIPMMCODE_DISABLE_AUTO_MEMORY=1。
模型也可在对话中经 SaveMemory 工具自己存记忆。
兼容的记忆布局
~/.claude/projects/<key>/memory/ 存在时也会被读取,已有的记忆树可直接沿用。
项目说明
会话启动时从工作区加载项目说明:HIPMMCODE.md、AGENTS.md、CLAUDE.md(及 .claude/CLAUDE.md、CLAUDE.local.md),以及 .hipmmcode/rules/ / .claude/rules/ 下的规则片段。/init 扫描项目生成或改进说明文件。排除模式用 instructionExcludes。
转写与导出
Ctrl+O//transcript—— 全屏转写视图。/export [file]—— 对话导出 Markdown。/copy [n|all]—— 复制最近(或第 N 条、或全部)助手消息。/history—— 打印原始消息日志。/recap—— 一行会话摘要;离开 ≥5 分钟回来自动出"欢迎回来"回顾(awayRecap)。
费用跟踪
hipmmcode cost # 聚合已存会话的用量(本项目)
hipmmcode cost --all # 跨所有项目
hipmmcode cost --json # 机器可读会话内 /cost 给出实时 token + $ 估算。