Большинство людей, которые первый раз открывают Cursor, пишут что-то вроде: «напиши скрипт для переименования файлов» — и получают заготовку, которая не работает в их конкретном случае. Причина не в нейросети. Причина в промпте.
10+ лет в маркетинге, 300+ клиентских проектов: сайты, реклама, боты. Создатель GoBanana (228K+ пользователей, 11.6 млн ₽ выручки) и VibeCoderz. Делаю AI-продукты сам через Claude Code, Cursor, Windsurf и консультирую тех, кто хочет так же.
Об авторе →Claude Code: новый CLI-агент от Anthropic
Anthropic выпустила Claude Code — терминальный AI-агент для разработчиков. Инструмент работает прямо в командной строке и умеет писать, редактировать и запускать код.
Zcode AI: Полный гид по визуальному интерфейсу для Claude Code и AI-агентов
Узнайте, как использовать Zcode для управления Claude Code, Gemini и Codex в едином GUI. Настройка провайдеров, MCP-серверов и визуальный вайбкодинг.
YouTube-канал с монетизацией из любой точки мира: Пошаговый гайд 2026
Инструкция по созданию YouTube-канала: обход блокировок SMS, настройка расширенных функций через виртуальные номера и правила безопасности для монетизации.
Windsurf Code Maps: Как глубоко понимать архитектуру проекта перед написанием кода
Полный гайд по Windsurf Code Maps, модели Sway 1.5 и Sway Grep. Узнайте, как визуализировать архитектуру кода и ускорить разработку в 13 раз.
Vk Fast Cash Strategy
Аудитория ВКонтакте — это те же люди, что и в Instagram, но 'социальный контракт' площадки другой. Если Instagram — это 'дорогой ресторан' с демонстрацией успеха, то VK — это 'душевная шашлычная'. Здесь не работает глянцевый 'успешный успех
Обновлено: июнь 2026
Большинство людей, которые первый раз открывают Cursor, пишут что-то вроде: «напиши скрипт для переименования файлов» — и получают заготовку, которая не работает в их конкретном случае. Причина не в нейросети. Причина в промпте.
Чтобы получить рабочий код с первого раза, промпт должен содержать пять элементов: язык (Python 3.11, Bash, Google Apps Script), задача (что именно делает скрипт), входные данные (откуда берёт), формат вывода (куда сохраняет или что возвращает) и обработка ошибок (что делает, если что-то пошло не так). Без этого Cursor угадывает — и чаще всего угадывает неверно.
В этой статье: готовая формула промпта, три конкретных примера с кодом для Python, Bash и Google Apps Script, и разбор типичных ошибок.
В 2026 году Cursor, Windsurf и другие AI IDE генерируют рабочие скрипты за 1–2 минуты — но только при правильно составленном промпте. Формула: язык + задача + данные + вывод + ошибки. Примеры для Python, Bash и Google Apps Script — ниже.
AI IDE видит весь ваш проект, но не знает вашу задачу. Без конкретики — угадывает. Угадывает неверно в 7 из 10 случаев.
Это наблюдение, которое повторяется у всех, кто начинает работать с AI-кодингом. Cursor очень хорошо понимает синтаксис. Bash, Python, JavaScript, TypeScript — всё это он знает. Но у него нет телепатии.

