раздел 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 знает только три вещи:

  1. CLAUDE.md в корне проекта и в ~/.claude/CLAUDE.md (глобальный). Эти файлы Claude перечитывает при каждом старте сессии. Поэтому туда стоит класть правила проекта, конвенции, стек.
  2. Системные инструкции Anthropic - сам он их вам не покажет, но они задают базовое поведение.
  3. В 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 - как настроить постоянный контекст