У вас есть проект - сайт, интернет-магазин, CRM-система или внутренний сервис. Кода там уже накопилось на тысячи файлов. Найти конкретную функцию, понять, где используется определённая переменная, или разобраться в связях между модулями - это ад. Вы тратите часы, открывая файлы вручную, а если проект писал не вы - вообще беда. Или у вас в штате нет программиста, а подрядчик уже забыл, что он там накодил.
Хорошая новость: AI-редактор Cursor умеет индексировать весь ваш код и отвечать на вопросы по проекту. Не нужно быть технарём, чтобы этим пользоваться. Достаточно открыть папку с проектом - Cursor сам просканирует код, построит поиск по смыслу, а не по словам, и вы сможете спрашивать: «Где у нас логика отправки заказа?» или «Покажи все места, где используется функция расчёта скидки». Всё это работает без программиста - вы или ваш менеджер можете внедрить за пару часов.
Разберём на примере. Допустим, у вас интернет-магазин на самописном движке. Код лежит в папке shop. Вы хотите добавить новую акцию - скидку 20% на товары из категории «Электроника». Чтобы не сломать ничего, нужно понять, где сейчас обрабатываются скидки, как они применяются к корзине и какие есть проверки. Вместо того чтобы открывать 50 файлов вручную, вы открываете Cursor, пишете @codebase: найди все функции, связанные со скидками и акциями - и получаете список файлов и строк кода. Экономия времени - часы. Это не рекламный кейс, а просто пример, как работает инструмент.
Как Cursor индексирует проект и строит поиск по смыслу
Когда вы открываете папку с проектом в Cursor, он автоматически запускает индексацию. Это как если бы ваш проект прочитали, разобрали на кусочки и разложили по полочкам. Индексация работает в фоне, не мешает вам работать.
Что происходит технически (простыми словами): Cursor сканирует все файлы, пропуская те, что указаны в файле .cursorignore (обычно туда пишут node_modules, папки со сборкой и прочий мусор). Для каждого файла он строит «скелет» - выделяет функции, классы, переменные, импорты. Это позволяет понимать не просто текст, а смысл кода и связи между модулями.
Затем код разбивается на логические куски - чанки. Каждый чанк - это законченный фрагмент, например, тело одной функции или описание конфигурации. Каждый чанк превращается в многомерный вектор - числовое представление смысла. Код с похожей логикой оказывается рядом в этом векторном пространстве. Например, функции «проверка email» и «проверка телефона» будут рядом, хотя слова разные.
Когда вы задаёте вопрос, Cursor превращает ваш запрос в такой же вектор и ищет ближайшие фрагменты кода. Это семантический поиск - он работает на уровне смысла, а не точного совпадения слов. Если вы спросите «найди место, где мы отправляем аналитику», система найдёт вызов API, даже если функция называется trackEvent или logData.
Найденные фрагменты собираются в контекст AI-модели, и она отвечает, опираясь на конкретные части вашего проекта. Индекс обновляется автоматически при сохранении файлов - контекст всегда свежий. Правильная настройка .cursorignore напрямую влияет на скорость и точность: чем меньше мусора, тем быстрее поиск и точнее ответы.
@codebase: задаём вопросы по всему проекту
Функция @codebase - это ваш главный инструмент для поиска по всему проекту. Она позволяет задавать вопросы на естественном языке, и Cursor ищет ответ во всём репозитории.
Как использовать: откройте чат в Cursor (обычно через Ctrl+K или Cmd+K), введите @codebase и задайте вопрос. Например:
- «@codebase: где используется функция my_function?»
- «@codebase: найди все классы, которые наследуются от BaseController»
- «@codebase: покажи все зависимости между модулями»
Это особенно полезно, когда вы не помните, где что лежит, или проект большой и сложный. Cursor сам найдёт все места, где встречается нужный элемент, покажет связи между файлами и даже может предложить рефакторинг.
Для малого бизнеса это означает, что вы можете быстро разобраться в коде, написанном наёмным программистом или подрядчиком, без необходимости читать каждый файл. Хотите проверить, не использует ли где-то код устаревшую библиотеку? Спросите @codebase: найди все импорты библиотеки moment.js - и получите список. Хотите понять, как работает логика отправки email-уведомлений? Спросите @codebase: опиши, как устроена отправка писем - и AI объяснит на основе кода.
@file и @folder: точечный контекст для конкретного места
Глобальный поиск - это круто, но иногда нужно сосредоточиться на одном файле или папке. Например, вы знаете, что проблема в файле utils.js или в папке controllers. Чтобы не перегружать AI лишней информацией, используйте ссылки @file и @folder.
@file - подключает содержимое конкретного файла. Просто введите @ в строке чата, выберите файл из поиска, и Cursor загрузит его текст в контекст. Это полезно, когда нужно переписать сложную функцию, найти ошибку в конкретном компоненте или понять, что делает этот файл. Если вы выделите код в редакторе и нажмёте Cmd+K, контекст будет ограничен выделением, но @file гарантирует, что модель видит файл целиком, что важно для учёта побочных эффектов и глобальных переменных.
@folder - захватывает целую директорию. Укажите папку, и AI увидит все файлы внутри и их взаимные импорты. Это идеально для рефакторинга модуля целиком или для написания тестов на целый блок. Например, если вы хотите переписать логику авторизации, укажите @folder/auth - и модель будет понимать, как связаны файлы внутри этой папки.
Важно: не указывайте корневые папки с тысячами файлов - это быстро исчерпает лимит контекста и замедлит работу. Выбирайте минимально необходимый объём. Комбинируйте ссылки с естественным языком: «Перепиши логику в @folder/controllers на использование async/await» - результат будет точнее, чем общая формулировка.
@docs: подключение документации библиотеки
Функция @docs позволяет подключить внешнюю документацию прямо в контекст. Это критично, когда вы используете новую библиотеку или API, о которых AI может не знать или иметь устаревшие знания. Вместо того чтобы гадать, вы даёте модели «источник истины».
Как использовать: введите @docs в строке чата, затем вставьте URL документации или загрузите локальный файл (PDF, Markdown, текст). Cursor проанализирует содержимое и будет использовать его при ответах.
Пример: вы хотите интегрировать платёжную систему Stripe. Вместо того чтобы читать всю документацию, просто напишите: @docs https://stripe.com/docs/api напиши код для создания платежа. Cursor найдёт нужные эндпоинты и примеры и сгенерирует код под ваш проект.
Или у вас есть внутренний регламент в PDF - загрузите его, и AI сможет отвечать на вопросы по нему. Это устраняет галлюцинации: если метода нет в документации, AI не будет его предлагать.
Для малого бизнеса это значит, что вы можете быстро разобраться с новым инструментом, не тратя дни на изучение документации. Просто дайте ссылку - и AI сделает работу.
@web: поиск в интернете прямо из чата
Функция @web превращает чат Cursor в браузер с AI-аналитикой. Вам не нужно переключаться между редактором и браузером - AI сам найдёт информацию в интернете и применит её к вашему проекту.
Как использовать: введите @web и задайте вопрос. Например:
@web как исправить ошибку [текст ошибки] в React@web найди в документации Tailwind CSS пример конфигурации для кастомных цветов@web обнови этот компонент согласно лучшим практикам React 19
Cursor выполнит поиск, проанализирует несколько источников (StackOverflow, GitHub, блоги) и синтезирует ответ, адаптируя его под ваш проект. Это экономит время - не нужно перелистывать десятки страниц форумов.
Важно: всегда проверяйте ключевые утверждения по предоставленным ссылкам. AI может неверно интерпретировать технические нюансы. Используйте @web как умного ассистента для первичного анализа, но финальный контроль остаётся за вами.
Исключение файлов из индекса: .cursorignore
Файл .cursorignore - это простой текстовый файл, в котором вы перечисляете папки и файлы, которые Cursor должен игнорировать при индексации. Это напрямую влияет на скорость и точность поиска.
Что обычно исключают:
node_modules- папка с зависимостями, их тысячиdist,build,out- папки со скомпилированным кодом.git- системная папка*.log- логи- любые большие файлы, не относящиеся к коду (например, базы данных)
Создайте файл .cursorignore в корне проекта и перечислите шаблоны, по одному на строку. Например:
node_modules
.git
dist
*.log
После этого Cursor будет игнорировать эти папки, что ускорит индексацию и улучшит качество ответов.
Выводы и следующий шаг
Cursor - это не просто редактор, а AI-ассистент, который понимает ваш проект. С помощью индексации и @-ссылок вы можете:
- быстро находить любые функции, классы и переменные
- разбираться в чужом коде без программиста
- подключать документацию и интернет для актуальных ответов
- ускорять разработку и поддержку проекта
Что внедрить прямо сейчас:
- Скачайте Cursor (бесплатная версия есть) и откройте папку с вашим проектом.
- Создайте
.cursorignoreи исключите мусорные папки. - Попробуйте задать вопрос через
@codebase- например, «опиши структуру проекта» или «найди все места, где используется API Яндекс.Карт». - Если используете новую библиотеку, подключите её документацию через
@docs.
Весь процесс займёт не больше 2 часов. Никаких курсов и программистов - только вы и AI.
Частые вопросы
Как Cursor находит нужный код, если проект большой?
Cursor индексирует весь проект в фоне: сканирует файлы, выделяет функции и классы, разбивает код на смысловые фрагменты и превращает их в числовые векторы. Когда вы задаёте вопрос, он ищет ближайшие по смыслу фрагменты, а не просто по точному совпадению слов. Поэтому запрос «найди место, где мы отправляем аналитику» найдёт функцию trackEvent, даже если слова «аналитика» в коде нет.
Зачем нужен файл .cursorignore и что туда писать?
Без него Cursor индексирует весь мусор: папку node_modules с тысячами зависимостей, скомпилированные файлы, логи. Это замедляет поиск и снижает точность. Создайте файл .cursorignore в корне проекта и перечислите там node_modules, dist, build, .git и папки с логами - по одному на строку.
Что такое @codebase и как этим пользоваться без навыков программирования?
@codebase - команда в чате Cursor, которая ищет ответ по всему проекту. Открываете чат, пишете @codebase и задаёте вопрос на обычном языке: «где у нас логика отправки заказа» или «найди все места, где используется функция расчёта скидки». Это позволяет разобраться в чужом коде или коде подрядчика без чтения каждого файла вручную.
Чем @file и @folder отличаются от @codebase?
@codebase ищет по всему проекту. @file и @folder сужают поиск до конкретного файла или папки - это полезно, когда вы уже знаете, где проблема, и не хотите перегружать AI лишним контекстом. Важно не указывать корневые папки с тысячами файлов: это исчерпает лимит контекста и замедлит работу.
AI Компас (t.me/kosmoslab_ai) - канал для предпринимателей в РФ и СНГ, которые применяют AI в своём бизнесе без программиста. Разбираем инструменты и схемы - без курсов и теории.
