385 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Claude Code — Инструкция по настройке
#ai_tools #claude #cli #productivity
---
## 🧠 Что такое Claude Code
CLI-инструмент от Anthropic для работы с кодом и задачами прямо в терминале. Читает контекст проекта, управляет файлами, запускает команды, работает с git. Ключевое отличие от веб-интерфейса — глубокая интеграция с файловой системой и инструментами разработки.
---
## 📁 Конфигурационные файлы
### CLAUDE.md — главный файл инструкций
Claude читает `CLAUDE.md` при каждом запуске и следует инструкциям как жёстким правилам.
| Путь | Область действия |
|------|-----------------|
| `~/.claude/CLAUDE.md` | Глобально — все проекты |
| `<project>/CLAUDE.md` | Только этот проект |
| `<subdir>/CLAUDE.md` | Только при работе в этой директории |
**Что писать в CLAUDE.md:**
- Структура проекта и соглашения
- Стиль коммитов и ветвления
- Какие команды запускать для тестов/сборки
- Какие файлы трогать нельзя
- Как форматировать код
- Архитектурные решения и их причины
```markdown
# CLAUDE.md пример
## Коммиты
- Язык: русский
- Стайл: краткий императив
## Запуск тестов
npm test -- --watch=false
## Нельзя трогать
- src/legacy/** (старый код, не рефакторить)
```
### GEMINI.md
Аналог `CLAUDE.md` для Google Gemini CLI. Та же идея — инструкции для AI при работе с проектом. Если используешь оба инструмента — можно держать оба файла с одинаковым содержимым.
### .claude/ директория
```
.claude/
├── settings.json ← настройки проекта (permissions, env)
├── settings.local.json ← локальные настройки (не коммитить)
├── commands/ ← кастомные slash-команды
├── skills/ ← кастомные skills
└── plugins/ ← плагины
```
### ~/.claude/ глобальная директория
```
~/.claude/
├── CLAUDE.md ← глобальные инструкции
├── settings.json ← глобальные настройки
├── keybindings.json ← кастомные горячие клавиши
├── commands/ ← глобальные команды
└── plugins/ ← глобальные плагины
```
---
## ⚙️ settings.json — настройки разрешений
```json
{
"permissions": {
"allow": [
"Bash(git *)",
"Bash(npm run *)",
"Read(**)",
"Edit(**)"
],
"deny": [
"Bash(rm -rf *)"
]
},
"env": {
"NODE_ENV": "development"
}
}
```
Режимы разрешений при запуске:
- `--dangerously-skip-permissions` — автоподтверждение всего (для CI/автоматизации)
- `--allowedTools "Bash,Read,Edit"` — разрешить только конкретные инструменты
- По умолчанию — Claude спрашивает подтверждение на опасные операции
---
## 🔌 Plugins
Плагины расширяют Claude Code компонентами: командами, агентами, хуками, skills, MCP-серверами.
### Структура плагина
```
my-plugin/
├── plugin.json ← манифест
├── commands/ ← slash-команды
├── agents/ ← субагенты
├── skills/ ← skills
└── hooks/ ← хуки
```
### plugin.json
```json
{
"name": "my-plugin",
"version": "1.0.0",
"description": "Описание плагина",
"commands": ["commands/*.md"],
"agents": ["agents/*.md"],
"skills": ["skills/*.md"],
"hooks": ["hooks/*.json"]
}
```
---
## 🤖 Agents (субагенты)
Субагенты — специализированные агенты для конкретных задач. Claude запускает их автоматически или по явному вызову.
### Встроенные типы агентов
- `general-purpose` — исследование, поиск, многошаговые задачи
- `Explore` — быстрый анализ кодовой базы
- `Plan` — проектирование архитектуры и планов реализации
- `claude-code-guide` — вопросы о самом Claude Code
### Кастомный агент (файл .md)
```markdown
---
name: code-reviewer
description: Ревью кода на качество и безопасность. TRIGGER when user asks to review code.
tools: Read, Grep, Glob
color: blue
---
Ты — строгий code reviewer. Проверяй:
- Безопасность (инъекции, XSS, утечки)
- Производительность (O(n²), лишние запросы)
- Читаемость и соответствие проектным соглашениям
```
### Когда использовать агентов
- Параллельные независимые задачи
- Изоляция контекста (чтобы не замусорить основной)
- Специализированная экспертиза
---
## 🛠️ MCP серверы (Model Context Protocol)
MCP — протокол подключения внешних инструментов к Claude. Позволяет Claude работать с браузером, базами данных, внешними API.
### Добавить MCP сервер
```bash
claude mcp add <name> <command> [args]
claude mcp add playwright npx @playwright/mcp
claude mcp add filesystem npx @modelcontextprotocol/server-filesystem /path
```
### .mcp.json в проекте
```json
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp"]
},
"postgres": {
"command": "npx",
"args": ["@modelcontextprotocol/server-postgres", "postgres://localhost/mydb"]
}
}
}
```
### Популярные MCP серверы
| Сервер | Что даёт |
|--------|----------|
| `@playwright/mcp` | Управление браузером, скриншоты, автоматизация |
| `@modelcontextprotocol/server-filesystem` | Расширенный доступ к файлам |
| `@modelcontextprotocol/server-postgres` | Работа с PostgreSQL |
| `@modelcontextprotocol/server-github` | GitHub API |
| `@modelcontextprotocol/server-slack` | Slack API |
| `context7` | Актуальная документация библиотек |
---
## ⚡ Skills (навыки)
Skills — переиспользуемые промпты с контекстом. Вызываются как `/skill-name`.
### Структура skill
```markdown
---
name: commit
description: Create a conventional commit message. Use when user wants to commit.
---
Проанализируй git diff и создай коммит сообщение по формату:
<type>(<scope>): <description>
Типы: feat, fix, docs, refactor, test, chore
```
### Размещение
- Проектные: `.claude/skills/<name>.md`
- Глобальные: `~/.claude/skills/<name>.md`
- В плагине: `<plugin>/skills/<name>/SKILL.md`
---
## 🪝 Hooks (хуки)
Хуки выполняют shell-команды в ответ на события Claude Code.
### События
| Событие | Когда срабатывает |
|---------|------------------|
| `PreToolUse` | Перед вызовом инструмента |
| `PostToolUse` | После вызова инструмента |
| `SessionStart` | При запуске сессии |
| `SessionEnd` | При завершении сессии |
| `UserPromptSubmit` | При отправке сообщения |
| `Stop` | Когда Claude завершил ответ |
### Пример хука
```json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [{
"type": "command",
"command": "npm run lint --fix"
}]
}
]
}
}
```
---
## 💬 Slash-команды
Кастомные команды, вызываемые через `/command-name`.
### Создание команды
Файл `.claude/commands/review-pr.md`:
```markdown
---
name: review-pr
description: Review a pull request
argument-hint: PR number
---
Просмотри PR #$ARGUMENTS:
1. `gh pr view $ARGUMENTS`
2. `gh pr diff $ARGUMENTS`
Дай оценку качества кода и укажи проблемы.
```
### Встроенные команды
- `/help` — справка
- `/clear` — очистить контекст
- `/compact` — сжать историю
- `/cost` — стоимость сессии
- `/doctor` — диагностика установки
- `/model` — сменить модель
- `/memory` — управление памятью
---
## 🧠 Память (Memory)
Claude может сохранять информацию между сессиями через файловую память.
### Типы памяти
| Тип | Что хранить |
|-----|-------------|
| `user` | Роль, предпочтения, уровень знаний |
| `feedback` | Исправления и корректировки поведения |
| `project` | Контекст работы, цели, дедлайны |
| `reference` | Ссылки на внешние ресурсы |
Память хранится в `~/.claude/projects/<project>/memory/*.md`
---
## 🚀 Оптимальная настройка под задачи
### Для разработки (backend/frontend)
**CLAUDE.md:**
```markdown
## Stack
Node.js + TypeScript + PostgreSQL
## Тесты
npm test -- --runInBand
## Линтинг
Всегда запускай eslint после изменений в src/
## Нельзя
- Прямые запросы к БД вне репозиториев
- console.log в production коде
```
**MCP:** `filesystem`, `postgres`
**Hooks:** PostToolUse → eslint/prettier
### Для работы с документацией/заметками
**CLAUDE.md:** структура vault, шаблоны, правила оформления
**Skills:** шаблонные команды добавления записей
**Memory:** предпочтения форматирования
### Для code review
**Agent:** специализированный reviewer агент
**MCP:** `github` для работы с PR
**Skill:** `/review-pr`
---
## 🔑 Горячие клавиши
| Комбинация | Действие |
|------------|----------|
| `Ctrl+C` | Прервать текущий ответ |
| `Ctrl+R` | История команд |
| `↑/↓` | Навигация по истории |
| `Shift+Tab` | Переключить режим авто-принятия |
Кастомизация в `~/.claude/keybindings.json`.
---
## 📋 Чеклист первой настройки
- [ ] Создать `~/.claude/CLAUDE.md` с глобальными предпочтениями
- [ ] В каждом проекте создать `CLAUDE.md` со структурой и правилами
- [ ] Настроить нужные MCP серверы (`.mcp.json`)
- [ ] Добавить часто используемые Skills
- [ ] Настроить хуки для автоматического линтинга/форматирования
- [ ] Задать permissions в `settings.json`
- [ ] Создать кастомные команды для повторяющихся задач
---
## 🔗 Ссылки
- [[Gemini CLI]] — аналог от Google
- [[Codex CLI]] — аналог от OpenAI