
字节笔记本
2026年8月24日
Wake:把散落各处的 coding agent 会话装进一个窗口
用过 Claude Code 或 Codex 一段时间后,你机器上会积累一堆会话记录:~/.claude/projects 下成百个 JSONL、~/.codex/sessions、还有十来个其他 agent 各自为政的私有目录。想找三周前某次对话里改过的配置,基本只能靠运气。Wake 就是冲着这个问题来的:把这些散落各处的 coding agent 会话收进一个窗口,能浏览、能全文搜索、能一键恢复。
项目简介
Wake 是一个原生桌面应用,用 Rust 写的,界面走 GPUI(Zed 编辑器那套 UI 框架,gpui 0.2 + gpui-component 0.5)。作者 iAmCorey,2026 年 8 月中建仓,一周左右拿到 600+ stars,MIT 开源。macOS 14+ 是第一平台,v0.2.5 起有实验性的 Linux 支持,v0.2.7 起加了实验性的 Windows 支持。
它对 agent 数据的态度很明确:只读,永远只读。Wake 不写任何别的工具的文件和数据库,自己的索引存在独立位置,随时可以推倒重建。应用本身零网络请求——README 里特意说明它连 HTTP 客户端都不构造(GPUI 依赖树里带了一个,但 Wake 不去碰),auth.json 这类凭证文件也不会读。
核心特性
统一浏览:所有会话按 agent 和项目分组展示,带文件监听,agent 那边有新动静这边增量更新,不用手动刷新。
全文搜索(⌘K):底子是 SQLite FTS5 的 trigram 索引,中文短词和代码子串(比如 useEffect()都能搜,命中后直接跳到转录里的那条消息。这一条对中文用户格外友好,很多搜索方案对 CJK 要么切词切得稀碎要么干脆搜不了。
转录视图:按消息渲染,用户和助手气泡区分,工具调用折叠成集群,思考过程有摘要,代码块用 tree-sitter 高亮,支持 30 多种语言。
一键恢复:点一下就在终端里把会话拉回来(claude --resume、codex resume 这些),并 cd 到当初的项目目录。macOS 支持 Terminal 和 iTerm。
管理:星标置顶存在 Wake 自己的库里,不动原文件;会话可导出成 Markdown;删除走系统废纸篓,再加一条 tombstone 记录,删掉的会话扫描时不会再回来。
支持哪些 agent
目前覆盖 14 种:
| Agent | 数据源 |
|---|---|
| Claude Code | ~/.claude/projects/**/*.jsonl |
| Codex CLI | ~/.codex/sessions + state_5.sqlite(只读) |
| Copilot CLI | ~/.copilot/session-store.db |
| Cursor(CLI 转录) | ~/.cursor/projects/**/agent-transcripts |
| OpenCode / OpenCode 2 | ~/.local/share/opencode/ 下的数据库 |
| Kiro | ~/.kiro/sessions/cli |
| Gemini CLI | ~/.gemini/tmp/**/chats |
| Pi / Oh My Pi | 各自 agent/sessions 下的 JSONL |
| Grok Build | ~/.grok/sessions/**/updates.jsonl |
| Kimi Code | ~/.kimi-code/sessions/**/wire.jsonl |
| Antigravity CLI | 仅元数据(转录是加密的) |
| DeepSeek Harness(dsh) | ~/.dsh/sessions/ 下的 JSONL,zstd 压缩日志透明解码 |
不支持的要说明一下原因:Cursor IDE 的聊天、Windsurf、Trae 本地数据是加密的;Amp、Factory(Droid)、Warp 的会话放在云端;Reasonix 本地有数据但还没做适配。
性能
作者自己机器约 310 个会话、800 MB 的 JSONL:全量索引 5 秒左右,之后每次启动是即时的(按 mtime 做增量扫描),搜索响应在 1 毫秒以内。会话量再翻几倍也够用。
安装指南
macOS 主路径:从 releases 页面 下载 Wake-<version>-macos.zip,解压,把 Wake 拖进 Applications。
应用是 ad-hoc 签名,下载的预编译版第一次打开会被 Gatekeeper 拦。两个办法任选:右键应用选「打开」,或者提前去掉隔离属性:
xattr -d com.apple.quarantine Wake.app也可以从源码构建,需要 Rust 工具链:
git clone https://github.com/iAmCorey/Wake && cd Wake
scripts/make-app.sh # 产出 dist/Wake.app,含图标和 Info.plist
open dist/Wake.appLinux 用户每个 release 有 arm64 和 x86_64 的 .deb,以及带用户级 install.sh 的 tar.gz(不需要 root)。Windows 下载 zip 解压运行 Wake.exe,二进制没签名,SmartScreen 拦的话点 More info → Run anyway。Windows 上恢复会话支持 Windows Terminal、PowerShell 7+、cmd、Alacritty、WezTerm,删除走回收站。
两个 beta 平台的说明也值得转述:数据层、渲染、搜索在 Linux 上测试充分,但终端恢复和桌面集成还缺真实桌面环境的打磨;Windows 同理。遇到问题作者欢迎提 issue。
架构与二次开发
代码分两层。wake-core 是纯数据层,不含 UI 依赖,里面给每个 agent 写了一个 adapter(实现 AgentAdapter trait),加一个新 agent 就能白得整套界面。wake 是 GPUI 应用,三栏工作台加 ⌘K 命令面板。扫描是单遍完成元数据和全文索引,基于 notify 做文件监听,SQLite 开 WAL。
本地开发常用的命令:
cargo run -p wake # 开发模式运行
scripts/test.sh # 数据层测试 + UI 编译门禁
cargo run -p wake-core --bin scan # 数据层冒烟:扫描并打印统计
WAKE_THEME=dark cargo run -p wake # 强制深/浅色(默认跟随系统)
WAKE_HOME=/path cargo run -p wake # 把 agent 目录指到别处,便携安装或测试用CI 在每次 push 和 PR 上跑 cargo test -p wake-core 加完整构建,测试套件只解析合成的 fixture 数据,不碰真实 agent 数据。设计细节在仓库的 DESIGN.md 和 PRODUCT.md 里。
注意事项
- macOS 需要 14 及以上
- 预编译包是 ad-hoc 签名,首次启动要过一道 Gatekeeper(见上文两条命令)
- 会话数据加密的工具(Cursor IDE 聊天、Windsurf、Trae)和云端工具(Amp、Warp 等)目前无法支持,这是数据源决定的
- Linux 和 Windows 还是实验阶段,核心功能稳,桌面集成可能遇到毛边