Когда вы пишете «сделай скрипт для обработки файлов», агент заполняет пробелы самостоятельно: придумывает формат входных данных, выбирает директорию по умолчанию, решает, что делать с ошибками. Иногда угадывает правильно. Чаще — нет.
Проблема не в модели. Проблема в том, что промпт для скрипта и промпт для обычного вопроса — это разные вещи. Чат GPT принимает размытые запросы, потому что работает с текстом. Cursor генерирует исполняемый код — и там каждая деталь имеет значение.
Максим: «Я это понял на третьей итерации с GoBanana. Писал промпт как в обычном чате: "добавь функцию загрузки фото". Получал код, который падал на проде. Потом начал писать как техзадание — язык, что принимает, что возвращает, что при ошибке. Стало работать с первой попытки почти всегда.»
Укажи все пять — получишь рабочий код. Пропусти хотя бы один — Cursor начнет угадывать.
Это не академическая теория. Это практический чеклист, который сокращает количество итераций в 3–4 раза.
Элемент 1 — Язык с версией. Не просто «Python», а «Python 3.11». Не просто «Bash», а «Bash для macOS Sequoia» или «Bash для Ubuntu 22.04». Разница есть: синтаксис date в macOS и Linux отличается, sed работает по-разному. Cursor учитывает это, когда вы уточняете.
Элемент 2 — Задача. Одно конкретное действие. Не «обработать файлы», а «переименовать все .jpg файлы в директории, добавив дату создания в начало имени файла». Чем точнее — тем меньше вариантов интерпретации.
Элемент 3 — Входные данные. Откуда скрипт берёт данные: аргумент командной строки, переменная окружения, конкретный путь, CSV-файл, переменная в Google Таблице. Это критично. Один и тот же скрипт будет написан по-разному для «читает путь из аргумента» и «читает путь из .env файла».
Элемент 4 — Формат вывода. Куда сохраняет результат: в файл, в stdout, в папку, в Telegram, в Google Sheets. Если нужен конкретный формат — укажи его.
Элемент 5 — Обработка ошибок. Что делать, если файл не найден, нет прав доступа, API вернул ошибку. Без этого пункта Cursor напишет «счастливый путь» — код, который работает только при идеальных условиях.
| Элемент | Плохо | Хорошо |
|---|---|---|
| Язык | «Python» | «Python 3.11 на macOS» |
| Задача | «обработать файлы» | «переименовать .jpg, добавить дату в начало» |
| Входные данные | не указано | «принимает путь к папке как первый аргумент» |
| Вывод | не указано | «выводит лог в stdout, ошибки в stderr» |
| Ошибки | не указано | «при отсутствии файла — пропустить, вывести предупреждение» |
Скопируй шаблон, подставь свои данные — и запускай.
Вот готовый шаблон. Это не магия — это структурированное техзадание для агента:
Напиши скрипт на [ЯЗЫК + ВЕРСИЯ].
Задача: [ОДНО КОНКРЕТНОЕ ДЕЙСТВИЕ].
Входные данные: [ОТКУДА БЕРЕТ ДАННЫЕ].
Выходные данные: [ЧТО И КУДА СОХРАНЯЕТ].
Обработка ошибок: [ЧТО ДЕЛАТЬ ПРИ СБОЕ].
Дополнительно: добавь комментарии к ключевым блокам.Последняя строка про комментарии — не обязательная, но полезная. Cursor объяснит каждый блок кода, и вы сможете изменить нужную часть в следующей итерации, не разбирая весь скрипт с нуля.

