代理历史记录 — Liu Terminal

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

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 可作为新会话目标使用。

AiderAmazon QContinueWindsurfZed

工作原理

每个工具专用的解析器(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                    # 打印发现的所有会话路径

下一步 通知 →

文档

开始使用

指南

参考

其他语言

English · Türkçe · 한국어 · Español · Deutsch · Italiano · Français · 日本語 · العربية