Как это работает
Claude Code устанавливает переменную окруженияCLAUDECODE в значение 1 для каждой команды, которую он запускает через инструменты Bash и PowerShell, а также для команд hook. Начиная с версии 2.1.172, он также устанавливает CLAUDE_CODE_CHILD_SESSION в значение 1 в этих же подпроцессах. Когда ваш CLI видит одну из этих переменных, он выводит самозакрывающийся тег <claude-code-hint /> в stderr. В командах hook тег подсказки удаляется и игнорируется. Только вывод инструментов Bash и PowerShell запускает приглашение установки.
Когда Claude Code получает вывод команды, он:
- Сканирует строки подсказок и удаляет их перед тем, как вывод достигнет модели
- Проверяет, что подсказка указывает на плагин в официальном маркетплейсе Anthropic
- Проверяет, что плагин ещё не установлен и на него не было предложения ранее
- Показывает пользователю предложение об установке, в котором указана команда, выведшая подсказку
Выведите подсказку
Подсказки срабатывают только для плагинов, указанных в официальном маркетплейсе Anthropic. Смотрите Добавьте ваш плагин в официальный маркетплейс перед тем, как вы развернёте интеграцию. Обусловьте вывод переменной окружения, чтобы маркер был маловероятен при прямом запуске вашего CLI пользователем, затем выведите тег в stderr на отдельной строке. Выберите, какую переменную проверять:CLAUDECODE: устанавливается в каждой версии Claude Code, поэтому достигает большинства сеансов. Она также устанавливается в tmux сеансах и подпроцессах stdio MCP сервера, которые запускает Claude Code. Расширения IDE также устанавливают её в своих интегрированных терминалах, где пользователь может запускать ваш CLI напрямую.CLAUDE_CODE_CHILD_SESSION: устанавливается только в подпроцессах, которые сам Claude Code порождает, таких как вызовы инструментов, команды hook и команды строки состояния, поэтому тег обычно не достигает терминала пользователя. Долгоживущий процесс, запущенный внутри сеанса, такой как tmux сервер, захватывает переменную, поэтому оболочки, позже запущенные из этого процесса, всё ещё показывают необработанный тег. Требует Claude Code v2.1.172 или позже, поэтому сеансы на более старых версиях пропускают подсказку.
CLAUDECODE для максимального охвата и выводят подсказку для плагина с именем example-cli в официальном маркетплейсе:
example-cli на имя вашего плагина в официальном маркетплейсе.
Выберите место для вывода
Вы контролируете, какие пути кода выводят подсказку. Claude Code дедублицирует по плагину, поэтому вывод при каждом вызове не имеет никаких недостатков. Хорошо работают следующие точки:Что видит пользователь
Когда подсказка проходит все проверки, Claude Code показывает приглашение, подобное следующему:- Один раз на плагин: после того как приглашение показано, Claude Code записывает плагин и никогда больше не предлагает его, независимо от ответа пользователя.
- Один раз за сеанс: на всех CLI на машине одновременно может появиться максимум одно приглашение подсказки за сеанс Claude Code.
Формат подсказки
Подсказка — это самозакрывающийся тег с тремя обязательными атрибутами.
Значения атрибутов могут быть заключены в двойные кавычки или оставлены без кавычек. Значения без кавычек не могут содержать пробелы. Последовательности экранирования не поддерживаются.
Требования
Claude Code применяет два условия перед действием на основе подсказки. Подсказки, которые не проходят ни одну из проверок, отбрасываются:- Отдельная строка: тег должен занимать отдельную строку. Тег, встроенный в середину строки, например внутри оператора логирования, игнорируется. Пробелы в начале и конце строки допускаются.
- Официальный маркетплейс:
valueдолжен ссылаться на плагин в контролируемом Anthropic маркетплейсе, таком какclaude-plugins-official. Подсказки, указывающие на другие маркетплейсы, молча отбрасываются.
- Выводите в stderr: stderr держит тег вне конвейеров оболочки, таких как
example-cli deploy | jq. Claude Code сканирует оба потока, поэтому stdout также работает. - Обусловьте на переменной окружения: выводите только когда установлена переменная окружения
CLAUDECODEилиCLAUDE_CODE_CHILD_SESSION. Смотрите Выведите подсказку, чтобы узнать, чем отличаются эти две переменные.
Добавьте ваш плагин в официальный маркетплейс
Протокол подсказок вступает в силу только для плагинов, которые указаны в официальном маркетплейсе Anthropic,claude-plugins-official. Anthropic курирует этот маркетплейс по своему усмотрению, а встроенные формы отправки добавляют плагины в маркетплейс сообщества, который протокол подсказок не проверяет. Если вы работаете с контактом партнёра Anthropic, свяжитесь с ним для координации листинга в официальном маркетплейсе.
См. также
- Создание плагинов: создайте плагин, который рекомендует ваш CLI
- Создание и распространение маркетплейса плагинов: размещайте плагины вне официального маркетплейса
- Переменные окружения: полный справочник по
CLAUDECODEи связанным переменным