把你的使用情况加到地图上

在 Claude Code 设置里加三个 hook,就能匿名记录会话启动、你发出的每条消息以及每轮消耗的 token——这样地图看到的不只是会话数量,还有长时间工作中的真实负载。完全自愿,删掉几行配置即可关闭。

1. 安装 hook

方式 A:让 Claude Code 自己完成最简单

复制下面的提示词发给 Claude Code。智能体会下载脚本并先给你看内容,备份你的设置,替换旧版 Hourglyph hook(如果有),把新条目合并进去,最后展示 diff。写入文件前 Claude Code 会征求你的同意。

请在这台机器上为 Claude Code 安装 Hourglyph hooks(https://hourglyph.github.io/zh/setup/)。

目标:把会话启动时间、发送消息的时间以及每轮的 token 数匿名发送到高峰时段地图。消息文本、回复、代码和路径都不会发送。

步骤:
1. 下载脚本,在继续之前把完整内容展示给我:
   mkdir -p ~/.claude/hooks && curl -fsSL https://hourglyph.github.io/hook/hourglyph.sh -o ~/.claude/hooks/hourglyph.sh
   (GitHub 源码:https://github.com/hourglyph/hourglyph.github.io/blob/main/public/hook/hourglyph.sh)。确认它除了发送事件名和四个 token 数字之外不做任何事。
2. 读取 ~/.claude/settings.json(文件不存在就当作 {})。如果文件存在,先备份到 ~/.claude/settings.json.bak。
3. 从 hooks 中删除所有旧的 Hourglyph 条目——即包含 "hourglyph.sh" / "rpc/checkin" 的命令——避免重复。
4. 合并而不是覆盖:保留其他所有设置和 hook,把下面这些元素原样追加到 hooks.SessionStart、hooks.UserPromptSubmit 和 hooks.Stop 数组中(不存在就创建):

{
  "SessionStart": [
    {
      "matcher": "startup",
      "hooks": [
        {
          "type": "command",
          "command": "sh \"$HOME/.claude/hooks/hourglyph.sh\" session",
          "async": true
        }
      ]
    }
  ],
  "UserPromptSubmit": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "sh \"$HOME/.claude/hooks/hourglyph.sh\" message",
          "async": true
        }
      ]
    }
  ],
  "Stop": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "sh \"$HOME/.claude/hooks/hourglyph.sh\" stop",
          "async": true
        }
      ]
    }
  ]
}

5. 以合法 JSON 写回文件,并重新读取确认可以解析。
6. 检查 curl 和 awk 是否可用(command -v curl awk)。
7. 给我看 diff,并告诉我如何全部删除:从 settings.json 删掉这三个条目并删除文件 ~/.claude/hooks/hourglyph.sh——或者用一条命令:curl -fsSL https://hourglyph.github.io/hook/uninstall.sh | sh

不要修改其他任何内容。从下一个新会话开始就会发送数据。

方式 B:手动安装

下载脚本(在 GitHub 上查看源码,65 行 sh + awk):

mkdir -p ~/.claude/hooks && curl -fsSL https://hourglyph.github.io/hook/hourglyph.sh -o ~/.claude/hooks/hourglyph.sh

然后把 hooks 块加到 ~/.claude/settings.json(或与已有的合并)。如果你装过带 rpc/checkin 的旧版 hook,请删掉它。

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "startup",
        "hooks": [
          {
            "type": "command",
            "command": "sh \"$HOME/.claude/hooks/hourglyph.sh\" session",
            "async": true
          }
        ]
      }
    ],
    "UserPromptSubmit": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "sh \"$HOME/.claude/hooks/hourglyph.sh\" message",
            "async": true
          }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "sh \"$HOME/.claude/hooks/hourglyph.sh\" stop",
            "async": true
          }
        ]
      }
    ]
  }
}

2. 会发送什么

Hook触发时机发送内容
SessionStart新会话启动{"p_event":"session"}
UserPromptSubmit你发送一条消息{"p_event":"message"} — 不含文本
StopClaude 完成一轮回复4 个整数:输入、输出、缓存写入和缓存读取 token 数

3. 验证

在新终端里启动 claude,发一条消息,等一分钟后打开地图——消息和 token 计数会增加。/hooks 命令可以列出当前生效的 hook。

如何关闭

一条命令即可从 ~/.claude/settings.json 中只删除 Hourglyph 的条目(备份保存在 settings.json.hourglyph-bak),并删除脚本本身。你的其他 hook 和设置保持不变。在 GitHub 上查看源码。

curl -fsSL https://hourglyph.github.io/hook/uninstall.sh | sh

需要 python3 或 node;如果都没有,脚本不会做任何修改,并会告诉你需要手动删除哪些内容。

或者让 Claude Code 来做

请在这台机器上删除 Claude Code 的 Hourglyph hooks(https://hourglyph.github.io/zh/setup/)。

1. 把 ~/.claude/settings.json 备份到 ~/.claude/settings.json.hourglyph-bak。
2. 只从 hooks 中删除 Hourglyph 的条目——即包含 "hourglyph.sh" / "rpc/checkin" 的命令。其他 hook 和设置保持原样;删掉因此变空的分组和事件。
3. 以合法 JSON 写回文件,并重新读取确认可以解析。
4. 删除文件 ~/.claude/hooks/hourglyph.sh。
5. 给我看 diff。

手动删除

从 ~/.claude/settings.json 中删除包含 hourglyph.sh 的三个条目,并删除文件 ~/.claude/hooks/hourglyph.sh。已发送的数据是匿名的,与你无关联。

说明