Классическая задача автоматизации — архивировать папку и добавлять дату в имя файла.
Вот как выглядит промпт по формуле:
Напиши скрипт на Python 3.11 для macOS.
Задача: создать tar.gz архив папки.
Входные данные: принимает путь к папке как первый аргумент командной строки (argparse).
Выходные данные: сохраняет архив в ту же директорию, что и исходная папка. Имя файла: backup_YYYYMMDD.tar.gz.
Обработка ошибок: если папка не существует — вывести понятное сообщение и выйти с кодом 1. Если нет прав на запись — тоже сообщить об этом.
Дополнительно: добавь комментарии к ключевым блокам.Cursor выдаст что-то близкое к этому:
#!/usr/bin/env python3
"""Скрипт для создания tar.gz бэкапа папки с датой в имени файла."""
import argparse
import os
import tarfile
from datetime import datetime
from pathlib import Path
def parse_args():
"""Парсит аргументы командной строки."""
parser = argparse.ArgumentParser(description="Бэкап папки в tar.gz архив")
parser.add_argument("source", help="Путь к папке для бэкапа")
return parser.parse_args()
def create_backup(source_path: Path) -> Path:
"""Создаёт архив и возвращает путь к нему."""
# Имя архива: backup_YYYYMMDD.tar.gz
date_str = datetime.now().strftime("%Y%m%d")
archive_name = f"backup_{date_str}.tar.gz"
output_path = source_path.parent / archive_name
with tarfile.open(output_path, "w:gz") as tar:
# Добавляем только содержимое папки, без полного пути
tar.add(source_path, arcname=source_path.name)
return output_path
def main():
args = parse_args()
source = Path(args.source)
# Проверяем, что папка существует
if not source.exists():
print(f"Ошибка: папка '{source}' не найдена", flush=True)
raise SystemExit(1)
# Проверяем права на запись в родительской директории
if not os.access(source.parent, os.W_OK):
print(f"Ошибка: нет прав на запись в '{source.parent}'", flush=True)
raise SystemExit(1)
result = create_backup(source)
print(f"Бэкап создан: {result}")
if __name__ == "__main__":
main()Запуск: python3 backup.py ~/Documents/MyProject
Это рабочий код. Не заготовка — именно рабочий. Потому что промпт содержал все пять элементов.
Bash удобен для автоматизации на Linux/macOS: не нужны дополнительные зависимости.
Промпт по формуле:
Напиши скрипт на Bash для Linux (Ubuntu 22.04).
Задача: проверить доступность веб-сайта по HTTP статусу.
Входные данные: принимает URL как первый аргумент командной строки ($1).
Выходные данные: выводит в stdout сообщение "Сайт доступен" или "Сайт недоступен: [код ответа]".
Обработка ошибок: если аргумент не передан — вывести инструкцию по использованию. Если curl недоступен — сообщить об этом.
Дополнительно: добавь shebang и права на выполнение через комментарий.Результат:
#!/bin/bash
# Проверка доступности сайта по HTTP статус-коду
# Использование: ./ping_check.sh https://example.com
# Права: chmod +x ping_check.sh
# Проверяем, передан ли аргумент
if [ -z "$1" ]; then
echo "Использование: $0 <url>"
echo "Пример: $0 https://example.com"
exit 1
fi
# Проверяем наличие curl
if ! command -v curl &>/dev/null; then
echo "Ошибка: curl не установлен. Установите: sudo apt install curl"
exit 1
fi
URL="$1"
# Получаем HTTP статус-код, перенаправляем тело ответа в /dev/null
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" "$URL")
# Проверяем статус-код
if echo "$HTTP_CODE" | grep -q "^2"; then
echo "Сайт доступен (HTTP $HTTP_CODE): $URL"
else
echo "Сайт недоступен (HTTP $HTTP_CODE): $URL"
exit 1
fiПрава на выполнение: chmod +x ping_check.sh
Запуск: ./ping_check.sh https://vibecoderz.ru
Обратите внимание на строку с grep -q "^2" — скрипт считает доступными все коды 2xx (200, 201, 204), а не только 200. Это более корректно для реальных API.
Если вы работаете в Google Workspace, Apps Script — самый быстрый способ автоматизировать рутину без деплоя.
Промпт:
Напиши скрипт на Google Apps Script.
Задача: отправить email каждому человеку из таблицы.
Входные данные: активный лист Google Sheets. Колонка A — имя, колонка B — email, колонка C — сумма заказа.
Выходные данные: каждому адресату отправить email с темой "Ваш заказ" и телом "Привет, [Имя]! Ваш заказ на сумму [Сумма] руб. подтверждён."
Обработка ошибок: пропустить строки с пустым email. Логировать каждую отправку в консоль.Cursor выдаст:
/**
* Отправляет email каждому получателю из активного листа.
* Колонки: A — имя, B — email, C — сумма заказа.
*/
function sendOrderEmails() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getDataRange().getValues();
// Пропускаем первую строку (заголовки), начинаем с индекса 1
for (let i = 1; i < data.length; i++) {
const name = data[i][0];
const email = data[i][1];
const amount = data[i][2];
// Пропускаем строки без email
if (!email) {
console.log(`Строка ${i + 1}: email отсутствует, пропускаю`);
continue;
}
const subject = "Ваш заказ";
const body = `Привет, ${name}! Ваш заказ на сумму ${amount} руб. подтверждён.`;
// Отправляем email
GmailApp.sendEmail(email, subject, body);
console.log(`Отправлено: ${email} (${name}, ${amount} руб.)`);
}
console.log("Рассылка завершена");
}Запустить через: Extensions -> Apps Script -> Run.
Первая итерация редко бывает последней. Вот как правильно итерировать.
Даже при хорошем промпте скрипт иногда не работает с первого раза. Это нормально — особенно если задача нестандартная или есть зависимости от конкретной среды.
Правило одно: не переписывай промпт полностью. Уточняй конкретную проблему.
Плохо: «это не работает, переделай»
Хорошо: «скрипт падает с ошибкой PermissionError: [Errno 1] на строке 34. Это папка без прав записи — добавь проверку через os.access() перед созданием файла»
Cursor видит весь контекст проекта. Если вы добавили файл в чат или перетащили его в окно агента, он понимает структуру. Поэтому уточнять ошибки лучше конкретно, а не просить «переписать всё заново».
Ещё один лайфхак из видео про Cursor: при старте с большого проекта сначала отправьте агенту промпт «расскажи, о чём проект» — без задачи. Пусть Cursor прочитает весь код и опишет структуру. После этого его ответы по конкретным задачам станут точнее, потому что контекст уже загружен.
Оба инструмента справятся. Разница в деталях рабочего процесса.
Если вы выбираете между двумя IDE именно для написания скриптов — вот прямое сравнение:
| Параметр | Cursor | Windsurf |
|---|---|---|
| Стабильность | Выше | Периодически глючит |
| Превью результата | Нет встроенного | Есть Preview прямо в IDE |
| MCP-интеграции | Требует подтверждений | Работает без промежуточных вопросов |
| Тарифы | от $20/мес | от $15/мес |
| Бесплатная модель | Ограниченный Free Plan | Cascade Base (без расхода токенов) |
| Деплой скрипта | Ручной | Кнопка Deploy Application |
Для написания скриптов без превью результата (Python, Bash) — оба одинаково удобны. Windsurf выигрывает, когда нужно посмотреть на результат прямо в IDE: например, скрипт генерирует веб-страницу или интерфейс. Cursor стабильнее на больших проектах.
Подробные обзоры обоих инструментов — на vibecoderz.ru/item/cursor и vibecoderz.ru/item/windsurf.

