раздел 03 · подстраница 4
Как подсовывать файлы и скриншоты
Claude Code не видит весь ваш проект целиком - это было бы и невозможно (контекст ограничен), и опасно (там могут быть секреты). Вы сами решаете, что показать модели. Главных способов четыре.
Зачем это
90% качества ответа Claude зависит от качества контекста. Если показали не тот файл - получите неправильный ответ. Если показали полрепозитория - получите дорогой и медленный ответ. Эта глава - о том, как давать ровно то, что нужно.
@-упоминания
Самый частый способ. В поле ввода нажимаете @ - открывается fuzzy-поиск по файлам и папкам проекта:
> объясни логику в @src/auth/login.py
> сравни @api/v1/users.py и @api/v2/users.py
> прочитай @docs/architecture.md и предложи улучшения
Что внутри:
@file.py- один файл целиком.@src/components/- вся папка рекурсивно (Claude прочитает все файлы внутри).@**/*.test.ts- glob-паттерн (читать с осторожностью, может быть много).
Claude вставит содержимое в контекст модели. Это не магия - это явный Read под капотом. Можно проверить через /help или включив --verbose.
Drag&Drop изображений
Прямо в окно терминала перетаскиваете PNG/JPG - Claude получит картинку как input. Работает в большинстве терминалов (iTerm2, Terminal.app на macOS, Windows Terminal). На Linux зависит от эмулятора.
Что внутри:
> [drag screenshot.png into terminal]
> почему этот компонент ломается на мобилке?
Claude увидит скриншот и сможет рассуждать о вёрстке, ошибке в UI, дизайне макета. Часто быстрее, чем описывать словами - "смотри, тут отступ слева 12px, должен быть 16px, и иконка съехала".
Что можно показывать:
- Скриншоты экранов с багами в UI.
- Дизайны из Figma (экспортированные PNG).
- Графики, схемы архитектуры.
- Фото листочка с рукописными набросками.
Альтернатива drag&drop - через буфер обмена (CMD+V на macOS) или явный путь:
> посмотри на @screenshots/bug.png и предложи фикс
Что Claude видит автоматически
Без явного @ Claude знает только три вещи:
- CLAUDE.md в корне проекта и в
~/.claude/CLAUDE.md(глобальный). Эти файлы Claude перечитывает при каждом старте сессии. Поэтому туда стоит класть правила проекта, конвенции, стек. - Системные инструкции Anthropic - сам он их вам не покажет, но они задают базовое поведение.
- В IDE-режиме - текущий открытый файл и текущее выделение (см. главу про IDE-расширение).
Всё остальное надо подсовывать руками.
Что Claude не видит, пока вы не попросите
- Файлы за пределами текущей рабочей папки. Если ваш
claudeзапущен из~/projects/app, он не увидит~/Documents/notes.txt. .gitignore-файлы (.env,node_modules,dist). По умолчанию Claude их не читает - это сделано осознанно.- Скрытые файлы (
.config,.ssh) - тоже игнор по умолчанию. - Историю git, базу данных, любые внешние API - всё это только через
Bash-tool с явным запросом.
Если вам нужно показать .env - явно скажите @.env, и Claude спросит подтверждение на чтение.
Команда явного чтения
Иногда удобнее не через @, а через прямую инструкцию:
> прочитай файл src/billing.py и объясни функцию calculate_tax
> покажи последние 50 строк logs/app.log
> сделай grep "TODO" по всему src/ и собери в TODO.md
Это вызовет инструменты Read, Bash(tail), Grep - функционально то же, что @, просто декларативнее.
Большие файлы
Если файл огромный (10к+ строк), Claude не прочитает его целиком - попадёт в лимит. Лучше:
- Указать диапазон строк: "прочитай строки 1200-1400 в @src/legacy.py".
- Сначала
grepнужный кусок, потом читать. - Разбить файл на части, если это вообще возможно.
Антипаттерны
- Тыкать
@на огромные папки типа@node_modules/или@.next/. Это съест контекст и денег. - Описывать содержимое файла словами вместо
@file. Скопируй-вставь руками - почти всегда хуже, чем@. - Скриншотить код вместо того, чтобы дать файл. Claude видит код в файле точнее, чем в картинке.
- Забывать про CLAUDE.md. Это бесплатный канал постоянного контекста - используйте его.
Полезные ссылки
- File references - официальная справка по @
- Image inputs - что Claude умеет с картинками
- CLAUDE.md guide - как настроить постоянный контекст