
Ринок помічників для кодування переповнений учасниками, оскільки це одна зі сфер, де технологія штучного інтелекту приносить дохід. Водночас жоден з інструментів не збирав стільки захоплених відгуків розробників, як Cursor — IDE, заточена під роботу з ШІ. Ним користуються інженери з Midjourney, Perplexity, Shopify і OpenAI та про нього говорять лідери галузі. Андрій Карпаті, колишній керівник ШІ в Tesla та дослідник OpenAI зізнався, що із переходом на Cursor+3.5 Sonnet основною мовою його програмування стала… англійська.
У цьому матеріалі розбираємося, що таке Cursor, його особливості та як він працює «під капотом». Артур Середа, Front-end Developer в Promova та Руслан Терехов, Full Stack Team Lead в Universe Group поділилися враженнями від інструменту та досвідом, чи можна в ньому програмувати природною мовою.
Що таке Cursor
Cursor — це інтелектуальний редактор коду, розроблений компанією Anysphere. Він є «форком» Visual Studio Code, продукту Microsoft з відкритим вихідним кодом. Cursor інтегрує штучний інтелект, зокрема моделі GPT-4 та Claude 3.5 Sonnet, безпосередньо в процес написання коду, щоб допомогти розробникам швидше писати, аналізувати й змінювати код.
«Наша місія — зробити програмування на порядок швидшим, веселішим і креативнішим», — цю думку Майкл Труелл, один з фаундерів Cursor, повторює знову і знову у різних інтервʼю, фокусуючись на слові «веселий». На його думку, програмування десятирічної давнини було нудним — суцільні шаблони та бойлерплейти. Натомість сучасні технології дозволяють повернутися до справжнього інженерного креативу та швидко реалізовувати круті ідеї.
За даними IDC, до 2028 року кількість розробників збільшиться до 57,8 млн. Cursor обрав перспективний ринок інструментів для розробників, який має високу конкуренцію (CodiumAI, Continue і Tabnine тощо) та сталого лідера — згідно з опитуванням розробників StackOverflow за 2023 рік, 73,6% розробників надавали перевагу Visual Studio Code. Чи були у Cursor шанси конкурувати з лідером серед IDE? Команда Anysphere, що складалася з п’яти осіб, крім могутнього конкурента обрала також амбітну мету — реалізувати значно більше функцій у короткий термін.
Історія створення
2020 року OpenAI опублікувала проривне дослідження, відоме як «Закони масштабування». У тексті йшлося про спостереження, що продуктивність великих мовних моделей можна значно покращити без значних змін в архітектурі. Для цього потрібно масштабувати всього три показники — обчислювальні ресурси, обсяг даних для навчання і розмір моделі. Ця переломна подія надихнула чимало розробників обрати майбутній напрям роботи. Серед них було четверо старшокурсників Массачусетського технологічного інституту — Майкл Труелл, Суале Асіф, Арвід Луннемарк і Аман Сенгер. Через два роки вони заснували компанію Anysphere та створили прототип Cursor.

