Wallfacer: AI 编程智能体的统一终端会话管理器

Wallfacer 是一个终端会话管理器,旨在解决不同智能体和目录之间 AI 编程会话碎片化的问题。它提供了一个统一的、只读的索引层,允许开发者在不修改智能体原始会话文件的情况下,对来自 Claude Code、Cursor CLI、Kiro CLI 和 Codex 的会话进行命名、打标签、分组和搜索。

碎片化 AI 会话的集中化管理

AI 编程智能体通常将会话转录内容存储在分散且往往经过混淆的位置。例如,Claude Code 使用 ~/.claude/projects/ 下未命名的 JSONL 文件,Cursor CLI 使用 ~/.cursor/chats/ 下以哈希命名的目录,而 Kiro CLI 使用 ~/.kiro/sessions/cli/ 下的一个扁平文件夹。

Wallfacer 将这些文件索引到位于 ~/.local/share/wallfacer/ 的本地 SQLite 数据库中。通过作为只读覆盖层运行,Wallfacer 确保原始的“事实来源”保持不变,同时为标题、标签和项目分组提供可搜索的元数据层。

核心功能与能力

Wallfacer 提供双界面方案,同时提供全屏终端用户界面 (TUI) 和用于自动化的命令行界面 (CLI)。

会话组织与发现

  • 统一视图: 显示来自每个受支持的智能体和目录的所有会话,按最近使用情况排序。
  • 元数据覆盖: 用户可以重命名会话、应用标签,并将会话分组到项目中,以便于查找。
  • 高级搜索: 搜索功能覆盖标题、首个提示词、目录、项目和标签。
  • 安全删除: rm 命令将会话移动到回收站文件夹;只有使用 --purge 标志才会执行永久删除。

多智能体支持

Wallfacer 使用可插拔的适配器接口,使其能够并排支持多个智能体。目前支持的智能体包括:

  • Claude Code
  • Cursor CLI
  • Kiro CLI
  • Codex

界面与用法

TUI (交互式浏览器)

运行基础的 wallfacer 命令即可打开一个全屏浏览器。界面左侧为会话列表,右侧为详情面板。关键快捷键包括:

  • /: 在元数据中进行模糊过滤。
  • Enter: 继续会话,将控制权交给智能体,并在退出时返回浏览器。
  • n: 通过选择智能体、目录和标题来启动新会话。
  • r / t / p: 重命名、编辑标签或设置项目。

CLI (单次命令)

为了脚本编写和快速访问,Wallfacer 提供了子命令:

  • wallfacer new [dir]: 在特定目录中启动新会话。
  • wallfacer resume <ref>: 使用 ID 前缀或确切标题重新打开会话。
  • wallfacer list: 列出会话,并可选择性地对项目、标签或智能体进行过滤。
  • wallfacer search <query>: 在标题、提示词和标签中进行搜索。

技术实现

Wallfacer 使用 Go 编写 (需要 Go 1.22+),并使用增量同步过程来维护其 SQLite 索引。它扫描会话文件的头部以提取工作目录、时间戳和首个提示词,从而生成自动标题。

对于那些将单个会话分布在多个文件中的智能体 (例如 Kiro CLI 的转录内容和边车文件,或 Cursor CLI 的拆分目录),Wallfacer 将整个集合视为一个单一的管理和删除单元。

社区见解与观点

Hacker News 上的用户强调了在大型单体仓库 (monorepo) 中管理会话的具体痛点,即会话在各种子目录中启动,如果没有 Wallfacer 这样的工具,很难进行追踪。

"我工作在一个拥有大量不同服务的巨型单体仓库中... 我意识到我一直在到处启动 Claude Code 会话... 我构建 Wallfacer 是因为我需要一种方法在不破坏原始事实来源的情况下,搜索并恢复这些会话。"

一些用户质疑该工具相对于现有工具(如 tmux 或 Claude Code 内置的 /rename 命令)的必要性,而另一些用户则注意到当前开源领域中“vibe-coded”工具的兴起。

路线图

Wallfacer 未来的计划更新包括:

  • 新适配器: 支持 opencode
  • 搜索增强: 使用 SQLite FTS5 在会话内容中进行全文搜索。
  • 导出工具: 将会话转录内容导出为 Markdown。
  • 桌面应用程序: 一个使用 Wails 和 xterm.js 构建的、具有侧边栏、嵌入式终端和多标签页的 GUI 应用程序。

Sources

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目