Слеш-команды (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 со следующим содержимым:
Проверь мои текущие неотправленные изменения (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. Всё, что вы введете после имени команды, подставится вместо этой переменной. Пример из документации наглядно показывает этот принцип:
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 123Claude получит промпт «Fix GitHub issue 123 following our coding standards...»
То есть значение 123 подставится на место $ARGUMENTS. Один шаблон — разные параметры. Это делает команды по-настоящему полезными.
Полезная деталь: если вы передали аргументы при вызове команды, но в её шаблоне нет переменной
$ARGUMENTS, программа автоматически допишет строкуARGUMENTS: <ваш ввод>в конец отправляемого промпта. Таким образом, аргументы не потеряются и будут переданы модели.
Использование позиционных аргументов: $0, $1 и т.д.
Что делать, если нужно передать несколько разных параметров? Например: «перенести компонент SearchBar из React в Vue». Здесь у нас три разных значения. Вы можете использовать позиционные переменные вида $ARGUMENTS[N] или их сокращенную версию $N (индексация начинается с 0):
Migrate the $0 component from $1 to $2.
Preserve all existing behavior and tests.При вызове /migrate-component SearchBar React Vue переменная $0 примет значение SearchBar, $1 — React, а $2 — Vue. Важный момент: позиционные аргументы разбираются в стиле shell-команд, поэтому значения, содержащие пробелы, нужно брать в кавычки, иначе они разобьются на отдельные аргументы. Например, при вызове /my-cmd "hello world" second значение $0 будет равно hello world, а без кавычек $0 станет просто hello. (Переменная $ARGUMENTS этому правилу не подчиняется — она всегда передает всю строку ввода целиком без изменений.)
Управление поведением команды через frontmatter
Передачи аргументов может быть недостаточно. Некоторые команды (например, /deploy или /commit) выполняют действия с побочными эффектами — вы вряд ли хотите, чтобы Claude автоматически отправлял код на сервер сразу после написания. Для контроля таких ситуаций используется блок frontmatter.
Frontmatter — это блок настроек в формате YAML, расположенный в самом начале файла между строками --- (мы видели это при разборе SKILL.md в статье 26). Вот два ключевых параметра для файлов команд:
---
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 напишем:
## Текущие изменения в коде
!`git diff HEAD`
## Инструкция
Проанализируй представленные изменения выше. Обрати внимание на обработку ошибок, хардкод параметров и покрытие тестами. Выведи результат списком на русском языке.Что произойдет при вызове этой команды? Программа выполнит следующие шаги:
- Claude Code запустит в системе команду
git diff HEAD. - Весь текстовый вывод этой команды подставится вместо строки
!`git diff HEAD`. - Модель 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):
mkdir -p .claude/commandsДля Windows: создайте папки .claude и commands внутри неё через Проводник в корневой директории проекта.
Ожидаемый результат: в корне проекта появилась папка
.claude/commands/.
Шаг 2: Создаем файл команды
Создайте файл .claude/commands/explain.md со следующим содержимым:
---
description: Объясняет код или системную ошибку простым языком. Используется при запросе пользователя объяснить фрагмент кода или лог ошибки.
---
Пожалуйста, объясни простыми словами для новичка следующий фрагмент или ошибку:
$ARGUMENTS
Требования к ответу:
1. Сначала кратко опиши суть (что это делает или что произошло).
2. Разбери код построчно или ошибку по частям.
3. Если это ошибка, укажи наиболее вероятную причину и способ исправления.
4. Избегай сложных терминов, приводи простые аналогии из жизни.Обратите внимание: блок frontmatter содержит description для подсказок, а переменная $ARGUMENTS примет в себя переданный вами текст.
Ожидаемый результат: в папке
.claude/commands/создан файлexplain.md.
Шаг 3: Запускаем Claude и проверяем команду
Запустите сессию:
claudeПосле запуска введите символ / в поле ввода (не нажимая Enter) для вызова меню:
Ожидаемый результат: в списке команд появилась
/explainс вашим описанием. Это означает, что программа успешно нашла и загрузила файл. Если команды нет, проверьте правильность пути:.claude/commands/explain.md.
Шаг 4: Вызываем команду с параметром
Попробуем применить команду для объяснения строки кода:
/explain print(sum([1,2,3]) / len([1,2,3]))Ожидаемый результат: Claude получит полный текст инструкции, где вместо
$ARGUMENTSподставится ваша строка кода. Ответ будет построен по вашим правилам: краткое описание (вычисление среднего арифметического), построчный разбор и простые аналогии. Вы ввели короткую команду, а сработал сложный структурированный промпт.
Шаг 5: Передаем другой параметр
Используем ту же команду для объяснения ошибки:
/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 | Ввод подставляется в шаблон. Аргументы с пробелами берутся в кавычки |
| Как добавить данные окружения | С помощью синтаксиса !`команда` | Вывод системной команды подставляется в промпт до отправки модели |
| Как настроить поведение команды | Использовать свойства frontmatter | description описывает команду, disable-model-invocation: true запрещает автозапуск |
| Как избежать конфликтов имен | Использовать встроенные правила приоритетов | Skill приоритетнее command. Плагины используют пространства имен |
| Как это связано со Skill | Команда — легкий вариант Skill | Используют один синтаксис вызова через /. При усложнении команду можно переписать в Skill |
Теперь вы можете пользоваться всеми преимуществами панели управления Claude Code: переключать настройки в процессе работы, быстро сжимать или очищать контекст, а также упаковывать частые промпты в удобные команды с поддержкой параметров и системных данных. Вы больше не будете тратить время на рутинные действия и перезапуски сессий.
В следующей статье 37 «Чекпоинты (Checkpoints)» мы подробно разберем команду /rewind, которую упоминали вскользь. Если в процессе работы код сломался или диалог ушел не туда — вам не придется откатывать изменения вручную через git. Мы научимся пользоваться встроенной системой чекпоинтов Claude Code для быстрого возврата к стабильному состоянию, как при загрузке сохранения в игре. Это даст вам гораздо больше уверенности при экспериментах с кодом.