Під час навчання в MIT вони стали близькими друзями. «Ми були прихильниками чистого Vim та терміналу. Але нам так кортіло спробувати Copilot, що довелося перейти на VS Code — єдиний редактор, де був доступний цей ШІ-інструмент», — згадують фаундери під час інтервʼю з Лексем Фрідманом.
Під час навчання Труелл і Сенгер взяли участь у програмі Neo Scholars — наставницькому проєкті для студентів технологічних спеціальностей від компанії Neo, яка також керує акселератором і венчурним фондом. Саме вона стала першим інвестором Anysphere.
Команда зосередилася на створенні інструментів для розробників. Наприкінці 2022 року вони отримали ранній доступ до GPT-4 та зрозуміли, що ШІ стане ще потужнішим. Тому варто переосмислити, як штучний інтелект інтегрується в процес редагування коду. Так виникла ідея створення IDE Cursor, — але не чергового розширення для VS Code, а окремого редактора.
«Коли люди думають про «штучний інтелект плюс кодування», вони зазвичай асоціюють його з автозаповненням. Ми вважаємо, що GitHub Copilot та інші вже зробили це достатньо добре, зосередились на інших функціях — пошук і виправлення помилок, а також запитання та відповіді на основі коду», — ділився Арвід Луннемарк.
Восени 2023 року компанія закрила початковий раунд у розмірі $8 млн під керівництвом OpenAI Startup Fund. Прибуток та база користувачів швидко зростали. Якщо у квітні 2024 річний виторг складав $4 млн, то у жовтні — $48 млн. У серпні 2024 компанія залучила $60 млн у межах раунду фінансування серії A з оцінкою $400 млн. Серед інвесторів — Andreessen Horowitz, Thrive Capital, OpenAI, Джефф Дін, Ноам Браун, а також засновники Stripe, GitHub, Ramp, Perplexity та OpenAI. Всього за 4 місяці фаундери оголосили про залучення $100 млн у раунді серії B з оцінкою вже в $2,6 млрд.
Також восени 2024 року компанія оголосила про придбання одного з конкурентів — Supermaven, контекстно-орієнтований інструмент з автодоповнення коду.
З чого складається Cursor
Коли система працює з кодом, вона повинна мати доступ до контексту, щоби правильно розуміти, що відбувається у вашому проєкті. Cursor може бачити багато рядків коду чи файлів одночасно та розуміти, як взаємодіють різні частини вашої кодової бази. Хоча система отримує велику кількість інформації, вона не генерує стільки токенів — це означає, що модель не повинна створювати багато нового тексту або коду, а швидше використовує наявний контекст для виконання операцій, таких як пошук, редагування чи інтерпретація коду.
Cursor використовує специфічний підхід, а саме розріджені моделі. MoE (Mixture of Experts) — це підхід машинного навчання, який поділяє модель штучного інтелекту на окремі підмережі (або «експертів»), кожна з яких відповідає за певне завдання або тип задач.
Кожен «експерт» у системі MoE навчається на певному типі даних або завдань, що дозволяє йому стати фахівцем у своїй області. Наприклад, аналіз помилок, рефакторинг, автодоповнення. MoE допомагає системі швидко знаходити та застосовувати відповідні частини контексту без надмірного навантаження на ресурси. Замість того, щоб генерувати велику кількість нових токенів для кожної операції, модель вибирає найбільш релевантний контекст і на його основі виконує потрібну задачу. Завдяки такій архітектурі моделі MoE можуть масштабуватися до дуже великих розмірів, зберігаючи при цьому ефективність.
Що вміє Cursor
Composer
Це розширена функція, яка допомагає досліджувати код, писати нові функції та змінювати існуючий код, не виходячи з робочого процесу. Composer дозволяє створювати файли та редагувати декілька файлів одночасно, що значно прискорює розробку. Під час створення підказки можна посилатися на файли — наприклад, знімки екрана, схеми бази даних і навіть текстові файли. Активувати Composer можна з допомогою клавіш Command+I, після взаємодіяти з ним у двох режимах: Normal та Agent. У режимі Normal можна шукати відповіді по кодовій базі та документації, використовувати вебпошук, створювати та редагувати файли, а також отримувати розширені команди за допомогою символу @. Режим Agent надає можливість автоматично отримувати релевантний контекст, виконувати команди у терміналі, створювати та змінювати файли, здійснювати семантичний пошук по коду та виконувати операції з файлами.

