TGViewer
max.sh max.sh @max_dot_sh · 3.27K subscribers
Post #113 3.63K
Как работает Cursor ?

В блоге Programmatic Engineer вышел классный технический разбор про начинку Курсора. Автора блога, вроде как, пообщался лично с техническим кофаундером стартапа Anysphere (оценка $10B) и расписал по частям интересные детали: от стека до скейла. Почитать тут.

В бесплатной версии доступна только половина статьи (а за фулл платить 10$ в месяц на подписку 🥲), но и в таком варианте полно интересных моментов. Читается легко, как будто старая добрая книга Alex Xu по System Design. Самое то, если у вас вдруг собес в подобную компанию AI кодогенерации.

Работает примерно так.

1️⃣Проект пользователя сначала индексируется. Это значит следующее.

🔘Во-первых, каждый файл разбивается на кусочки (чанки) кода небольшого размера. Чанки улетают на сервер, где запускается эмбеддер модель компании. Модель эмбеддит чанки в вектора для последующего векторного поиска. Курсор говорит, что не хранит код на своих серверах, только эмбеддинги (но кто знает, что там происходит, код то вы свой все равно уже отправили 🙂). Извлечение эмбеддингов - довольно ресурснозатратный процесс, поэтому компания держит кластер GPU для инференса (думаю, что это капля в море по сравнению с стоимостью инференса LLM-ов).

Чтобы не просрать слить свои ключи и другую чувстивтельную инфу, обязательно заполняйте .gitignore и .cursorignore, чтобы исключить какие-то ресурсы из индексации


🔘Во-вторых, курсор так же хранит структуру проекта пользователя в виде дерева. Конкретно используется Merkle Tree - дерево, где каждый лист - это хэш файла, а узлы - комбинация хэшей узлов-детей. Такое дерево хранится как локально, так и на серверах Курсора, и каждый раз, когда делается изменение в коде пользователя, локальные хэши сверяются с теми, что на сервере, и если есть различие, то они пересчитываются, а следовательно и обновляются некоторые эмбеддинги чанков.


2️⃣Теперь, когда индекс построен, можно пользоваться всеми фичами. Например, становится доступным чат с Курсором, где вы можете попросить курсор объяснить, как работает какая-то функция в вашем коде или попросить Курсор что-нибудь реализовать. В этом случае Курсор просканирует индекс, найдет релевантные ID чанков кода с помощью векторного поиска, заберет исходнй код чанков с вашего проекта, и пойдет в LLM просить рассуждать и генерировать план действий. Ну а дальше все это интерактивно будет отображаться в IDE. Курсор может ваш код и не хранит, а вот LLM-провайдеры – может быть.

3️⃣ Автокомплит, или tab-подсказки (это когда вы пишите комментарий или сигнатуру функции, а Курсор предлагает ее реализацию), работает чуть проще из-за чувствительности к latency. Здесь просто локальный контекст уходит в LLM и та генерирует автокомплит.

4️⃣ По стеку используется Turbopuffer для векторного хранилища эмбеддингов чанков и дерева файловой системы. Rust для высоконагруженной части на сервере, TypeScript для клиента IDE.

Другие цифры и детали можно найти в самом блоге. У автора еще выходит регулярно подкаст с техническими людьми так же на тему систем дизайна – рекомендую.

Happy Learning!

@max_dot_sh
Pragmaticengineer Real-world engineering challenges: building Cursor Cursor has grown 100x in load in just a year, sees 1M+ QPS for its data layer, and serves billions of code completions, daily. A deepdive into how it’s built with cofounder, Sualeh Asif
  • ❤ 27
  • 👍 18
  • ⚡ 6
  • 🔥 4
  • 😁 1
  • 🆒 1
  • 😎 1
More from @max_dot_sh
  1. Sep 16, 2026Вышел из отпуска и сразу в лондонскую подземку. А тут снова ждет креативная it-шная реклам…
  2. Aug 30, 2026Post #230
  3. Aug 21, 2026По этикету, уходя из хорошего места - найди хорошую замену. Поэтому пост с вакансией Компа…
  4. Aug 17, 2026К слову о конкурсах. И почему в них круто участвовать. Расскажу свою историю. В 2018 году…
  5. Aug 12, 2026🏎 Пост для для любителей контестов. Цель конкурса: разработать систему, которая передает…
  6. Aug 10, 2026Небольшой анекдот-история, чтобы задать правильный ритм на неделю. А кому и настроение под…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →