Skip to content

Слеш-команды (Slash Commands): один символ / для быстрого доступа ко всем действиям Claude

📚 Навигация по серии: Предыдущая статья 35 Контроль и режимы научила вас натягивать и отпускать поводья Claude в сессии (переключатели режимов разрешений, /model, /effort и т.д.). Эта статья возвращает нас к элементу, который вы вводите каждый день, но, возможно, не освоили до конца — слеш-командам. Стоит ввести / — и перед вами меню с выбором моделей, очисткой контекста и вашими собственными автоматизированными процессами. Я помогу вам разобраться со встроенными командами и научу создавать собственные.

Многие в начале работы с Claude Code делали одну довольно глупую вещь.

Каждый раз, когда хотелось очистить историю диалога и начать заново, выполнялась целая процедура: сначала нажимали Ctrl+C для выхода из claude, затем в терминале снова вводили claude для запуска, ждали перезагрузки проекта и повторного чтения CLAUDE.md — на всё про всё секунд десять. И так продолжалось неделю или две, с мыслью «ну это же перезапуск, так и должно быть». Пока случайно в документации не попадалась команда /clear с описанием «открыть новый диалог с чистым контекстом». Оказалось, что достаточно ввести всего шесть символов прямо в сессии, а все эти перезапуски были пустой тратой времени.

Еще обиднее было узнать про другие команды: /compact сжимает длинный диалог для продолжения общения, /model меняет модель без перезапуска, /init автоматически генерирует CLAUDE.md... Всё это либо делалось вручную с трудом, либо вообще казалось невозможным. Эти команды всегда находились в меню /, достаточно было просто ввести косую черту, но никто туда не заглядывал.

Эта история рассказана для того, чтобы вы не повторяли чужих ошибок: слеш-команды — это не «продвинутая фича», а базовая панель управления Claude Code. Большинство мета-операций, которые вы хотите выполнить в сессии (не написание кода, а настройка самой программы), доступны через /. В этой статье мы разберем встроенные команды и научимся превращать часто повторяющиеся запросы в собственные команды запуска в один клик.

Прочитав эту статью, вы получите:

  • Простое определение того, что такое слеш-команды и почему они работают только в начале строки.
  • Список встроенных команд, сгруппированных по сценариям использования (/help, /clear, /compact, /init, /model, /agents, /mcp, /memory и др.) — для подглядывания при необходимости.
  • Пошаговое руководство по созданию собственной слеш-команды: создание markdown-файла в папке .claude/commands/, добавление frontmatter и передача аргументов через $ARGUMENTS.
  • Продвинутый прием: динамическая подстановка данных окружения (например, git diff) перед отправкой команды.
  • Понимание пространств имен (namespaces) и того, почему команды плагинов никогда не конфликтуют с вашими.
  • Ответ на вопрос, как связаны слеш-команды и Skill (если коротко: слеш-команда — это способ быстро вызвать Skill вручную, подробнее в статье 26).
  • Практическое упражнение: создание и проверка собственной команды /explain с параметрами за 5 минут.

01 Что такое слеш-команды и почему они работают только в начале строки

Начнем с главного: слеш-команды — это управляющие инструкции в сессии Claude, предназначенные не для выполнения моделью, а для управления самой программой Claude Code: смена модели, очистка контекста, запуск сценария или открытие панели настроек.

Вспомните предыдущие статьи: наше общение с Claude делится на два типа. Первый тип — это непосредственные задачи: «помоги отрефакторить эту функцию», «в чем ошибка в этом логе» — это адресовано языковой модели. Второй тип — это мета-операции: «очисти диалог и начни заново», «переключись на более дешевую модель», «создай описание проекта» — для этих действий не нужно вести диалог с моделью, для них нужны прямые переключатели. Слеш-команды и есть эти переключатели.

Аналогия: кнопки на пульте телевизора. Когда вы смотрите телевизор, для переключения каналов, регулировки громкости, выбора источника сигнала или вызова меню вы не кричите телевизору «сделай погромче», а нажимаете физическую кнопку. Каждая кнопка выполняет строго определенное действие мгновенно, без лишних слов и двусмысленностей. Слеш-команды работают так же: /clear — это кнопка очистки экрана, /model — выбор источника, /help — вызов меню. Их выполнение жестко прописано в кодовой базе программы и не зависит от «понимания» модели.

Официальное определение звучит лаконично:

Команды управляют Claude Code изнутри сессии. Они позволяют быстро менять модели, управлять правами доступа, очищать контекст, запускать рабочие процессы и выполнять другие задачи.

Здесь есть важный нюанс, на котором часто спотыкаются новички:

Команды распознаются только в самом начале сообщения. Текст, идущий после имени команды, передается ей в качестве аргументов.

Проще говоря: символ / должен быть первым символом в вашем сообщении, чтобы строка распозналась как команда. Если написать «расскажи мне, зачем нужна команда /clear», то /clear окажется в середине строки, не будет выполнена как команда, а просто отправится как текст запроса к Claude. Это логично, иначе при обсуждении команд диалог постоянно прерывался бы их выполнением. Запомните: команда всегда идет первой, а всё, что после неё — это аргументы.

Почувствуйте разницу на примерах из реальной работы:

  • В процессе диалога поняли, что текущая модель слабовата — не нужно перезапускать сессию, введите /model и переключитесь на более мощную прямо на месте.
  • Задача решена, нужно заняться совершенно другим делом — введите /clear для очистки контекста (старый диалог можно вернуть через /resume).
  • Склонировали новый проект и хотите, чтобы Claude изучил его — введите /init, он просканирует код и создаст файл CLAUDE.md.

Все эти действия объединяет то, что они управляют самой программой Claude Code, а не просят модель написать код.

Как узнать, какие команды вам доступны? Просто введите / в поле ввода сессии — откроется интерактивное меню со списком всех доступных команд. По мере ввода букв список будет автоматически фильтроваться.

Введите /, чтобы увидеть все доступные команды, или введите буквы после /, чтобы отфильтровать их.

💡 Резюме в одной фразе: Слеш-команды — это «кнопки управления» Claude Code. Они управляют самой программой (смена модели, очистка контекста и т.д.), работают только в самом начале строки ввода, а полный список можно вызвать простым вводом /.


02 Список встроенных команд: ищите по этапам работы

Встроенных команд довольно много, и пытаться заучить их все наизусть — пустая трата времени. Официальная документация Claude Code группирует их по этапам стандартного рабочего процесса. Мы поступим так же: найдите нужный этап и выберите подходящую команду.

Для начала проясним терминологию. Большинство команд в списке — это «встроенные команды» (их логика жестко прописана в CLI). Но есть команды, отмеченные в документации как Skill — по сути, это готовые промпты-инструкции, которые Claude выполняет с помощью своих инструментов (например, /code-review, /debug). Также есть несколько команд, отмеченных как Workflow — это сложные сценарии с параллельным запуском субагентов (например, /batch, /deep-research). Для вас все они выглядят одинаково и вызываются через /, разница заключается лишь во внутренней реализации (подробнее о Skill читайте в статье 26).

Группа 1: Начало работы с проектом (настройка окружения)

КомандаЧто делаетКогда применять
/initСоздает базовый файл памяти CLAUDE.mdПри первом запуске в новом репозитории (подробнее в статье 12)
/memoryПозволяет редактировать CLAUDE.md и управлять памятьюДля тонкой настройки файла описания после /init (подробнее в статье 25)
/mcpУправляет подключениями и правами MCP-серверовПри интеграции внешних инструментов (подробнее в статье 22)
/agentsНастраивает параметры субагентов (subagents)Для распределения задач между виртуальными помощниками (подробнее в статье 23)
/permissionsУправляет правилами разрешений (разрешить/спрашивать/запретить)Для настройки контроля над действиями AI (подробнее в статье 20)