Cursor Tab — автодоповнення «на стероїдах»
Ця функція спеціально розроблена для покращення автодоповнення коду та передбачення наступних редагувань. Cursor Tab не лише вставляє код у поточному місці курсора, але й пропонує повне редагування навколо нього, а також передбачає, куди користувач, ймовірно, захоче перемістити курсор далі. Це дозволяє швидко вносити зміни та підвищує ефективність кодування.
«Ніби поруч є дуже швидкий колега, завжди готовий допомогти та знає, що ви хочете зробити далі. Але можна зробити цю концепцію ще амбітнішою: не просто передбачати символи після курсору, а фактично весь наступний крок», — так пояснював роботу цієї функції Майкл Труелл.


Agent Mode
Cursor може працювати в напівавтоматичному режимі, де він не лише генерує підказки, але й виконує цілі завдання. Наприклад, «згенеруй CRUD-операції для цього API». Cursor створить код, необхідні маршрути, і навіть перевірить коректність виконання.

Покращений контекст
В Cursor є можливість з допомогою анотацій посилатися на різні джерела даних, зокрема файли, папки, документацію або навіть на всю кодову базу. Основна ідея в тому, що Cursor дозволяє зв'язувати різні елементи вашого проєкту (код, файли, вебсторінки) в єдиний контекст, що полегшує навігацію та роботу з ними.
Спілкування будь-де
Більшість сучасних помічників програмування ШІ обмежуються двома функціями: завершення коду в редакторі та окреме вікно чату, яке забезпечує розмовний інтерфейс, подібний до ChatGPT. В Cursor є можливість викликати поле введення чату будь-де — у редакторі коду, на бічній панелі чи у вікні термінала. Для цього потрібно обрати блок та натиснути Command+K, щоб переписати чи змінити його, або натиснути Command+L.
Робота в терміналі
Особливістю Cursor є можливість працювати безпосередньо в терміналі через вікно чату, використовуючи природну мову. Вам не потрібно пам'ятати складні синтаксиси або шукати приклади команд — ви просто описуєте те, що хочете зробити, а Cursor генерує відповідні команди для виконання в терміналі. Наприклад, ви можете сказати «створи Docker контейнер для цього проєкту», і Cursor згенерує і введе всі необхідні команди для створення контейнера прямо в термінал, без ручного введення.
Редагування коду природною мовою
Cursor також дозволяє вносити зміни до коду через текстові запити природною мовою. Наприклад, «зміни цю функцію так, щоб вона підтримувала асинхронність».
Вибір моделей
Cursor надає доступ до таких моделей, як Claude 3.5 Sonnet і GPT-4o. Також розробники можуть підключити свої облікові записи та підписки, щоб використовувати моделі від Anthropic, Microsoft Azure, OpenAI та Google. Також є можливість перемикати моделі, залежно від завдань.


Я протестував Cursor на власних pet-проєктах, а згодом спробував інтегрувати у роботу. Найбільш разюча відмінність від того ж Copilot — здатність індексувати кодову базу. Copilot цього не вміє, відповідно не бачить нюансів та залежностей, не може запропонувати глобальне рішення. А Cursor все це може. Це може бути корисно, коли в команду приходить нова людина і знайомиться з проєктом. Cursor може швидко проіндексувати кодову базу і відповісти на питання.
Загалом цей інструмент чудово справляється з типовими задачами — щось швидко наверстати, прикрутити якусь логіку тощо. Але з вузькими нетиповими завданнями можуть виникати труднощі. Також далеко не всі його пропозиції є релевантними — часто після них у коді щось ламається. Тому важливо все уважно перевіряти, але це правило актуальне при роботі з будь-якими ШІ.
Кейс: я вирішив спробувати зробити Chrome-екстеншн, який дозволяв скрапити дані з сайту за певними тегами. Раніше я такого не робив, тому цілком поклався на допомогу Cursor. В результаті за 4-5 годин базовий екстеншн був готовий. За весь час я нічого не гуглив і навіть не відкривав API документацію, а також майже не писав сам код, керуючи ним виключно через чат. У Твітері діляться, що тепер можна за 30 хвилин, поки їдеш в Uber, з допомогою чату створити MVP якогось продукту, — і в цьому справді щось є. Сам VS Code мені ніколи не подобався, тому я повернувся до комбінації WebStorm + Copilot. Водночас, якби мені потрібно було швидко створити якийсь простий застосунок, я б спробував реалізувати його через Cursor AI — це потенційно могло б зекономити час на розробку.
Порада: Cursor може працювати просто з коробки, але раджу не нехтувати заповненням конфігураційного файлу .cursorrules. Це дає налаштовувати поведінку ШІ-асистента, визначає правила, за якими він аналізує кодову базу, відповідає на запити та пропонує зміни. З ним результат буде значно кращим. На GitHub є репозиторій з безліччю прикладів таких файлів — можна знайти подібний проєкт і скопіювати.

