wake
The trail you leave behind.
Wake会记录您的终端会话——命令、输出、git上下文——这样Claude Code就可以看到您一直在做什么。
安装
curl -sSf https://raw.githubusercontent.com/joemckenney/wake/main/install.sh | sh设置
增添 ~/.zshrc 或 ~/.bashrc:
eval "$(wake init zsh)" # or: wake init bash将MCP服务器添加到Claude代码中:
claude mcp add --transport stdio --scope user wake-mcp -- wake-mcp用法
工作流程
- 开始 —
wake shell - 工作 --构建、部署、调试
- 问克劳德 --它可以查看您的终端历史记录,无需复制粘贴
示例
$ wake shell
$ kubectl logs deploy/api-server | tail -100
# wall of errors
$ kubectl describe pod api-server-7f8b9
# more stuff you don't have time to read你: 总结API服务器发生的情况 克劳德: API服务器正在崩溃。从日志中可以看出,启动时无法连接到Redis——连接被拒绝 redis:6379pod事件显示在过去10分钟内有5次重启。看起来Redis服务可能已经关闭。CLI参考
wake shell # Start recorded session
wake status # Current session info
wake log # Recent commands
wake search "error" # Search history
wake dump # Export session as markdown
wake annotate "note" # Add a breadcrumb for context
wake prune # Delete old sessions
wake prune --dry-run # Preview what would be deleted
wake prune --force # Skip confirmation
wake prune --older-than 7 # Override retention period (days)
wake update # Update to latest version
wake update --check # Check for updates without installing
wake llm status # Check model status (downloaded/loaded)
wake llm download # Pre-download model (optional, auto-downloads on first use)
wake llm clean # Remove orphaned models from previous versions
wake llm clean --dry-run # Preview what would be deletedMCP工具
Claude Code通过MCP服务器使用这些工具:
| 工具 | 目的 |
|---|---|
wake_status | 当前会话信息 |
wake_list_commands | 列出最近的命令及其元数据和摘要(无完整输出) |
wake_get_output | 获取特定命令ID的完整输出 |
wake_log | 最近输出被截断的命令 |
wake_search | 搜索命令历史记录 |
wake_dump | 将会话导出为降价 |
wake_annotate | 向会话添加注释 |
这 wake_list_commands + wake_get_output 模式启用 分层检索--Claude首先查看命令元数据,然后仅在需要时获取完整输出。这减少了长会话的上下文使用。
配置
创建 ~/.wake/config.toml:
[retention]
days = 21 # Delete sessions older than this (default: 21)
[output]
max_mb = 5 # Max output size per command in MB (default: 5)
[summarization]
enabled = false # Disable LLM summarization (default: true)
min_bytes = 500 # Minimum output size to trigger summarization (default: 1024)或者使用环境变量(优先于配置文件):
export WAKE_RETENTION_DAYS=14
export WAKE_MAX_OUTPUT_MB=10每个旧会话都会自动修剪 wake shell 开始。
LLM总结
Wake使用本地LLM(Qwen3-0.6B)自动汇总命令输出。摘要出现在 wake_list_commands 输出,帮助克劳德在不阅读完整输出的情况下快速理解发生了什么。
默认情况下启用。 首次运行时,模型(约380MB)会自动下载。
- CPU友好 --小型模型无需GPU即可高效运行
- 隐私 --所有推理都在本地进行,没有任何东西离开你的机器
- 手动下载 —
wake llm download预下载模型 - 禁用 --设置
enabled = false在配置中,如果你不想摘要
它是如何工作的:
- 当命令完成并输出>
min_bytes,它正在排队等待摘要 - 后台任务在本地模型上运行推理
- 摘要存储在数据库中,并通过MCP工具公开
GPU加速(从源代码构建):
默认的构建和预构建二进制文件使用CPU推理,这对于小型模型来说足够快。为了在支持的硬件上更快地进行推理,请使用GPU功能进行构建:
cargo build --release --features cuda # NVIDIA (requires CUDA toolkit)
cargo build --release --features metal # Apple Silicon运作原理
┌─────────────────────────────────────────────────────────────────────┐
│ wake shell │
│ │
│ ┌───────────┐ ┌─────────────┐ ┌──────────────────────┐ │
│ │ Your │ pty │ Shell │ hook │ Unix Socket │ │
│ │ Terminal │◄─────►│ (zsh/bash) │─────►│ ~/.wake/sockets/* │ │
│ └───────────┘ └─────────────┘ └──────────┬───────────┘ │
│ │ │ │ │
│ │ │ stdout │ cmd events │
│ │ ▼ ▼ │
│ │ ┌────────────────────────────────┐ │
│ │ │ Output Buffer │ │
│ │ └───────────────┬────────────────┘ │
│ │ │ │
│ │ ▼ │
│ │ ┌─────────────┐ ┌──────────────┐ │
│ │ │ SQLite DB │◄───│ LLM Summary │ │
│ │ │ ~/.wake/ │ │ (background) │ │
│ │ └─────────────┘ └──────────────┘ │
└────────┼────────────────────────────────────────────────────────────┘
│ ▲
│ you │ reads
▼ │
┌──────────────┐ ┌──────────────┐ ┌───────────┐
│ Human at │ │ wake-mcp │ mcp │ Claude │
│ Keyboard │ │ MCP Server │◄────────►│ Code │
└──────────────┘ └──────────────┘ └───────────┘组件
| 组件 | 目的 |
|---|---|
wake shell | 生成PTY,捕获所有I/O,监听钩子事件 |
| 外壳挂钩 | 通过安装 wake init,命令开始/结束时通知唤醒 |
| Unix套接字 | shell钩子和唤醒进程之间的IPC |
| SQLite数据库 | 存储会话、命令、输出、注释、摘要 |
| LLM引擎 | 本地汇总命令输出的后台任务 |
wake-mcp | 向Claude Code公开唤醒数据的MCP服务器 |
数据流
wake shell在PTY内生成外壳并设置$WAKE_SESSION- Shell在每个命令上触发钩子,通过Unix套接字发送元数据
- PTY输出被捕获并与当前命令相关联
- 命令完成后,退出代码+输出将写入SQLite
- 大型输出在后台排队等待LLM摘要
- 克劳德代码查询
wake-mcp,从数据库中读取
约束条件
- 每个shell一个会话 --每个
wake shell创建隔离会话 - 输出截断 --输出大于5MB的命令被截断(可配置)
- 自动清理 --超过21天的会话将自动删除(可配置)
- 仅限本地 --所有数据都保留在
~/.wake/,什么都不会离开你的机器 - 壳牌支持 --钩子适用于zsh和bash(尚不支持fish/其他shell)
从源头构建
git clone https://github.com/joemckenney/wake
cd wake
cargo build --release
# With GPU acceleration (optional)
cargo build --release --features cuda # NVIDIA
cargo build --release --features metal # Apple Silicon许可证
麻省理工学院