Начало работы с новым проектом обычно выглядит так: сначала запускаем /init, чтобы Claude изучил кодовую базу и создал черновик CLAUDE.md, затем с помощью /memory корректируем неточности. Это избавляет от необходимости писать файл описания вручную с нуля.

Группа 2: В процессе работы (управление состоянием сессии)

КомандаЧто делаетКогда применять
/modelМеняет модель и сохраняет её по умолчанию для новых сессийПри необходимости перейти на более мощную или экономную модель
/clearНачинает новый диалог с чистым контекстомПри переходе к совершенно новой задаче (сброс истории)
/compactСжимает текущий диалог в краткую сводкуКогда контекст переполнен, но нужно продолжить текущую задачу (подробнее в статье 19)
/contextВизуализирует использование контекста в виде сеткиЧтобы понять, какие данные занимают больше всего места в памяти
/planПереключает сессию в режим планированияПеред крупными изменениями, чтобы сначала изучить план без редактирования кода

Часто путают команды /clear и /compact. Запомните разницу: для перехода к новой задаче используйте /clear (полная очистка рабочего стола), а для продолжения долгой текущей задачи — /compact (сжатие истории в резюме). Подробнее об этом в статье 19.

Группа 3: Перед сдачей работы (проверка изменений)

КомандаЧто делает
/diffОткрывает интерактивный инструмент просмотра изменений (diff)
/reviewПозволяет провести инспекцию (review) пул-реквеста в текущей сессии
/security-reviewСканирует изменения в текущей ветке на наличие уязвимостей
/code-reviewАнализирует изменения, ищет баги, предлагает улучшения; флаг --fix позволяет применить их

Группа 4: Сервисные и прочие команды

КомандаЧто делает
/helpВыводит справку и список доступных команд
/configОткрывает интерактивное меню настроек (темы, модели, стиль вывода)
/doctorПроверяет корректность установки и окружения; флаг f запускает автоисправление
/resumeВосстанавливает старый диалог по ID или названию
/skillsВыводит список всех доступных в системе Skill
/rewindОткатывает код и/или историю диалога к точке сохранения (тема следующей статьи)

Обратите внимание: список доступных команд может отличаться. Документация указывает, что доступность команд зависит от платформы, тарифного плана и настроек окружения. Например, /desktop доступна только на macOS и Windows при авторизации с подпиской Claude, а /upgrade — только на платных тарифах Pro и Max. Актуальным списком является тот, который вы видите при вводе / на своем компьютере.

Этот список не является полным (в официальной документации больше пунктов), но он покрывает 90% повседневных сценариев. В остальных случаях просто введите / и начните писать название нужного действия.

💡 Резюме в одной фразе: Не зазубривайте встроенные команды, а ищите их по этапам работы: настройка проекта (/init, /memory, /permissions), управление сессией (/model, /clear, /compact), инспекция кода (/diff, /code-review) и диагностика (/help, /doctor, /resume). Полный список всегда доступен по вводу /.


03 Создание собственной команды: markdown-файл в папке .claude/commands/

Использовать встроенные команды удобно, но по-настоящему эффективной работу делает создание собственных команд.

Зачем это нужно? Вспомните, сколько раз вы повторяли Claude одни и те же инструкции: как оформлять коммиты, по каким правилам проверять пул-реквесты, как объяснять сложный код без заумных терминов. Если вы ловите себя на том, что пишите один и тот же промпт в пятый раз — пришло время превратить его в команду.

Аналогия: программирование кнопки «быстрого сценария» на универсальном пульте. Вы можете записать последовательность действий (включить ТВ → выбрать HDMI2 → установить громкость на 15) на одну кнопку. Собственная слеш-команда работает так же: вы упаковываете частый промпт в команду, и при её вызове этот промпт автоматически отправляется в диалог.

Как это сделать? Невероятно просто: создайте markdown-файл в папке .claude/commands/. Имя файла станет именем вашей команды.

