Каталог плагинов для Claude Code. Доступные плагины:
-
andrej-karpathy-skills — поведенческие принципы Андрея Карпатого для уменьшения типичных ошибок LLM при написании кода (внешний плагин, автор: forrestchang).
-
chat-handoff — переносит контекст текущего диалога в новый чат одним готовым markdown-блоком (миграция сессии, не суммаризация).
-
dev-toolkit — инструменты повседневной разработки на PHP/Go/JS:
- Slash-команды:
/dev-toolkit:review,/dev-toolkit:review-last,/dev-toolkit:pr,/dev-toolkit:cppr— code review и подготовка PR - Skills:
statusline-setup— настройка строки статуса Claude Code;optimize-project-docs— оптимизация и реконсиляцияCLAUDE.md/README/ памяти проекта - Хук защиты: блокирует деструктивные Bash-команды (
rm -rf,git reset --hard,git push --force,git branch -D, чтение.env) и случайную передачу секретов/токенов - Хук уведомлений: звуковой сигнал, когда Claude ждёт ответа или завершил работу
- Slash-команды:
Выполни в Claude Code:
/plugin marketplace add https://github.com/Leonid74/ai-skills
/plugin install chat-handoff@leonid74-ai-skills
/plugin install dev-toolkit@leonid74-ai-skills
/plugin install andrej-karpathy-skills@leonid74-ai-skillsИли, после подключения маркетплейса, выбери плагины интерактивно:
/pluginsСрабатывает по описанию — направляет работу Claude согласно принципам Андрея Карпатого: думать перед кодированием, минимальные изменения, простота, чёткие критерии успеха.
Срабатывает по описанию — достаточно написать в чате: «сделай хэндоф», «перенос в новый чат», «мигрируй сессию».
| Команда | Что делает |
|---|---|
/dev-toolkit:review |
Code review изменённых файлов (git diff) |
/dev-toolkit:review-last |
Code review последнего коммита |
/dev-toolkit:pr |
Подготовка Pull Request |
/dev-toolkit:cppr |
Коммит, пуш и создание PR одной командой |
Настройка строки статуса Claude Code (модель, git-ветка, папка).
Срабатывает автоматически по описанию — достаточно написать в чате:
«настрой statusline», «setup statusline», «установи statusline». Skill
проверяет текущий ~/.claude/settings.json и, если statusLine не настроен,
создаёт ~/.claude/statusline.sh и прописывает конфигурацию.
Оптимизация и реконсиляция проектной документации: сжать раздутый CLAUDE.md,
почистить память проекта Claude Code (MEMORY.md + каталог memory/) и
синхронизировать факты между CLAUDE.md, README и памятью — без потери
обоснований «почему». Это оптимизация существующих доков, не написание новых.
Срабатывает автоматически по описанию — достаточно написать в чате: «оптимизируй
CLAUDE.md», «почисти память проекта», «полная реконсиляция документации»,
«optimize project docs». Skill режет только устаревшее / дубли / противоречия /
воду, сохраняя иерархию детализации (память подробнее CLAUDE.md подробнее
README), измеряет объём ДО/ПОСЛЕ и передаёт коммит в /dev-toolkit:cppr.
PreToolUse на Bash — срабатывает автоматически на каждой Bash-команде,
блокирует с кодом 2 и возвращает модели понятное сообщение, почему отказано:
| Правило | Что ловит |
|---|---|
| Секреты | команда содержит secret / password / token |
rm -rf |
рекурсивное/принудительное удаление (rm -rf, rm -r … -f); исключение: /tmp и его содержимое разрешены |
git reset --hard |
потеря незакоммиченных изменений |
git push --force |
перезапись истории на remote (--force, -f, --force-with-lease) |
git branch -D |
принудительное удаление ветки (безопасный -d пропускается) |
Чтение .env |
cat/less/head/tail/bat… по .env-файлам |
Особенности:
- Секреты проверяются первыми и блокируются без эхо команды — текст команды
(например
export TOKEN=…) не возвращается модели и не попадает в логи. Для остальных правил команда показывается (она безопасна и полезна для диагностики). - Defense in depth. Хук дополняет
permissions.denyвsettings.json: даёт явную причину блокировки и ловит то, что permissions не покрывают (например чтение.envразными утилитами). - Посмотреть/отключить хук — меню
/hooks.
Notification + Stop — воспроизводят сигнал, когда Claude ждёт твоего
ответа/разрешения и когда завершил работу:
| Событие | Когда срабатывает | Звук |
|---|---|---|
Notification |
Claude ждёт ответа или разрешения | message (1 гудок fallback) |
Stop |
Claude закончил работу | complete (2 гудка fallback) |
Особенности:
- Универсальный подбор бэкенда. Скрипт
notify-sound.shперебирает плееры (pw-play→paplay→ffplay→play→aplay→canberra-gtk-play) и системные звуки (/usr/share/sounds/freedesktop/…). Если плеера нет (например чистая tmux/SSH-сессия) — падает на terminal bell (\a): разное число гудков для двух событий. - Никогда не блокирует Claude — хук всегда завершается кодом 0.
- Посмотреть/отключить — меню
/hooks.
Куда уйдёт звук при работе через SSH
Хук исполняется на той машине, где запущен Claude Code. Если ты подключаешься с ноутбука по ssh/tmux к серверу, важно, какой из двух механизмов сработает:
- Terminal bell (
\a) — дойдёт до ноутбука. Звонок — это байт0x07в потоке вывода терминала. Он едет по тому же каналу, что и весь текст: хук на сервере → tmux (приbell-action anyпробрасывает звонок клиенту) → SSH → твой локальный эмулятор терминала пикает. Звук издаёт локальный терминал на ноутбуке, поэтому ты его слышишь. - Системные мелодии через плеер (
paplayи т.п.) — останутся на сервере. Плеер рендерит звук в звуковую карту той машины, где исполняется хук. SSH по умолчанию аудио не пробрасывает (в отличие от текстового потока и опционального X11), а на сервере звуковой карты обычно и нет. Чтобы мелодия с сервера зазвучала на ноутбуке, понадобилась бы сетевая переадресация PulseAudio/PipeWire — отдельная нетривиальная настройка.
Вывод: при работе по ssh/tmux выбирай Вариант A (terminal bell) — только он реально доходит до ноутбука. Вариант B (плеер) имеет смысл, когда Claude Code запускается прямо на ноутбуке в десктоп-сессии.
Вариант A. Только terminal bell (без установки пакетов)
Подходит, когда работаешь в терминале/tmux/SSH и не хочешь ставить плеер.
По умолчанию tmux перехватывает символ звонка (\a) и не пробрасывает его
в эмулятор терминала — чтобы гудок было слышно, добавь в ~/.tmux.conf:
# Пробрасывать звонок (bell) во все окна и в эмулятор терминала
set -g bell-action any
set -g visual-bell offПрименить без перезапуска tmux:
tmux source-file ~/.tmux.confЗатем включи audible bell в самом эмуляторе терминала (GNOME Terminal: Preferences → Profile → Terminal bell; Konsole, xterm и др. — аналогично). Без поддержки звонка на стороне эмулятора гудка не будет — это ограничение терминала, а не хука.
Вариант B. Системные мелодии (через плеер)
Даёт нормальный звук вместо гудка — отдельные мелодии для «жду ответа» и «готово». Поставь плеер и тему звуков:
# Debian/Ubuntu
sudo apt install pulseaudio-utils sound-theme-freedesktop
# Fedora
sudo dnf install pulseaudio-utils sound-theme-freedesktop
# Arch
sudo pacman -S libpulse sound-theme-freedesktoppulseaudio-utils даёт paplay, sound-theme-freedesktop — файлы
/usr/share/sounds/freedesktop/stereo/{message,complete}.oga. Скрипт
подхватит их автоматически, правок не требуется. Проверить вручную:
paplay /usr/share/sounds/freedesktop/stereo/complete.ogaПомни про SSH-нюанс выше: мелодии плеера звучат на машине, где запущен Claude Code, и для них нужен работающий звуковой сервер (PipeWire/PulseAudio) и аудиоустройство. Для звука именно на ноутбуке через ssh/tmux используй Вариант A.
Если в настройках маркетплейса (меню
/plugin) не включено автообновление этих плагинов, обновляй их вручную командами ниже. При включённом автообновлении свежие версии подтягиваются сами, и эти шаги не нужны.
Сначала обнови каталог маркетплейса, затем нужные плагины. Скиллы (statusline-setup, optimize-project-docs, chat-handoff) обновляются вместе со своим плагином — отдельной команды для них нет.
/plugin marketplace update leonid74-ai-skills
/plugin update chat-handoff@leonid74-ai-skills
/plugin update dev-toolkit@leonid74-ai-skills
/plugin update andrej-karpathy-skills@leonid74-ai-skillsОбновление плагинов происходит только при изменении поля version в plugin.json.
Следи за релизами: https://github.com/Leonid74/ai-skills
ai-skills/
├── .claude-plugin/
│ └── marketplace.json ← каталог маркетплейса (главный файл)
└── plugins/
├── chat-handoff/
│ ├── .claude-plugin/plugin.json
│ └── skills/chat-handoff/SKILL.md
└── dev-toolkit/
├── .claude-plugin/plugin.json
├── commands/ ← /dev-toolkit:pr, /dev-toolkit:cppr, /dev-toolkit:review, /dev-toolkit:review-last
│ ├── pr.md
│ ├── cppr.md
│ ├── review.md
│ └── review-last.md
├── skills/ ← statusline-setup, optimize-project-docs
│ ├── statusline-setup/SKILL.md
│ └── optimize-project-docs/SKILL.md
└── hooks/
├── hooks.json ← регистрация хуков (PreToolUse, Notification, Stop)
├── guard-bash.sh ← PreToolUse: деструктивные команды + секреты
└── notify-sound.sh ← Notification/Stop: звуковое уведомление
Плагин
andrej-karpathy-skillsподключён как внешний GitHub source (multica-ai/andrej-karpathy-skills) и не хранится локально в репозитории.
claude plugin validate ./ai-skills # marketplace.json
claude plugin validate ./ai-skills/plugins/chat-handoff # plugin.json + SKILL.md
claude plugin validate ./ai-skills/plugins/dev-toolkit # plugin.json + команды + hooks.jsonСкилл chat-handoff включён как vendor-копия из Leonid74/ai-skill-chat-handoff. При выходе новой версии синхронизируй вручную — скачай свежий SKILL.md напрямую из upstream:
curl -fsSL https://raw.githubusercontent.com/Leonid74/ai-skill-chat-handoff/main/SKILL.md \
-o plugins/chat-handoff/skills/chat-handoff/SKILL.mdЕсли в upstream поднялась версия (frontmatter version: в SKILL.md), синхронно подними version в plugins/chat-handoff/.claude-plugin/plugin.json — иначе пользователи не получат обновление. После — закоммить и запушь.