Зазвичай я працюю з продуктами JetBrains. Але порівняно з ними у Cursor значно краща інтеграція з контекстом проєкту. Інші AI-асистенти, в тому числі Copilot, не так глибоко аналізують локальні файли проєкту. Вони не завжди правильно розуміють зв’язки між компонентами та логіку самого проєкту. Cursor же виконує більш детальний аналіз, працює з типами даних та загальною архітектурою.
Ще одна крута фіча — він не просто аналізує файли, а й може одразу створювати нові. Наприклад, якщо попросити написати тест, він не тільки згенерує код, а й автоматично створить новий файл. Ба більше, він покаже зміни у вигляді умовного пул-реквеста, де можна переглянути результат і вирішити, чи приймати його.
Загалом Cursor допомагає із рутинною роботою та дослідженнями. Типова задача для нього — генерація структур даних. Це корисно, коли потрібно швидко створити структури для Go. Наприклад, якщо в документації є опис формату даних, його можна скопіювати та попросити Cursor згенерувати відповідні структури. Це особливо зручно, коли структура містить сотні полів, які вручну копіювати — справжній біль.
Ще одне завдання — підготовка інфраструктури для тестів. Можна сказати: «Я планую писати юніт-тести для таких-то компонентів, підготуй мені оточення», і Cursor згенерує все необхідне — конфігураційні файли, тестове середовище, початкові тести. Потім можна або вручну доопрацьовувати, або дати ще один запит на написання тестів для конкретної функції. Якщо після рефакторингу або змін у функціоналі потрібно оновити тести, можна просто сказати: «Ось оновлений файл, адаптуй тести під нього», і Cursor запропонує зміни. Це значно економить час, особливо при роботі з великою кодовою базою.
Також Cursor може допомогти з рефакторингом: перевіряє код, вказує на проблемні місця і навіть пропонує альтернативні варіанти. Якщо додати конкретний контекст, його аналіз стає набагато точнішим. Наприклад, якщо працюєш над високонавантаженим парсером, можна написати: «Ось функція, яка обробляє великі масиви даних. Як її оптимізувати для хайлода?» Тоді Cursor змінює підхід і пропонує конкретні поради, наприклад, зменшити алокацію пам’яті, оптимізувати роботу з потоками, уникати зайвих копіювань даних.
Кейс: колега працював у Cursor над задачею створення вебзастосунку для виведення інформації на телевізори. Він просто зайшов у Cursor і написав промпт: «Згенеруй два проєкти: перший — фронтенд на React, який виводить такі-то дані», і Cursor одразу створив проєкт, який запустився і працював. Потім він продовжив: «Напиши бекенд для цього фронтенду, який бере дані з таких-то джерел і віддає їх у потрібному форматі», і Cursor створив бекенд, який колега задеплоїв без особливих змін. Це підтверджує, що Cursor можна використовувати для швидкої генерації простих вебзастосунків, як фронтенду, так і бекенду.
Порада: важливо не зловживати автоматичною генерацією коду, оскільки він може містити помилки або неточності. Варто тестувати такі рішення на реальних даних і перевіряти їхню відповідність до вимог. Якщо додати більше контексту про структуру даних, він може дати ще кращий результат.