Добавьте свою работу на карту
Три hook’а в настройках Claude Code анонимно отмечают начало сессии, каждое отправленное сообщение и число токенов за ход — так карта видит не только сессии, но и реальную нагрузку внутри долгой работы. Это добровольно и отключается удалением пары строк.
1. Установите hooks
Вариант А: пусть Claude Code сделает это сампроще всего
Скопируйте промт и отправьте его в Claude Code. Агент скачает скрипт и покажет его вам, сделает резервную копию настроек, заменит старый hook Hourglyph (если он был), добавит новые записи к существующим и покажет diff. Перед записью файлов Claude Code спросит разрешение.
Подключи у меня hooks Hourglyph для Claude Code (https://hourglyph.github.io/ru/setup/).
Цель: анонимно отправлять на карту пиковых часов время начала сессий, время отправки сообщений и число токенов за ход. Текст сообщений, ответы, код и пути не отправляются.
Шаги:
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). Проверь, что в нём нет ничего, кроме отправки события и четырёх чисел токенов.
2. Прочитай ~/.claude/settings.json (если файла нет — считай, что там {}). Если файл есть, сделай резервную копию ~/.claude/settings.json.bak.
3. Удали из hooks все старые записи Hourglyph — команды, содержащие "hourglyph.sh" / "rpc/checkin", — чтобы не было дублей.
4. Объедини, а не перезаписывай: сохрани все остальные настройки и hooks и добавь в соответствующие массивы 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
Больше ничего не меняй. Данные начнут приходить со следующей новой сессии.Вариант Б: вручную
Скачайте скрипт (посмотреть исходник на 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 (или объедините с существующим). Если у вас был старый hook с rpc/checkin, удалите его.
{
"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"} — без текста |
Stop | Claude закончил отвечать | 4 числа: входные, выходные токены, запись и чтение кэша |
- Токены скрипт считает локально из файла переписки, путь к которому Claude Code передаёт hook’у. Наружу уходят только итоговые числа — не текст, не код, не пути, не идентификатор сессии.
- Все hooks работают в фоне (
async: true) с таймаутом 5 секунд и не задерживают Claude Code. Вывод подавлен, в контекст модели ничего не попадает. - Час, день недели и страну определяет сервер (страну — по заголовку, который сеть добавляет к соединению); IP не сохраняется.
- Ключ в скрипте — публичный (publishable) ключ Supabase: с ним можно только отправить событие, прочитать сырые данные нельзя. Частота событий из одной сети ограничена (см. примечания ниже).
3. Проверьте
Запустите claude в новом терминале, отправьте сообщение, подождите минуту и откройте карту — вырастут счётчики сообщений и токенов. Список активных hooks показывает команда /hooks.
Как отключить
Одна команда удалит из ~/.claude/settings.json только записи Hourglyph (с резервной копией settings.json.hourglyph-bak) и сам скрипт. Остальные ваши hooks и настройки не меняются. Посмотреть исходник на GitHub.
curl -fsSL https://hourglyph.github.io/hook/uninstall.sh | shНужен python3 или node; если их нет, скрипт ничего не изменит и подскажет, что удалить вручную.
Или попросите Claude Code
Удали у меня hooks Hourglyph для Claude Code (https://hourglyph.github.io/ru/setup/).
1. Сделай резервную копию ~/.claude/settings.json в ~/.claude/settings.json.hourglyph-bak.
2. Удали из hooks только записи Hourglyph — команды, содержащие "hourglyph.sh" / "rpc/checkin". Все остальные hooks и настройки оставь как есть; пустые группы и события удали.
3. Запиши файл как валидный JSON и перечитай его, чтобы убедиться, что он парсится.
4. Удали файл ~/.claude/hooks/hourglyph.sh.
5. Покажи мне diff.Вручную
Удалите три записи с hourglyph.sh из ~/.claude/settings.json и файл ~/.claude/hooks/hourglyph.sh. Ранее отправленные данные обезличены и не связаны с вами.
Примечания
- Нужны
sh,awkиcurl: они есть в macOS, Linux и WSL. В Windows без WSL Claude Code выполняет hooks через Git Bash, где всё это тоже есть. - Чтобы отмечать только работу над конкретным проектом, положите тот же блок в
.claude/settings.jsonрепозитория. - Из одной сети принимается до 8 запусков сессий и до 30 сообщений или ходов в минуту — хватит и для работы с несколькими проектами сразу.
- Не хотите ничего настраивать? Нажмите кнопку «Я сейчас работаю в Claude Code» на главной.
- Документация по hooks: code.claude.com/docs/en/hooks.