<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>会话管理 &#8211; mylogs.cn</title>
	<atom:link href="https://mylogs.cn/tag/%e4%bc%9a%e8%af%9d%e7%ae%a1%e7%90%86/feed/" rel="self" type="application/rss+xml" />
	<link>https://mylogs.cn</link>
	<description>发现、记录、分享</description>
	<lastBuildDate>Thu, 06 Aug 2026 05:34:42 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>几十个 AI 对话找不着，这个工具用《三体》面壁者命名</title>
		<link>https://mylogs.cn/wallfacer-terminal-session-manager-claude-code/</link>
					<comments>https://mylogs.cn/wallfacer-terminal-session-manager-claude-code/#respond</comments>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Thu, 06 Aug 2026 05:34:22 +0000</pubDate>
				<category><![CDATA[科技]]></category>
		<category><![CDATA[AI工具]]></category>
		<category><![CDATA[会话管理]]></category>
		<category><![CDATA[命令行工具]]></category>
		<category><![CDATA[开发效率]]></category>
		<category><![CDATA[开源项目]]></category>
		<category><![CDATA[编程助手]]></category>
		<guid isPermaLink="false">https://mylogs.cn/wallfacer-terminal-session-manager-claude-code/</guid>

					<description><![CDATA[用命令行 AI 编程助手的开发者，大多遇到过同一个麻烦：对话记录堆了几十上百条，全是没有标题的文件，想找回上周 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">用命令行 AI 编程助手的开发者，大多遇到过同一个麻烦：对话记录堆了几十上百条，全是没有标题的文件，想找回上周那次调试过程，只能凭记忆一个个翻。开发者 pradipta 把自己的解法开源了出来，项目名叫 wallfacer——名字取自刘慈欣《黑暗森林》中的「面壁者」，作者在项目说明里写道，这个词指的是那些被托付了宏大到旁人无法追踪的计划的人。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a748e7364eb0&quot;}" data-wp-interactive="core/image" data-wp-key="6a748e7364eb0" class="wp-block-image size-large aligncenter wp-lightbox-container"><img fetchpriority="high" decoding="async" width="1200" height="600" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/632063e85e3a40aa72a11915575a80d6_header.webp" alt="几十个 AI 对话找不着，这个工具用《三体》面壁者命名" class="wp-image-3788" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/632063e85e3a40aa72a11915575a80d6_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/632063e85e3a40aa72a11915575a80d6_header-300x150.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/632063e85e3a40aa72a11915575a80d6_header-1024x512.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/632063e85e3a40aa72a11915575a80d6_header-768x384.webp 768w" sizes="(max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：GitHub / wallfacer 项目页</figcaption></figure>





<h2 class="wp-block-heading">问题出在各家自己存自己的</h2>



<p class="wp-block-paragraph">wallfacer 的项目文档里，把这个痛点讲得很直白。</p>



<p class="wp-block-paragraph">Claude Code 把每一次对话都存成 <code>~/.claude/projects/</code> 目录下一个没有标题的 JSONL 文件，用户当时所在的目录就是唯一的索引依据。Kiro CLI 的做法类似，所有会话平铺在 <code>~/.kiro/sessions/cli/</code> 一个文件夹里。Cursor CLI 则把每段对话埋进 <code>~/.cursor/chats/</code> 下面以哈希值命名的目录。Codex 又是另一套，按日期把运行记录归档在 <code>~/.codex/sessions/</code> 中。</p>



<p class="wp-block-paragraph">几周下来，四款工具留下几十份彼此难以分辨的记录，而且没有任何办法把需要的那一份找出来。</p>



<p class="wp-block-paragraph">wallfacer 的定位是把这些记录统一索引起来。项目文档中特别注明，索引过程是只读的，绝不改动各家智能体自己的文件；用户添加的标题、标签和项目分组，全部存放在 wallfacer 自己的本地 SQLite 数据库里，路径为 <code>~/.local/share/wallfacer/</code>。删掉这个数据库，丢失的只是这层附加信息，对话本身不受影响。</p>



<h2 class="wp-block-heading">一个程序，两副面孔</h2>



<p class="wp-block-paragraph">wallfacer 是单个二进制程序，但提供两种使用方式，区别只在于有没有跟子命令。</p>



<p class="wp-block-paragraph">直接输入 <code>wallfacer</code>，进入的是全屏交互式会话浏览器；输入 <code>wallfacer &lt;子命令&gt;</code>，则是一次性执行的命令行模式，适合写进脚本。项目文档强调，这两者并非彼此独立的工具，也不存在切换的概念——它们读写的是同一份 SQLite 索引，在浏览器里打的标签，立刻就能被 <code>wallfacer list --tag</code> 检索到，反之亦然。浏览器能做的事，子命令同样能做。</p>



<p class="wp-block-paragraph">浏览器模式下的操作是典型的终端界面风格：上下方向键或 j、k 移动；斜杠键触发模糊筛选，检索范围覆盖标题、项目、目录、标签和智能体名称；P、T、A 三个键分别循环切换项目、标签和智能体筛选条件，x 键一次性清空；回车键恢复会话，终端交给智能体接管，退出后自动返回浏览器；n 键新建会话，r、t、p 分别用于重命名、编辑标签和设置项目；d 键删除。当终端宽度低于约 100 列时，详情面板会自动让位，列表占满整个宽度。</p>



<p class="wp-block-paragraph">命令行模式提供的子命令包括新建（new）、恢复（resume）、列表（list）、搜索（search）、查看详情（show）、重命名（rename）、标签增删（tag add/rm）、项目分组（project set/clear）、删除（rm）和重新扫描（sync）。其中 sync 会在每条命令执行前自动运行一次，无需手动触发。</p>



<p class="wp-block-paragraph">引用某个会话时，既可以用编号前缀，比如 <code>resume 5f2</code>，也可以用完整标题，比如 <code>resume "smoke test"</code>。如果引用存在歧义，程序会列出所有候选项，而不是自行猜测。在 wallfacer 之外启动的会话会被自动识别，不需要任何导入步骤。</p>



<h2 class="wp-block-heading">删除这件事，做得比较细</h2>



<p class="wp-block-paragraph">删除逻辑上，wallfacer 做了两层设计。<code>rm</code> 命令只是把会话移入自带的回收站，只有加上 <code>--purge</code> 参数才会永久删除。</p>



<p class="wp-block-paragraph">更细的一处考虑在于多文件会话。Kiro CLI 一次会话会写出一份对话记录、一个元数据附属文件、提示词历史和一个临时目录；Cursor CLI 则把一段对话拆成两半，一部分在自己的目录下，另一部分归档到项目名下。wallfacer 在删除时会把这一整组文件一起处理，避免出现「已经删了，却还留在智能体自己的会话列表里」的情况。</p>



<p class="wp-block-paragraph">索引采用增量同步，项目文档称，即使积累了数百个会话，速度依然能保持。</p>



<h2 class="wp-block-heading">更新检查也考虑了管道场景</h2>



<p class="wp-block-paragraph">一个容易被忽略但设计得比较克制的细节是版本更新提示。浏览器每天向 GitHub 查询一次是否有新版本，如果有，只在页脚提示一次；子命令则直接复述这个缓存结果，且输出到标准错误流，因此不会污染 <code>--json</code> 的输出内容，也不会混进管道。整个查询过程不会阻塞任何操作，命令行侧读取的是缓存文件而非发起网络请求。设置环境变量 <code>WALLFACER_NO_UPDATE_CHECK=1</code> 可以彻底关闭这项功能。</p>



<h2 class="wp-block-heading">安装与后续规划</h2>



<p class="wp-block-paragraph">安装方式有两种。在 macOS 或 Linux 上可通过 Homebrew 安装，也可以用 Go 直接安装，要求 Go 1.22 及以上版本。项目同时在发布页提供了预编译的可执行文件。项目文档提到，Homebrew 配置文件放在本仓库内而非单独的 tap 仓库，这也是安装时需要写全地址的原因，配置完成后升级命令照常使用。</p>



<p class="wp-block-paragraph">路线图方面，目前已支持 Claude Code、Cursor CLI、Kiro CLI 和 Codex 四款智能体的适配器，opencode 的适配器在计划中。后续还打算加入默认智能体设置、基于 SQLite FTS5 的会话全文搜索、命令行侧的回收站恢复功能、把会话记录导出为 Markdown、统计功能（按项目或周统计会话数与磁盘占用），以及一个桌面客户端——侧边栏列会话、内嵌终端、支持多标签页，底层复用同一套 Go 代码。</p>



<p class="wp-block-paragraph">项目采用 MIT 许可证，用 Go 语言编写，其他智能体可通过一个小型适配器接口接入。作者在文档中表示，欢迎贡献，尤其欢迎新的智能体适配器。截至本文整理时，该仓库在 GitHub 上有 14 个星标和 2 次复刻，提交次数为 34 次。</p>



<p class="has-small-font-size wp-block-paragraph">来源：GitHub / pradipta（wallfacer 项目页）、Hacker News</p>

]]></content:encoded>
					
					<wfw:commentRss>https://mylogs.cn/wallfacer-terminal-session-manager-claude-code/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