Файл в .claude/commands/deploy.md... создаст команду /deploy.

То есть, файл .claude/commands/commit.md с вашим промптом по оформлению коммитов автоматически превратится в команду /commit. Имя файла (без расширения .md) определяет имя команды. Никаких дополнительных настроек не требуется.

Простой пример. Создаем файл .claude/commands/review.md со следующим содержимым:

markdown
Проверь мои текущие неотправленные изменения (diff), обратив внимание на три момента:
1. Наличие обработки потенциальных ошибок.
2. Отсутствие захардкоженных конфигов (порты, ключи, пути).
3. Наличие необходимых тестов для нового функционала.

Выведи результаты на русском языке списком с указанием файлов.

Теперь при вводе /review в сессии Claude получит этот текст целиком — как если бы вы ввели его вручную, но вам потребовалось набрать всего 7 символов.

Где хранить файлы команд? Важное различие:

Путь к папкеОбласть действияДобавлять в git?
На уровне проекта: .claude/commands/Только для текущего проектаДа, доступно всей команде после загрузки кода
Глобально для пользователя: ~/.claude/commands/Для всех ваших проектовНет, это ваши личные команды

Правило аналогично работе со Skill: если команда специфична для проекта и должна быть доступна коллегам (например, скрипт развертывания проекта), храните её на уровне проекта и добавляйте в git. Если это ваша личная универсальная команда (например, ваш стиль объяснения кода), сохраните её в глобальной папке пользователя ~/.claude/commands/. Глобальные команды будут доступны в любом проекте на вашей машине, что очень удобно.

💡 Резюме в одной фразе: Чтобы создать свою команду, создайте markdown-файл в папке .claude/commands/ (для проекта) или ~/.claude/commands/ (глобально). Имя файла определит имя команды.


04 Настройка параметров: frontmatter и аргументы $ARGUMENTS

Команда /review из предыдущего раздела полезна, но статична: она не принимает аргументы. Вы не можете сказать ей: «проверь только файл src/auth.ts» — она всегда проверяет весь diff. Чтобы сделать команду гибкой, нужно использовать frontmatter и переменные аргументов.

Передача параметров через $ARGUMENTS

Для работы с аргументами Claude Code предоставляет переменную $ARGUMENTS. Всё, что вы введете после имени команды, подставится вместо этой переменной. Пример из документации наглядно показывает этот принцип:

markdown
Fix GitHub issue $ARGUMENTS following our coding standards.

1. Read the issue description
2. Understand the requirements
3. Implement the fix
4. Verify the tests pass

Документация объясняет это так:

При запуске /fix-issue 123 Claude получит промпт «Fix GitHub issue 123 following our coding standards...»

То есть значение 123 подставится на место $ARGUMENTS. Один шаблон — разные параметры. Это делает команды по-настоящему полезными.

Полезная деталь: если вы передали аргументы при вызове команды, но в её шаблоне нет переменной $ARGUMENTS, программа автоматически допишет строку ARGUMENTS: <ваш ввод> в конец отправляемого промпта. Таким образом, аргументы не потеряются и будут переданы модели.

Использование позиционных аргументов: $0, $1 и т.д.

Что делать, если нужно передать несколько разных параметров? Например: «перенести компонент SearchBar из React в Vue». Здесь у нас три разных значения. Вы можете использовать позиционные переменные вида $ARGUMENTS[N] или их сокращенную версию $N (индексация начинается с 0):

markdown
Migrate the $0 component from $1 to $2.
Preserve all existing behavior and tests.

При вызове /migrate-component SearchBar React Vue переменная $0 примет значение SearchBar, $1React, а $2Vue. Важный момент: позиционные аргументы разбираются в стиле shell-команд, поэтому значения, содержащие пробелы, нужно брать в кавычки, иначе они разобьются на отдельные аргументы. Например, при вызове /my-cmd "hello world" second значение $0 будет равно hello world, а без кавычек $0 станет просто hello. (Переменная $ARGUMENTS этому правилу не подчиняется — она всегда передает всю строку ввода целиком без изменений.)