Для написания скриптов всегда используй агентный режим — он видит файлы и может их редактировать напрямую.
В Cursor есть два режима: чат (Chat) и агент (Agent). В чате модель отвечает только текстом. В режиме агента она видит структуру вашего проекта, читает файлы и может записывать изменения прямо в них.
Для скриптов это принципиально. Агент не просто покажет код — он создаст файл, поставит права, запустит тест. Вы увидите результат сразу, без копипасты.
Как переключиться: в Cursor выберите режим «Auto» в правом окне чата. В Windsurf — режим «Write» (по умолчанию).
При работе с большими файлами (более 500 строк) — добавьте конкретный файл в контекст через @filename или перетащите его в окно чата. Тогда агент не будет «читать весь проект» и потратит меньше токенов на вашу задачу.

Shebang — строка #!/bin/bash или #!/usr/bin/env python3 в начале скрипта. Указывает операционной системе, каким интерпретатором выполнять файл.
argparse — стандартная библиотека Python для работы с аргументами командной строки. Позволяет передавать параметры при запуске: python3 script.py --input data.csv.
tar.gz — формат сжатого архива для Linux/macOS. tar создаёт архив, gz сжимает его. Эквивалент .zip на Windows.
HTTP статус-код — трёхзначное число, которое сервер возвращает в ответ на запрос. 200 — успех, 404 — не найдено, 500 — ошибка сервера.
Google Apps Script — JavaScript-среда внутри Google Workspace. Позволяет автоматизировать работу с Google Sheets, Gmail, Drive без отдельного сервера.
Агентный режим — режим работы AI IDE, в котором модель может читать, создавать и редактировать файлы в проекте, а не только генерировать текст.
Виртуальное окружение (venv) — изолированная среда Python, где хранятся зависимости проекта. Нужна, чтобы библиотеки одного проекта не конфликтовали с другими.
Обязательно ли использовать Cursor? Или можно в обычном ChatGPT?
Можно в ChatGPT — формула промпта работает везде. Cursor удобнее тем, что видит структуру проекта и может создавать файлы напрямую. Для разовых скриптов разница небольшая, для работы с проектом — существенная.
Что делать, если Cursor сгенерировал код, но он упал с ошибкой?
Скопируйте полный текст ошибки прямо в чат и напишите: «получил такую ошибку, исправь». Не переформулируйте задачу — просто добавьте сообщение об ошибке. Cursor разберётся.
Можно ли писать промпты на русском?
Да, Cursor понимает русский. Но для технических деталей (имена переменных, пути, форматы) лучше использовать английский — это снижает риск неоднозначности в коде.
Как запустить Bash-скрипт на Windows?
Нужен WSL (Windows Subsystem for Linux) или Git Bash. Установите через Microsoft Store: «Ubuntu» или «WSL». После этого Bash-команды работают как на Linux.
Нужно ли знать Python, чтобы писать скрипты через Cursor?
Не обязательно. Но базовое понимание того, что делает каждый блок кода, сильно ускорит итерации. Cursor объяснит любой блок кода по запросу: просто напишите «объясни что делает строка X».
Как передать файл агенту, чтобы он работал именно с ним?
В Cursor — перетащите файл в окно чата или используйте @имя_файла. В Windsurf — то же самое. Агент тогда сфокусируется на конкретном файле, а не будет сканировать весь проект.
Что такое «режим Auto» в Cursor и зачем он нужен?
Auto — режим, при котором Cursor автоматически выбирает модель под задачу. Для простых скриптов берёт легкую модель (экономит токены), для сложной архитектуры — тяжёлую. Для большинства задач это оптимальный выбор.
Полный каталог AI-инструментов для разработки — на vibecoderz.ru/ide. Если хочешь разобраться с конкретной задачей автоматизации, запишись на консультацию к Максиму: t.me/maxnagovitsyn.
Обновлено: июнь 2026. Данные по тарифам и моделям актуальны на момент публикации.