update-search-year — хук для Claude Code: год в поисковых запросах
Хук добавляет текущий год к запросам WebSearch, если года в них нет. Пригодится, когда нужны свежие результаты, а не прошлогодние.
npx claude-code-templates@latest --hook pre-tool/update-search-yearЧто делает update-search-year
Хук перехватывает вызов инструмента WebSearch и проверяет строку запроса. Если года там нет и нет слов вроде «latest», «recent», «current», «new», «now», «today», к запросу дописывается текущий год. Дальше поиск уходит уже с ним.
Внутри — один PreToolUse-хук с matcher WebSearch, который запускает python3 -c с коротким скриптом. Скрипт читает JSON со stdin, берёт поле query, ищет в нём четырёхзначный год регуляркой и возвращает изменённый ввод через modifiedToolInput. Таймаут — 5 секунд.
Для работы нужен python3 в системе. Если запрос уже содержит год или временное слово, хук ничего не меняет — это стоит помнить, когда формулировка сама отсекает свежие страницы.
Какие задачи решает
- дописать текущий год к поисковому запросу
- получить свежие результаты вместо устаревших
- не переписывать вручную каждый запрос к WebSearch
- оставить запрос с годом или словом «latest» без изменений
Примеры запросов агенту
- найди в интернете, что нового в React
- поищи в вебе последние изменения в API
- найди документацию по библиотеке
Как установить update-search-year
1Через claude-code-templates
npx claude-code-templates@latest --hook pre-tool/update-search-year2Вручную: положить файлы
.claude/settings.jsonБлок hooks: событие (PreToolUse, PostToolUse, Stop…) → команда. Личные — ~/.claude/settings.json
По шагам, с командами для каждой платформы: Хуки Claude Code: что это, где настраивать и как запретить опасную команду
Из того же набора205
Весь набор →Похожие
Рядом в теме «Настройка агента: память, контекст, субагенты»
Все хуки по теме «Настройка агента: память, контекст, субагенты» →Вопросы о update-search-year
Как установить update-search-year в Claude?
Выполните npx claude-code-templates@latest --hook pre-tool/update-search-year, затем проверьте .claude/settings.json.
Что делает update-search-year?
Перехватывает вызовы WebSearch и дописывает текущий год к запросу, если года в нём ещё нет.
Когда хук не трогает запрос?
Если в запросе уже есть год или одно из слов «latest», «recent», «current», «new», «now», «today».
Исходный текст
update-search-year.json · MIT
{
"description": "Automatically adds current year to WebSearch queries when no year is specified. This hook intercepts WebSearch tool usage and appends the current year to queries that don't already contain a year, ensuring search results are current and relevant.",
"hooks": {
"PreToolUse": [
{
"matcher": "WebSearch",
"hooks": [
{
"type": "command",
"command": "python3 -c \"import json, sys, re; from datetime import datetime; input_data = json.load(sys.stdin); tool_input = input_data.get('tool_input', {}); query = tool_input.get('query', ''); current_year = str(datetime.now().year); has_year = re.search(r'\\\\b20\\\\d{2}\\\\b', query); has_temporal = any(word in query.lower() for word in ['latest', 'recent', 'current', 'new', 'now', 'today']); should_add_year = not has_year and not has_temporal; modified_query = f'{query} {current_year}' if should_add_year else query; output = {'hookSpecificOutput': {'hookEventName': 'PreToolUse', 'modifiedToolInput': {'query': modified_query}}}; print(json.dumps(output)); sys.exit(0)\"",
"timeout": 5
}
]
}
]
}
}
© davila7 · MIT · davila7/claude-code-templates