Управление поведением команды через frontmatter

Передачи аргументов может быть недостаточно. Некоторые команды (например, /deploy или /commit) выполняют действия с побочными эффектами — вы вряд ли хотите, чтобы Claude автоматически отправлял код на сервер сразу после написания. Для контроля таких ситуаций используется блок frontmatter.

Frontmatter — это блок настроек в формате YAML, расположенный в самом начале файла между строками --- (мы видели это при разборе SKILL.md в статье 26). Вот два ключевых параметра для файлов команд:

markdown
---
description: Добавляет изменения в индекс и создает коммит
disable-model-invocation: true
---

Закоммить текущие изменения с понятным описанием на русском языке. Формат префиксов: feat/fix/docs:

1. Запусти тесты
2. Выполни git add для измененных файлов
3. Создай коммит с информативным описанием
  • description: краткое описание того, что делает команда. Оно отображается в подсказках, а также используется Claude для понимания, в каких случаях её стоит вызывать. Рекомендуется указывать всегда.
  • disable-model-invocation: true: если установлено значение true, команда может быть запущена только вами вручную через /. Модель Claude не сможет вызвать её самостоятельно в процессе автономной работы. Это критически важно для команд с побочными эффектами (деплой, коммиты, отправка уведомлений).

Запомните важное правило: по умолчанию созданные вами команды могут вызывать как вы, так и сам Claude в процессе работы. Если вы написали description, Claude может решить применить эту команду автономно. Это проявление того, что слеш-команды и Skill имеют одну природу. Чтобы избежать нежелательных автоматических действий, всегда пишите disable-model-invocation: true. Для команды /commit это обязательная строчка, иначе Claude может попытаться сделать коммит без вашего одобрения.

Желаемый результатЧто прописать в frontmatter
Команда совершает действия в системе, запускать только вручнуюdisable-model-invocation: true
Помочь Claude понять, для чего нужна командаЗаполнить поле description
Ограничить список доступных инструментов при выполнении командыallowed-tools: Bash(git add *) Bash(git commit *)

💡 Резюме в одной фразе: Переменная $ARGUMENTS подставляет весь ввод после имени команды, а $0 / $1 позволяют работать с позиционными параметрами (берите значения с пробелами в кавычки). В frontmatter параметр description описывает назначение команды, а disable-model-invocation: true запрещает модели запускать её автоматически.


05 Продвинутый прием: динамическая инъекция данных окружения

Ваши команды уже умеют принимать параметры, но есть способ сделать их еще мощнее — научить команду автоматически собирать данные из системы перед отправкой промпта. Этот прием называется динамической инъекцией контекста (dynamic context injection).

Какую проблему это решает? Наша команда /review содержит фразу «Проверь мои текущие неотправленные изменения». Чтобы выполнить этот запрос, Claude сначала должен запустить команду git diff, прочитать её вывод и только потом начать анализ. Можно ли сделать так, чтобы вывод diff автоматически подставлялся в промпт еще до того, как Claude его получит? Да, можно.

Для этого используется синтаксис !`команда` — восклицательный знак и команда в обратных кавычках. Документация описывает это следующим образом:

Синтаксис !`<command>` запускает указанную shell-команду перед отправкой промпта в Claude. Вывод команды подставляется вместо этой переменной, поэтому модель получает реальные данные, а не саму инструкцию запуска.

Давайте обновим наш файл /review. В файле .claude/commands/review.md напишем:

markdown
## Текущие изменения в коде

!`git diff HEAD`

## Инструкция

Проанализируй представленные изменения выше. Обрати внимание на обработку ошибок, хардкод параметров и покрытие тестами. Выведи результат списком на русском языке.

