一个纯本地、零依赖的 Claude Code 对话管理面板。扫描本机所有会话,按文件夹分组,显示标题/时间/大小、内容预览,可收藏/删除,双击即可在正在运行的 WispTerm 里新开标签 claude -r 恢复那次对话。只用 Windows 自带的 mshta + PowerShell,免安装、不联网。
还在满屏文件夹里翻找上次那个对话开在哪儿? 还在重新敲一长串项目路径、再
/resume翻半天选择器才能接上? 还在不知道哪个对话已经"养"得巨大、悄悄吃掉你的额度? —— 这些,一个面板全解决。
- 🗺 一眼定位 — 所有对话按"开在哪个文件夹"自动分组成树,哪次聊在哪个项目一目了然,不用再大海捞针。
- ⚡ 双击即续 — 看中哪条,双击就在 WispTerm 新标签里自动
cd进目录、直接恢复:不用敲路径、不用点 resume、不用翻选择器(没装 WispTerm 自动回退普通 PowerShell)。 - ➕ 一键新对话 — 在任意文件夹直接开一个全新
claude对话(顶栏「➕ 新对话」填路径,或选中文件夹后点其标题栏的「➕ 新对话」);还能在软件里新建文件夹(同时在硬盘上真建一个),立刻在里面开聊。 - 📦 大小看得见 — 每个对话直接标出体积 (KB/MB),哪个对话"超重"、悄悄吃额度,一眼看穿。
- 🔍 找得到 — 标题/路径/日期搜索 + 内容预览(最近提问 & 最后回复),不打开就知道是哪次聊的什么。
- ⭐ 收藏 & 管理 — 常用一键收藏,过时右键删除;中英文一键切换。
左侧文件夹树 · 中间对话列表 · 右侧详情面板 · 一键中英文切换。
- 🗂 文件夹树:按真实路径层级列出有对话的文件夹(大小写自动合并,按最近使用排序)。
- 📋 对话列表:彩色图标 + 标题 + 相对时间 + 会话大小(MB) + 所在文件夹。
- ⭐ 收藏:点星收藏,集中查看。
- 🔍 搜索:纯文字,或
folder:/date:/after:/before:语法,关键词高亮。 - 📄 详情面板(单击):完整标题/时间/大小/路径、内容预览(最近提问 + 最后回复)、同文件夹相关对话、快捷操作。
- ▶ 一键恢复:双击对话 → 在运行中的 WispTerm 新开标签、cd 进项目目录、
claude -r <id>恢复(WispTerm 没开则回退到独立 PowerShell 窗口)。 - ➕ 新对话 / 新建文件夹:顶栏「➕ 新对话」输入任意路径(不存在自动创建)开一个全新
claude;选中文件夹后,其标题栏有「➕ 新对话」「➕ 子文件夹」——子文件夹会真的在硬盘上创建并立刻在其中开聊。软件里新建的文件夹即使还没有对话也会显示在左侧树里(标「新」),其底层数据记在settings.json。 - 🗑 删除:把会话
.jsonl移到deleted/(从 Claude 移除,可找回)。 - 🪟 无边框窗口 + Win11 圆角/投影 + 紧凑/舒适密度 + 设置记忆 + 中英文一键切换。
- Windows 10/11(自带
mshta.exe与 PowerShell)。 - 已安装 Claude Code(
claude在 PATH 中)。 - 会话记录默认在
%USERPROFILE%\.claude\projects\(脚本会自动探测;也可用环境变量CLAUDE_PROJECTS_DIR指定)。 - (可选,用于在 WispTerm 内恢复) WispTerm v1.30.1+ 及其
wisptermctl客户端。
- 下载/克隆本仓库到任意目录(整个文件夹放哪都行,路径自适应)。
- 双击
index.hta打开界面。每次打开会自动刷新一次(先用上次数据秒显,随后重扫*.jsonl更新);也可随时点顶部「🔄 刷新」手动重扫。 - 单击对话看详情;双击恢复对话。
仅"刷新 + 浏览 + 详情"功能,不需要 WispTerm,开箱即用。想要"双击在 WispTerm 内恢复",见下一节。
恢复对话默认会优先落进正在运行的 WispTerm 新标签;连接靠 WispTerm 的 wisptermctl 控制接口。三步打通:
- WispTerm:https://github.com/xuzhougeng/wispterm(需 v1.30.1 及以上;
spawn命令在 v1.30.0 引入、agent-control 应答在 v1.30.1 修复)。 - 从 WispTerm 取到对应平台的
wisptermctl(Windows 为wisptermctl.exe),放到本仓库目录里(与index.hta同级)。本仓库不附带该二进制。
编辑 WispTerm 配置 %APPDATA%\wispterm\config,加入一行:
agent-control-enabled = true
然后重启 WispTerm 生效。验证(任意标签里):
wisptermctl.exe panes
能返回一段 JSON(标签列表)即代表接口已通。
在「Claude 会话索引」里双击任意对话,即会:
wisptermctl spawn --cwd <项目目录> -- powershell -NoProfile -NoExit -Command "Set-Location <项目目录>; claude -r <会话ID>"
= 在运行中的 WispTerm 新开一个标签、进入该项目目录、claude -r 恢复该对话。
若 WispTerm 未运行或接口未启用,会自动回退到弹出一个独立 PowerShell 窗口执行同样的
claude -r,功能不受影响。
「➕ 新对话 / ➕ 子文件夹」走的是同一套机制(
new-conv.ps1),只是执行claude(无-r),同样优先落进 WispTerm 新标签、否则回退 PowerShell。
| 文件 | 作用 |
|---|---|
index.hta |
主界面(双击打开;路径自适应,定位同目录其他文件)。 |
refresh.ps1 |
扫描 Claude 会话(*.jsonl)→ 生成 index.json;自动探测 projects 目录。 |
resume-in-wispterm.ps1 |
恢复对话:WispTerm 新标签 claude -r,失败回退独立 PowerShell。 |
new-conv.ps1 |
新对话:可选先建文件夹,再在 WispTerm 新标签 claude(无 -r),失败回退独立 PowerShell。 |
delete-conv.ps1 |
删除:把会话 .jsonl 移到 deleted/。 |
style-window.ps1 |
给无边框窗口加 Win11 圆角 + 投影(DWM/Win32)。 |
winmin.ps1 |
最小化无边框窗口(Win32 ShowWindow)。 |
index.json |
扫描生成的数据(本地生成,已 gitignore)。 |
settings.json |
界面设置/收藏(本地生成,已 gitignore)。 |
wisptermctl.exe |
WispTerm 控制客户端(需自行放入,已 gitignore)。 |
- 标题优先级:
custom-title>ai-title> 首句提问;空会话与[Request interrupted…]自动过滤。 - 会话目录从 jsonl 的
cwd字段读取(不靠目录名,避免 CJK 编码丢失)。 claude必须经 PowerShell 启动(Windows 上它是 npm 脚本,不能被spawn -- claude直接执行)。
- 整个文件夹路径自适应,放任意目录即可,无需改硬编码路径。
- 换机器/自定义会话目录:设环境变量
CLAUDE_PROJECTS_DIR,或确保%USERPROFILE%\.claude\projects存在。 - 若对方
claude不在系统 PATH(而靠 PowerShell 配置提供),把resume-in-wispterm.ps1里的-NoProfile去掉。
- 双击进了 PowerShell 而不是 WispTerm:多半是没把
wisptermctl.exe放进本文件夹,或 WispTerm 没开 /agent-control-enabled未启用·未重启。首次回退到 PowerShell 时会弹一次性提示告诉你如何启用(只弹一次,标记文件.wisp-notice-shown,删掉它可让提示再弹一次)。先跑wisptermctl.exe panes确认接口通。 - 恢复报"盘根禁止启动"之类:你的 PowerShell
$PROFILE里有自定义守卫;脚本已先Set-Location进项目目录,正常不会触发。 - 界面白屏/脚本错:确保未把
index.hta的文档模式改成IE=edge/IE=10+(那会强制 Windows 标题栏);本项目用IE=9以实现无边框。 - 窗口没有圆角/投影:部分 Win11 主题/显卡设置会弱化投影,属正常。
- WispTerm 及其
wisptermctl控制接口 —— 让"在终端里一键恢复"成为可能。 - Claude Code by Anthropic。
MIT — 见 LICENSE。


