ClaudeMap

cachebeat

单文件 Claude Code skill,用空闲心跳保住 prompt cache 的温度——回来继续聊时不再把整段对话重新计费一遍。

技能与命令skillprompt-cachingcostbackground-tasks

Claude 是无状态的:每一轮都重发整段对话;会话闲置超过缓存 TTL 后,下一句话会把全部历史按未命中价重新处理——约是缓存读的 10 倍 token,在 API 上是钱,在订阅上则是你的 5 小时窗口和周限额。/cachebeat 在会话内挂一个后台监视器。它是「空闲计时器」而不是节拍器:只在会话真正沉默满 N 分钟时才触发(默认 50,钳制在 5-55),任何真实的消息、回复或已应答的后台事件都会重置时钟。触发时 Claude 醒来、答几个词,TTL 重新起算。它还会在截止时间后自毁(默认 8 小时),弃之不用的会话不会无限滴血。空闲信号取自会话记录最后一行的 timestamp——而不是文件 mtime:Claude Code 会因自己的内部整理(recap 重写、原子保存)碰 mtime,按 mtime 计时会让心跳迟到、落在 TTL 之后。

它做什么

  • /cachebeat 挂载监视器;/cachebeat 40 4 自定义空闲阈值(分钟,钳制 5-55)与自毁期限(小时);/cachebeat stop 解除
  • 空闲取自会话记录最后一行的 timestamp——单纯的 mtime 变动骗不过它;记录文件用 $CLAUDE_CODE_SESSION_ID 钉死,同目录的其他会话抢不走
  • 自带自检:若心跳本身仍未命中缓存则打 CACHEBEAT_WARN(说明你的会话 TTL 太短,任何心跳都救不了);CACHEBEAT_EXPIRED 收工
  • 用状态栏 token 读数(总量 / 缓存命中)或一行 grep 对比记录里的 cache_read_input_tokens 与 cache_creation_input_tokens 来验证

什么时候用

长时间挂机看守型会话——数小时的训练、CI、大下载——无论 API 计费还是 Pro/Max 的 5 小时窗口:凡是会闲置超过缓存 TTL 再回来的会话都适用。回本线是「冷启动一次」:一次的代价约等于十次心跳。

如何上手

mkdir -p ~/.claude/skills/cachebeat
cp SKILL.md ~/.claude/skills/cachebeat/
# 项目级:复制到 <your-project>/.claude/skills/cachebeat/

# 然后在任意 Claude Code 会话里:
/cachebeat            # 空闲 50 分钟后触发,8 小时后自动停
/cachebeat 40 4       # 自定义:空闲 40 分钟触发,4 小时后自动停
/cachebeat stop

注意事项

README 写明 MIT,但撰写时仓库还没有 LICENSE 文件。只对带长缓存 TTL(1 小时)的会话有用——有些会话只有 5 分钟 TTL,任何心跳都跨不过去。每次心跳是一笔小的缓存读加几个输出 token,而且这轮问答会进入后续轮次要重读的上下文:便宜,但不是免费。依赖 Claude Code 内部的会话记录布局(未文档化),未来改版可能需要跟进;仅 POSIX shell——Linux、WSL2、macOS 已测,原生 Windows 未测。

代码仓库

ARahim3/cachebeat

收录日期

地图上的相关资源

  • 归藏的 Agent Skill:把代码库的最近更新做成一支成片宣传片——接真实组件、代码渲染动画、代码写配乐,全程不碰视频剪辑软件。

    • agent-skill
    • video
    • promo
    • marketing
  • 一个给「图里没有任何文字线索」的照片做地理定位的 Agent Skill——用 OSM 几何、高程天际线与卫星瓦片,把「这是哪」变成带误差半径的测量答案。

    • agent-skill
    • geolocation
    • osint
    • openstreetmap
  • Birdview

    技能

    让 AI 编码 agent 在动第一行代码之前先画出架构、声明影响范围的 skill——成果是一张可直接打开的独立 HTML 架构地图。

    • skill
    • architecture
    • code-visualization
    • change-scope