Что произойдет при вызове этой команды? Программа выполнит следующие шаги:

  1. Claude Code запустит в системе команду git diff HEAD.
  2. Весь текстовый вывод этой команды подставится вместо строки !`git diff HEAD`.
  3. Модель Claude получит готовый промпт, уже содержащий ваш актуальный diff.

Благодаря этому Claude не тратит время на запуск утилит для сбора информации, а сразу приступает к анализу данных.

Несколько важных правил работы с этим синтаксисом:

  • Восклицательный знак должен стоять в начале строки или после пробела. Если написать что-то вроде OUTPUT=!git diff, то синтаксис не сработает, и строка будет передана как обычный текст.
  • Для многострочных shell-скриптов используйте блоки кода с синтаксисом ```! (одна команда на строку внутри блока).
  • Эту функцию можно отключить глобально. Параметр конфигурации disableSkillShellExecution: true запретит выполнение любых shell-команд из файлов настроек, заменяя их предупреждением [shell command execution disabled by policy]. Это полезно в корпоративных репозиториях для предотвращения запуска вредоносных скриптов из общих файлов настроек проекта.

Совет по автодополнению: добавьте в frontmatter строку argument-hint (например, argument-hint: [номер-задачи]), чтобы при вводе команды в терминале отображалась подсказка о том, какие параметры она ожидает. Это облегчает работу при наличии большого количества команд.

💡 Резюме в одной фразе: Синтаксис !`команда` позволяет подставить вывод системных команд (например, git diff) прямо в текст промпта перед его отправкой. Восклицательный знак должен быть в начале строки, а для безопасности в командах проектов эту функцию можно заблокировать параметром disableSkillShellExecution.


06 Пространства имен: почему команды плагинов не конфликтуют с вашими

Когда вы начнете активно создавать свои команды и устанавливать плагины (каждый из которых приносит свои наборы команд), возникнет логичный вопрос: что делать при совпадении имен? Если вы создали команду /review и в установленном плагине тоже есть /review, какая из них выполнится?

Давайте разберем правила разрешения конфликтов в зависимости от источника команд.

Конфликты между вашими собственными файлами: приоритет Skill

Если вы создали файл команды .claude/commands/deploy.md и одновременно папку Skill .claude/skills/deploy/SKILL.md с одинаковым именем — действует приоритет:

Если skill и команда имеют одинаковое имя, приоритет отдается skill.

При вызове /deploy выполнится логика, описанная в Skill. Просто помните правило «Skill побеждает» и старайтесь избегать одинаковых имен без необходимости.

Команды плагинов: изоляция через пространства имен (namespaces)

Для команд из плагинов конфликты исключены на системном уровне — они используют разные пространства имен.

Команды плагинов используют формат имя-плагина:имя-команды, поэтому они принципиально не могут конфликтовать с командами других уровней.

Аналогия: фамилии людей с одинаковыми именами. Если в коллективе два Александра, их различают по фамилиям: «Александр Иванов» и «Александр Петров». Пространства имен работают так же: команда review из плагина my-plugin для вас будет доступна как /my-plugin:review. Часть перед двоеточием — это уникальный идентификатор плагина. Даже если у вас есть своя команда /review, они будут мирно сосуществовать.

При установке нескольких плагинов с одинаковыми командами они будут доступны как /plugin-a:review и /plugin-b:review соответственно.

Аналогично устроены и команды от MCP-серверов. Они динамически регистрируются в системе и доступны по шаблону /mcp__<имя-сервера>__<имя-команды> (например, /mcp__github__create-issue). Подробнее об этом в статье 22.

💡 Резюме в одной фразе: При совпадении имен ваших файлов Skill имеет приоритет над command. Команды плагинов защищены от конфликтов пространством имен вида имя-плагина:имя-команды, а команды MCP-серверов используют префикс /mcp__.


07 Взаимосвязь между слеш-командами и Skill

У вас мог возникнуть вопрос: слеш-команды и Skill выглядят очень похоже. В чем разница между созданием markdown-файла в .claude/commands/ и написанием SKILL.md в папке .claude/skills/?

Это отличный вопрос, в котором легко запутаться. Ответ прост:

Понятие пользовательских команд теперь полностью интегрировано в систему Skill. Ваши файлы в папке .claude/commands/ продолжают работать, но Skill — это их расширенная версия. Skill поддерживает附属 (сопутствующие) файлы, может вызываться моделью автоматически, а его документация загружается в контекст по мере необходимости, не перегружая память на старте.

Официальная документация подтверждает это:

Пользовательские команды объединены со skills. Файл .claude/commands/deploy.md и skill в папке .claude/skills/deploy/SKILL.md создадут команду /deploy и будут работать абсолютно одинаково.

Таким образом, это не разные сущности, а разные форматы записи одной и той же возможности. «Слеш-команда» — это способ вызова (вы вводите / для запуска), а Skill — это структура, которая описывает выполняемое действие. Мы разбирали это в статье 26. Вот таблица, которая поможет выбрать подходящий формат:

ЗадачаПростая команда (.claude/commands/xx.md)Полноценный Skill (.claude/skills/xx/SKILL.md)
Простой промпт для запуска вручную✅ Да, это самый быстрый способМожно, но избыточно
Использование шаблонов, скриптов, примеров файлов❌ Не поддерживается✅ Поддерживается (это папка, куда можно положить любые файлы)
Автоматический запуск силами Claude при необходимостиВозможно при наличии description, но функционал ограничен✅ Основной сценарий использования
Использование больших справочных материалов без перегрузки контекста❌ Невозможно✅ Поддерживает вложенные справочники с ленивой загрузкой

Простое правило: если вам нужно просто сохранить частый промпт для ручного вызова (как наш /review), создайте обычный markdown-файл в папке .claude/commands/. Если же вам нужны сопутствующие скрипты, шаблоны документов или вы хотите, чтобы Claude сам решал, когда применить это знание — оформляйте это как Skill (подробнее в статьях 26 и 27, для автоматизации создания используйте skill-creator из статьи 28).

Создание простой слеш-команды — это самый легкий способ познакомиться с возможностями автоматизации. Вы можете начать с простых файлов команд, а при необходимости легко перенести их в формат Skill — старые файлы продолжат работать без проблем.

💡 Резюме в одной фразе: Создание слеш-команды — это упрощенный вариант создания Skill. Для простых текстовых промптов ручного вызова достаточно файла в .claude/commands/. Для сложных сценариев со вспомогательными файлами и автозапуском лучше создавать полноценный Skill. Способ вызова через / у них одинаковый.


08 Практика: создаем команду /explain с параметрами за 5 минут

Давайте закрепим теорию на практике и создадим полезную команду /explain, которая будет объяснять код или ошибки простым языком. Для этого нам понадобится только терминал и текстовый редактор.

Шаг 1: Создаем папку для команд

В директории вашего тестового проекта создайте структуру папок .claude/commands/ (для macOS / Linux):

bash
mkdir -p .claude/commands

Для Windows: создайте папки .claude и commands внутри неё через Проводник в корневой директории проекта.

Ожидаемый результат: в корне проекта появилась папка .claude/commands/.

Шаг 2: Создаем файл команды

Создайте файл .claude/commands/explain.md со следующим содержимым:

markdown
---
description: Объясняет код или системную ошибку простым языком. Используется при запросе пользователя объяснить фрагмент кода или лог ошибки.
---

Пожалуйста, объясни простыми словами для новичка следующий фрагмент или ошибку:

$ARGUMENTS

Требования к ответу:
1. Сначала кратко опиши суть (что это делает или что произошло).
2. Разбери код построчно или ошибку по частям.
3. Если это ошибка, укажи наиболее вероятную причину и способ исправления.
4. Избегай сложных терминов, приводи простые аналогии из жизни.

Обратите внимание: блок frontmatter содержит description для подсказок, а переменная $ARGUMENTS примет в себя переданный вами текст.

Ожидаемый результат: в папке .claude/commands/ создан файл explain.md.

Шаг 3: Запускаем Claude и проверяем команду

Запустите сессию:

bash
claude

После запуска введите символ / в поле ввода (не нажимая Enter) для вызова меню:

Ожидаемый результат: в списке команд появилась /explain с вашим описанием. Это означает, что программа успешно нашла и загрузила файл. Если команды нет, проверьте правильность пути: .claude/commands/explain.md.

Шаг 4: Вызываем команду с параметром

Попробуем применить команду для объяснения строки кода:

text
/explain print(sum([1,2,3]) / len([1,2,3]))

Ожидаемый результат: Claude получит полный текст инструкции, где вместо $ARGUMENTS подставится ваша строка кода. Ответ будет построен по вашим правилам: краткое описание (вычисление среднего арифметического), построчный разбор и простые аналогии. Вы ввели короткую команду, а сработал сложный структурированный промпт.

Шаг 5: Передаем другой параметр

Используем ту же команду для объяснения ошибки:

text
/explain ZeroDivisionError: division by zero

Ожидаемый результат: команда выполнится с новым аргументом. Claude сфокусируется на пункте 3 инструкции: объяснит причину ошибки (деление на ноль) и как её исправить. Один шаблон — гибкая работа с разными входными данными.

Пройдя эти шаги, вы освоили три кита создания команд: создание файла в специальной папке, описание в frontmatter и работу с переменной $ARGUMENTS. Создание других команд строится по тем же принципам.

💡 Резюме в одной фразе: Создание команды состоит из трех шагов: создать файл в .claude/commands/ (имя файла = имя команды), добавить description в frontmatter и вставить переменную $ARGUMENTS для параметров. Проверьте появление команды в меню по вводу / и протестируйте с разными параметрами.


09 Заключение

Мы подробно разобрали слеш-команды в Claude Code — от управления встроенными функциями до автоматизации рутинных промптов с помощью собственных команд.

Давайте обобщим ключевые моменты:

ВопросОтветГлавная деталь
Что такое слеш-командыИнструкции управления Claude CodeУправляют самой программой. Должны стоять в самом начале сообщения
Как ориентироваться во встроенных командахИспользовать группировку по этапам работыНачало работы, процесс разработки, проверка кода, сервисные команды. Меню вызывается вводом /
Как создать свою командуСоздать markdown-файл в папке .claude/commands/Имя файла определяет имя команды. Бывают проектные и глобальные команды
Как передавать параметрыЧерез $ARGUMENTS или позиционные переменные $0, $1Ввод подставляется в шаблон. Аргументы с пробелами берутся в кавычки
Как добавить данные окруженияС помощью синтаксиса !`команда`Вывод системной команды подставляется в промпт до отправки модели
Как настроить поведение командыИспользовать свойства frontmatterdescription описывает команду, disable-model-invocation: true запрещает автозапуск
Как избежать конфликтов именИспользовать встроенные правила приоритетовSkill приоритетнее command. Плагины используют пространства имен
Как это связано со SkillКоманда — легкий вариант SkillИспользуют один синтаксис вызова через /. При усложнении команду можно переписать в Skill

Теперь вы можете пользоваться всеми преимуществами панели управления Claude Code: переключать настройки в процессе работы, быстро сжимать или очищать контекст, а также упаковывать частые промпты в удобные команды с поддержкой параметров и системных данных. Вы больше не будете тратить время на рутинные действия и перезапуски сессий.


В следующей статье 37 «Чекпоинты (Checkpoints)» мы подробно разберем команду /rewind, которую упоминали вскользь. Если в процессе работы код сломался или диалог ушел не туда — вам не придется откатывать изменения вручную через git. Мы научимся пользоваться встроенной системой чекпоинтов Claude Code для быстрого возврата к стабильному состоянию, как при загрузке сохранения в игре. Это даст вам гораздо больше уверенности при экспериментах с кодом.


Рекомендуемое чтение