# 代理历史记录 — Liu Terminal

> Liu Terminal 代理历史。浏览并恢复 Claude Code、Codex、GitHub Copilot CLI、OpenCode、Qwen Code、Cline、Kimi、Grok 等工具的会话。

URL: https://liu.software/zh/docs/agent-history/  
Language: zh  
Updated: 2026-10-17

Liu 扫描所有已安装 AI CLI 的磁盘会话存储，将条目标准化为统一的 ChatEvent 模型，并在单个 Cmd+K 选择器中展示。在此：您可以在本地恢复会话，或打开转录视图以滚动对话，而无需重新启动代理。

**正在重写中。** 扫描器和解析器位于 src/history/ 下，选择器 UI 位于 src/ui/palette.c，转录查看器位于 src/main.c。当前代码可以工作，但磁盘存储格式和内部 API 仍在变动中。

## “支持”意味着什么

Liu 不会嵌入 AI 模型，也不会取代代理。每个工具保留自己的 CLI、身份验证、模型设置和会话格式；Liu 为其提供周围的终端界面。

- 运行：任何能在普通 shell 中运行的 CLI 都可以在 Liu 标签页或分屏中运行.
- 观察：代理视图识别每个面板中的前台代理，并显示其聊天标题和工作状态.
- 记忆：代理历史记录读取下方列出的会话存储，并在工具提供原生方式时支持恢复.
- 交接：对于兼容的 CLI，Liu 可以写入精简的 Markdown 交接文件，并带着该上下文启动下一个代理.

## 支持的 AI CLI

代理历史记录目前识别的会话存储：

### Claude Code `claude` CLI

存储 `~/.claude/projects/<slug>/*.jsonl`

恢复 `claude --resume <id>`

每个项目一个扁平目录。cwd 从 slug 解码。

### Codex `codex` CLI

存储 `~/.codex/sessions/**/*.jsonl`

恢复 `codex -c experimental_resume="<path>"`

按日期嵌套的 rollout；也扫描 archived\_sessions/。恢复需要磁盘上的 JSONL 路径。

### GitHub Copilot `copilot` CLI

存储 `~/.copilot/session-state`

恢复 `copilot --resume <id>`

递归扫描 session-state 树。

### OpenCode `opencode` CLI

存储 `~/.local/share/opencode/opencode.db`

恢复 `opencode --session <id>`

SQLite session 表；cwd 来自 directory 列。

### Qwen Code `qwen` CLI

存储 `~/.qwen/projects/**/chats`

恢复 `qwen --resume <id>`

每个项目目录下的 chats。

### Cline / Roo / Kilo `code` Extension

存储 `VS Code-family globalStorage/<extension-id>/tasks/<task-id>/ui_messages.json`

恢复 `code <workspace>（扩展）`

仅在 IDE 和扩展已安装时扫描。

### Antigravity `agy` CLI

存储 `~/.gemini/antigravity/conversations/*.db`

恢复 `agy --conversation <id>`

SQLite 对话数据库；id 来自 trajectory 元数据。

### Cursor Agent `agent` CLI

存储 `~/.cursor/projects/<project>/agent-transcripts/<session-id>/<session-id>.jsonl`

恢复 `agent --resume <id>`

One session directory is nested below each project transcript directory.

### Amp `amp` CLI

存储 `~/.local/share/amp/threads/*.{json,jsonl}`

恢复 `amp --thread <id>`

Thread files are scanned from the XDG data directory.

### Crush `crush` CLI

存储 `~/.crush/sessions/*.{json,jsonl}`

恢复 `crush --session <id>`

Session files are discovered from the local Crush data directory.

### Factory Droid `droid` CLI

存储 `~/.factory/sessions/**/*.{json,jsonl}`

恢复 `droid -s <id>`

Top-level and date-nested session files are included.

### Kimi `kimi` CLI

存储 `~/.kimi/sessions/<bucket>/<session-uuid>/context.jsonl`

恢复 `kimi --session <id>`

The bucket is the MD5 of the working directory; legacy flat JSONL files are also read.

### Grok (xAI) `grok` CLI

存储 `~/.grok/sessions/**/chat_history.jsonl`

恢复 `grok --resume <id>`

Internal sub-agent sessions are filtered out; user-facing chats remain.

### Command Code `commandcode` CLI

存储 `~/.commandcode/projects/<slug>/*.jsonl`

恢复 `commandcode --session <path>`

Resume uses the transcript path so the project context is preserved.

### Cline CLI `cline` CLI

存储 `~/.cline/data/sessions/<id>/<id>.messages.json`

恢复 `cline --id <id>`

Standalone Cline CLI; separate from the Cline VS Code extension.

### Kiro `kiro` CLI

存储 `~/.kiro/sessions/<workspace>/*.json`

恢复 `-`

History is discoverable, but Liu does not currently have a native Kiro resume flag.

## 同时检测到

这些工具会被检测到，并可从选择器中启动；转录深度取决于它们是否公开了磁盘会话存储。

这些启动目标目前不会填充主历史记录表：Aider 可以恢复其滚动聊天历史，而 Amazon Q、Continue、Windsurf 和 Zed 可作为新会话目标使用。

`Aider``Amazon Q``Continue``Windsurf``Zed`

## 工作原理

每个工具专用的解析器（parser\_claude.c、parser\_codex.c 等）会遍历每个工具的会话目录或 SQLite 存储，将每个条目标准化为共享的 ChatEvent 模型（时间戳、角色、cwd、片段、词元数量）并传递给选择器。

选择一个条目会使用原生恢复标志生成原始 CLI — Liu 不会重新运行代理本身。使用 ⌘ ↵ 选择则会打开转录视图：以只读方式滚动浏览每一次用户/助手对话。

每次打开代理历史记录都会执行一次全新的磁盘扫描。无需守护进程、无需缓存、无需后台监视程序。

## 工作目录自动过滤

在项目中通过 ⌘ K 面板打开代理历史记录时，Liu 会将结果范围限定为该工作目录 —— 仅显示记录 cwd 与当前标签页匹配的会话。如果在 $HOME 下打开，则范围回退到“磁盘上任意位置的所有内容”。

## 独立 CLI

相同的引擎以 liu-history 形式提供：

```
liu-history list --limit=50       # 所有工具的最近 50 个会话
liu-history list --tool=claude      # 按工具筛选
liu-history info <id|path>        # 显示会话元数据
liu-history show <id|path> --format=markdown  # 将转录转储到 stdout
liu-history scan                    # 打印发现的所有会话路径
```

[下一步 通知 →](https://liu.software/zh/docs/notify.md)
