<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Блог Михаила Озорнина</title>
<link>https://mikeozornin.ru/blog/</link>
<description>Главная · Блог · Работы ·</description>
<author>Михаил Озорнин</author>
<language>ru</language>
<generator>E2 (v3798; Aegea)</generator>

<itunes:owner>
<itunes:name>Михаил Озорнин</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Главная · Блог · Работы ·</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Дизайн с помощью ИИ: протестировал 33 модели с сгенерировал 130 картинок</title>
<guid isPermaLink="false">224</guid>
<link>https://mikeozornin.ru/blog/all/llm-and-ui-design/</link>
<pubDate>Tue, 12 May 2026 09:53:32 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/llm-and-ui-design/</comments>
<description>
&lt;p class="lead"&gt;Я сгенерировал одну и ту же задачу 33 разными агентами/моделями, и показываю вам 130 итоговых картинок. Разница в стоимости между самым дорогим и дешевым вариантами — 410 раз.&lt;/p&gt;
&lt;p&gt;У этого поста есть еще версия на английском: &lt;a href="https://mikeozornin.ru/blog/all/llm-and-ui-design-en/"&gt;mikeozornin.ru/blog/all/llm-and-ui-design-en&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Иногда коллеги, часто не дизайнеры, после анонсов всяких Клод-дизайнов, спрашивают каково оно. Как оно дизайнит, что это вообще. Насколько хороший дизайн можно ожидать, можно ли взять дизайн-систему и как потом довести до продакшена. Возможно, они хотят услышать, что нейросети заменят не только их, разработчиков, но и дизайнеров тоже, — тогда мы вместе выпиливать столы, жарить кофе или работать курьерами.&lt;/p&gt;
&lt;p&gt;Я решил проверить, как дела с ИИ-дизайном обстоят на начало мая 2026 года. Ситуацию быстро меняется, через полгода всё это будет уже неактуально, но сейчас вот так.&lt;/p&gt;
&lt;h2&gt;1 План эксперимента&lt;/h2&gt;
&lt;p&gt;Я опишу план эксперимента: процедуру и ограничения, чтобы вы могли во-первых, понять, насколько можно верить результатам, во-вторых, могли провалидировать или повторить их самостоятельно.&lt;/p&gt;
&lt;p&gt;TL;DR; Агенты рисовали три экрана: десктоп, мобильный и промостраницу через Paper MCP.&lt;/p&gt;
&lt;h3&gt;1.1 Процедура&lt;/h3&gt;
&lt;p&gt;&lt;aside class="aside-margin-right"&gt;&lt;a href="https://recipe-scaler.ru/#/about"&gt;recipe-scaler.ru/#/about&lt;/a&gt;&lt;/aside&gt;&lt;/p&gt;
&lt;p&gt;Я дал одну и ту же задачу 33-м разным агентами + моделями. Задача звучала как «сделай три экрана для одного и того же продукта»: десктопный экран, мобильный экран и промостраницу. В качестве продукта взял свою рецептилку и скормил агентам текст со страницы about.&lt;/p&gt;
&lt;p&gt;Я взял все популярные агенты и модели, которые сейчас представляю интерес.&lt;/p&gt;
&lt;p&gt;Агенты:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Агенты основных вендоров моделей: Claude Code, Codex, даже Antigravity&lt;/li&gt;
&lt;li&gt;Самый популярный независимый закрытый агент рынке: Cursor&lt;/li&gt;
&lt;li&gt;Два самых популярных открытых агента (и единственные на сейчас, которые заслуживают внимания): Opencode и Kilo Code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Забегая вперед скажу, что в этой задаче агент не был принципиально важен.&lt;/p&gt;
&lt;p&gt;Модели использовались как в нативных провайдерах, так и сторонних через Openrouter. Модели:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Флагманские модели американских лаб: Opus 4.7, Sonnet 4.6, Haiku 4.5, GPT 5.5 и 5.4, Gemini 3.1 Pro.&lt;/li&gt;
&lt;li&gt;Модели Cursor Auto и Composer 2, а также нишевые игроки типа Grok 4.3,&lt;/li&gt;
&lt;li&gt;Все популярные китайские модели: Qwen 3.6 Max Preview (и более старая Qwen3.5 397B A17B), GLM 5.1, MiniMax 2.7, DeepSeek V4 Pro, Kimi 2.6.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Всем моделям на входе передавалось задание в файле, оно было одинаковым,отличался только адрес файла — каждой модели выдавался свежий файл Paper, чтобы исключить любое влияние предыдущих запусков.&lt;/p&gt;
&lt;p&gt;Полный промт для Пейпера ниже (вариант для фигмы отличался только сменой инструмента и ссылки).&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="markdown"&gt;I am creating a design for a product.

# Task
Create new pages:
1. A desktop screen interface — choose the main screen and design it. Screen width: 1400px.
2. A recipe screen interface for mobile. You need to design a recipe screen. Screen width: 375px.
3. A promo page describing the product. Screen width: 1400px.

# Where to create it and expected result
Where to create: TODO

If the mockups are long, you can make a tall frame/artboard/layout. You do not have to fit standard screen proportions.

Use Paper MCP to create the design.

Use English for the content inside the mockups.

You can use pregenerated images for illustations: '/Users/mike/work/git-repos/projects/ai workshops/design with ai-tmp'. If you have built-in tools for drawing images, you can use them too.

Below is the product information, which also describes the product capabilities.

# Product information

```
Recipe Scaler — app for those who cook
It reliably stores your recipes, helps you cook, works on your phone and computer, even offline.

Access from phone and computer
You will have access to your recipes both on your phone and computer. The apps will sync automatically, even from offline.
On each platform, the web application uses familiar ways of working: hotkeys on the computer, and standard gesture controls on the phone.
On the phone it works as PWA — install it on your home screen and you won't tell the difference from other apps.

Recalculate recipes for different serving sizes
This is where the app started: recalculating recipes for different serving sizes.
When recalculating, not only the ingredient list is updated, but also the recipe text.

Cooking assistance
The app will help you cook: it won't turn off the screen while cooking, will track time and even send push notifications. Timers are, of course, available on the computer too.

Shopping list
Add ingredients to your shopping list one by one from a recipe, or add the whole recipe at once.
Mark purchased items, sort the list the way you like, and share the list with the person going to the store.

Automagical recipe import
Recipe Scaler can import a recipe from text, a single link, or multiple links at once.
You can also upload a file in almost any text format and even photos of pages from a cookbook, notebook, or handwritten recipe journal.

AI assistant for recipes
If something goes wrong while you cook, the AI assistant can help you save the dish and figure out what to do next.
It can also explain the recipe, suggest the next step, and point out the equipment you may need.
It's like having a chef always at your fingertips, ready to answer your questions.

Discover section
Find new recipes in Discover.
Explore interesting authors, save recipes to your collection, and build your own shortlist of the best finds.

Health-friendly: nutrition calculation
Recipe Scaler will calculate the nutritional value (Kcal, protein, fat, carbs) for a dish and let you view it conveniently: for the entire dish, per 100 grams, or per serving.
If artificial intelligence makes a mistake in the numbers, you can always correct the nutritional value of the needed ingredient.

Cookbook
Download a public recipe collection (your own or someone else's) as a beautifully formatted PDF.
The cookbook includes recipes with photos, ingredients, and cooking instructions.

Telegram bot
Send the bot a recipe text or a link to it and the bot will save the recipe to your account.

Chrome extension for quick import
Install the Recipe Scaler Importer extension and import the recipe into your account in one click.

AI assistant integration
Connect your AI assistant to recipes. It can search recipes, add new ones, or help you cook the way you're used to: in chat, by voice. To connect, use the link: recipe-scaler.ru/mcp
For techies: yes, this is an MCP server.

Careful handling of your data
We are paranoid about your privacy.
The app works without sign-up: we don't know your email or your Google login. Even Telegram is only needed for saving recipes. Don't want it? Don't use it.
We don't use trackers or product analytics.
We don't allow AI models to train on your recipes.
Data export and an API are available, so we don't hold your data hostage.
More details: recipe-scaler.ru/#/privacy

If we've convinced you to try:
Go to app

If we haven't convinced you:
Write what's missing

Made by Mikhail Ozornin with Cursor. App idea inspired by app by Roman Shamin.
© Mikhail Ozornin, 2025&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;1.2 Особенности эксперимента&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Моделям были даны базовые ограничения и инструкции, не было никаких уточнений по стилю, дизайн-системе и прочему. На уточняющие вопросы я не отвечал, скипал их. Вмешательства в процессе не было, максимум — если агент чего-то ждал, я просил начать или продолжить.&lt;/li&gt;
&lt;li&gt;Все модели, кроме Опуса 4.7 работали на максимально возможной установке ризонинга или параметра его замещающего (эффорт для клод кода).&lt;/li&gt;
&lt;li&gt;Я специально не давал пожеланий по стилю, не прикладывал никакую дизайн-систему, не описывал более  важные и менее важные сценарии. Мне хотелось проверить не что я смогу задизайнить с ллм, а что сможет сам агент.&lt;/li&gt;
&lt;li&gt;Все тексты были на английском. Это небольшой чит для моделей — хороших шрифтов для английского заметно больше, чем для кириллицы. С кириллицей было бы похуже, я думаю. И шрифтовой выбор был бы более примитивный, и вообще смело бы выбрали шрифты, в которых вообще не бывает кириллицы.&lt;/li&gt;
&lt;li&gt;Для дизайна использовался Paper MCP, в качестве резервного варианта — Figma MCP. Paper MCP работает лучше, быстрее и открыт к большему числу агентов. Фигма не позволяет открытым агентам Опенкод и Кило с ними работать. С Figma MCP я тоже проверил, просто запусти вариантов поменьше.&lt;/li&gt;
&lt;li&gt;Чтобы сравнение было честнее, я не чинил макеты руками, максимум — изредка растягивал фрейм, если агент сделал артборд меньше собственного контента. Обидно было видеть, что вот же оно.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;1.3 Формальные цели&lt;/h3&gt;
&lt;p&gt;Что я хотел посмотреть и проверить:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Результат: насколько сделанные макеты вообще похожи на решение задачи, насколько результат можно использовать в работе, насколько красиво, аккуратно и в целом хорошо.&lt;/li&gt;
&lt;li&gt;Внутренности: насколько чисто сверстано внутри, хочется ли помыть после этого руки.&lt;/li&gt;
&lt;li&gt;Что по стоимости решения.&lt;/li&gt;
&lt;li&gt;Насколько сильно результат зависит от агента.&lt;/li&gt;
&lt;li&gt;Насколько сильно результат зависит от уровня ризонинга.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;В целом я хотел понять, какие модели и агенты имеет смысле для чего-то использовать, а какие не имеет.&lt;/p&gt;
&lt;h2&gt;2 Результаты&lt;/h2&gt;
&lt;p&gt;Разрыв между моделями огромный — некоторые верстали интересно и красиво. Другие верстали нейрослоп в худшем его понимании, третьи — вообще не могли справиться с тулами и выдавали сломанный макет.&lt;/p&gt;
&lt;p&gt;Лучший результат (всё — Опус 4.7 xhigh):&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__all@2x.png" class="e2-text-picture-link"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__all-2400@2x.png" width="658.5" height="1200" alt="" /&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__all@2x.png" class="e2-text-picture-link"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__all-2400@2x.png" width="566" height="1200" alt="" /&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__all@2x.png" class="e2-text-picture-link"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__all-2400@2x.png" width="756.5" height="1200" alt="" /&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Худший результат (Хайку, Квен 3.5 и одна из итераций Дипсика)&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__all@2x.png" class="e2-text-picture-link"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__all-2400@2x.png" width="1200" height="665.5" alt="" /&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__all@2x.png" class="e2-text-picture-link"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__all-2400@2x.png" width="922" height="1200" alt="" /&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;a href="https://mikeozornin.ru/blog/pictures/" class="e2-text-picture-link"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__all-2400@2x.png" width="1200" height="903" alt="paper__opencode__deepseek-v4-pro-2__all@2x.png" /&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Остальные находятся где-то между. Ниже будет табличка с результатами, а пока поделюсь впечатлениями.&lt;/p&gt;
&lt;h3&gt;2.1 Качество результата&lt;/h3&gt;
&lt;p&gt;Модели разбились на четыре категории:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Фенси-дизайн, из которого можно выжать что-то интересное&lt;/b&gt;&lt;br /&gt;
Такая модель один — Opus 4.7. Каждым этажом и микроформатом видно, что она выпендривается. Самые интересные и сложные промостраницы. Единственные промостраницы, которые не сверстаны как растянутая мобилка. Покажи такой дизайн издалека программисту, он подумает, что без дизайнера не обошлось.&lt;/p&gt;
&lt;p&gt;Примеры мелочей оттуда:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-1.1@2x.png" width="375" height="505" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-1.2@2x.png" width="1160" height="602" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Image-1.3@2x.png" width="1123" height="657" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Середнячки&lt;/b&gt;&lt;br /&gt;
Десктопный и мобильный интерфейс простой, но понятный, промостраница скучная (ну прямо как у меня сейчас). Нейродизайн видно сразу, но он хотя бы аккуратный и чистый. При этом явных косяков нет, использовать такое когда под рукой нет дизайнера вполне можно. Opus 4.6, Sonnet 4.6, GPT 5.4, Cursor Auto, Qwen 3.6 и с натяжкой GLM 5.1 (если справится с тулами).&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-2.1@2x.png" width="375" height="840" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-2.2@2x.png" width="375" height="840" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-2.3@2x.png" width="736" height="414" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Совсем уже типичный нейрослоп-дизайн&lt;/b&gt;&lt;br /&gt;
Нейрослоп в худших его проявлениях, заметней всего его на промостранице. Буквально не за что зацепиться глазами. Например, Minimax 2.7, Kimi 2.6 (чуть лучше, но все же здесь), Composer 2 Cursor (доученный Kimi 2.5) тоже недалеко ушел. Даже в целом неплохой Gemini 3.1 Про тут. Grok 4.3 тоже говорит «всем чмоки в этом чате».&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-3.1@2x.png" width="1400" height="2931" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-3.2@2x.png" width="1400" height="2038" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-3.3@2x.png" width="1400" height="2646" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Те модели, что не смогли справиться с тулами&lt;/b&gt;&lt;br /&gt;
Это были Qwen 3.5 39, и в 50% случаев GLM 5.1 с DeepSeek V4  Pro — иногда они справлялись, иногда нет. В эту категорию попадает Haiku 4.5 Антропика, а он, на минуточку, в 1.5 раза дороже GLM 5.1 и в 4 раза дороже, чем Minimax 2.7, которые показали себя лучше его.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-4.1@2x.png" width="1225" height="628" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-4.2@2x.png" width="755" height="449" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Многим не давалась концепция десктоп-приложения, некоторые делали эдиториал-сайт. Это было бы нормально в целом для сайта рецептов, но не для личного приложения менеджера рецептов. Явно я этого не формулировал, но как будто из контекста можно было догадаться.&lt;/p&gt;
&lt;p&gt;Мне кажется, что вот таким было пользоваться ежедневно было бы не очень удобно. Усиливается это с добавлением скилла (будет ниже), там у модели начинается просто горе от ума.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__desktop@2x.png" width="1400" height="2101" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;У самых слабых моделей всплывают типичный нейрослоп: рамки на рамках, градиенты или цветные плашки, мусор везде, эмодзи, плохая иерархия и ритм. Ощущение, что экраны собрали из того, что не пригодилось моделям получше.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Slop-1@2x.png" width="1400" height="670" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Slop-2@2x.png" width="1400" height="916" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Slop-3@2x.png" width="1320" height="480" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Slop-4@2x.png" width="1400" height="633" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Slop-5@2x.png" width="1400" height="2000" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Заметно, что у всех с мобильной версии лучше, чем с промо. Там в целом более простая верстка, меньше элементов, сильные ограничения (узкая колонка). Как следствие — верстка лучше, надежнее и крепче. Как только появляется широкая страница, многие не могут сделать лучше, чем просто растянуть мобильную верстку по ширина 375 → 1400.&lt;/p&gt;
&lt;p&gt;Кими 2.6 как-то справился с мобилкой, но не смог ничего на подобном уровне сделать с промостранице. Десктоп тоже плохой.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Mobile-vs-Promo@2x.png" width="907.5" height="739" alt="" /&gt;
&lt;/div&gt;
&lt;h3&gt;2.2 Качество верстки&lt;/h3&gt;
&lt;p&gt;В Paper все модели верстают примерно одинаково — нормально, в Фигме же ГПТ верстал совсем плохо. Все в одном фрейме, по сути — абсолютами. Кожаного дизайнера за такое бы на ревью не похвалили. Он же (ГПТ) в Пейпере верстал нормально, видимо тулы Пейпера попроще, получше и более понятны.&lt;/p&gt;
&lt;p&gt;Фигма — все сверстано в одном фрейме, размеры рандомные, по сути если бы в вебе все верстали абсолютами, это ГПТ 5.5.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/inside-figma-gpt-5.5-light@2x.png" width="1440" height="900" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Тот же ГПТ 5.5 в Пейпере — в целом все чисто, дом-структура нормальная, некоторые слои даже хорошо названы. Кратная разница.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/inside-paper-gpt-5.5-light@2x.png" width="1440" height="900" alt="" /&gt;
&lt;/div&gt;
&lt;h3&gt;2.3 Размышления и удивления по ходу эксперимента&lt;/h3&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Поразительно, насколько модели ГПТ плохи в дизайне. Как модели для разработки они в целом нормальные, и отторжения не вызывают, а для дизайна ужас. Причем на том одном эксперименте, что я делал, 5.5 оказалась даже хуже, чем 5.4, хотя дороже примерно вдвое. Единственная СОТА-модель (state of the art), которая проигрывает многим более слабым, в том числе китайцам.&lt;/li&gt;
&lt;li&gt;Гемини 3.1 показал себя очень плохо. И в Антигравити (их агент, форк винсёрфа) и в Курсоре. И если про Антигравити я могу понять, он очень плохо сделан, то Курсор — нормальный агент. Недопустимо плохо для модели такого уровня.&lt;/li&gt;
&lt;li&gt;Агент в целом не принципиально влияет на результат, он не может сделать из не-опус-модели опус-результат. Т. е. результат в этой простой задаче в первую очередь определяется моделью, и лишь потом агентом. При этом, разница все еще есть. ГПТ 5.4 в Курсоре показал себя даже лучше, чем в родном Кодексе.&lt;/li&gt;
&lt;li&gt;Курсор + Опус 4.7 оказался вдвое дороже чем та же модель в Кило, Курсор очень активно собирал обратную связь и постоянно себя скриншотил. Результат в целом мне тоже нравится больше. Особенно должна помочь такая&lt;/li&gt;
&lt;li&gt;У моделей есть стиль. ГПТ во всех агентах узнается, Опус 4.7 тоже узнается во всех. По результату я бы предположил, что Опус 4.7 и Опус 4.6 явно тяготеют к одной модели, стиль похожий. У Соннета стиль другой, это не просто обрезанный Опус, это разные модели. А вот Опус от снижение рисонинга (xhigh → med) делает хуже, но остается тем же Опусом по стилю.&lt;/li&gt;
&lt;li&gt;Модели, которые по ценам за токены совпадают, не совпадают в финальной цене. Формально ГПТ 5.5 и Опус 4.7 стоит одинаково (ГПТ — 30 долларов, Опус 4.7 — 25). Но это цена за миллион токенов, а тратят они по-разному. Именно 5.5 у меня нет, но был в Курсоре ГПТ 5.4 — у него 4.5 М токенов, а у Опуса (тоже в Курсоре) — 15 М.&lt;/li&gt;
&lt;li&gt;Разница между самым дорогим и дешевым вариантами — 410 раз. Понятно, что и разница между ними в качестве — тоже дофига, может даже больше, чем в 410 раз.&lt;/li&gt;
&lt;li&gt;Визуально работы Опуса неплохие, но разваливаются в мелочах. Начиная с того, что решение не той задачи, не того продукта, заканчивая версткой. Издалека красиво, но как начнешь смотреть — клинит от кринжа. Наверное примерно такой же уровень кринжа у технарей, когда приносишь им вайбкод-код. Почти все варианты проще выкинуть, чем пытаться доработать.&lt;/li&gt;
&lt;li&gt;Еще один неприятный результат — аккаунт на Опенроутере забанили от моделей ОпенАПИ, Клода и Гемини. Пока не могу сказать почему, пытаюсь разобраться.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;3 Все результаты по одному&lt;/h2&gt;
&lt;p&gt;Квоты для Клод кода указаны до недавнего двухкратного увеличения пятичасовой квоты. Т. е. нужно делить предположительно на два. Я не везде засек время или квоту, не везде квоту в целом можно было понять. Там, где написано токены — это и входящие, и исходящие токены, с учетом кеша, поэтому так много.&lt;/p&gt;
&lt;p&gt;Полная таблица результатов ниже.&lt;/p&gt;
&lt;h3&gt;3.1 Paper MCP&lt;/h3&gt;
&lt;div class="e2-text-table"&gt;
&lt;table cellpadding="0" cellspacing="0" border="0"&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Агент&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Модель + параметры&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Время&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Токены&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Стоимость&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Комментарий&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Antigravity&lt;/td&gt;
&lt;td&gt;Gemini 3.1 Pro, high&lt;/td&gt;
&lt;td&gt;15 мин&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Очень плохо использует тулы, чудовищная интеграция в инструмент&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;Opus 4.7, xhigh&lt;/td&gt;
&lt;td&gt;10—15 мин&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;75%+ квоты pro · 5h&lt;/td&gt;
&lt;td&gt;Недолго. Дорого. Офигенно.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;Opus 4.7, med&lt;/td&gt;
&lt;td&gt;5—10 мин&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;56% квоты pro · 5h&lt;/td&gt;
&lt;td&gt;Сохраняет стиль Опуса 4.7, упрощает реализацию&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;Opus 4.6, Max reasoning&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;37% квоты pro · 5h&lt;/td&gt;
&lt;td&gt;В целом выглядит как упрощенный Опус 4.7, сильно ближе к Соннету по общему лейауту&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;Sonnet 4.5, xhigh&lt;/td&gt;
&lt;td&gt;8 мин&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;25% квоты pro · 5h&lt;/td&gt;
&lt;td&gt;Существенно ближе к китайским моделям и моделям попроще. Аккуратно, но совсем нейтрально, совсем упрощено&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;Haiku 4.5&lt;/td&gt;
&lt;td&gt;3 мин&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;6% квоты pro · 5h&lt;/td&gt;
&lt;td&gt;Не справился даже с тулами. Нет ни одной причины использовать&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;GPT 5.5, xhigh&lt;/td&gt;
&lt;td&gt;15 мин&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;26% квоты plus · 5h&lt;/td&gt;
&lt;td&gt;Очень дешево по сравнению с опусом, результат соответствующий. Худший результат из СОТА-моделей (state of the art, которые)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;GPT 5.4, xhigh&lt;/td&gt;
&lt;td&gt;15 мин&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;17% квоты plus · 5h&lt;/td&gt;
&lt;td&gt;Удивительно, что мне этот вариант нравится даже больше, чем у ГПТ 5.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;Auto&lt;/td&gt;
&lt;td&gt;25 мин&lt;/td&gt;
&lt;td&gt;13.7M&lt;/td&gt;
&lt;td&gt;$4.33&lt;/td&gt;
&lt;td&gt;Поразительно хороший результат для Авто-режима. Не знаю кто делал, может быть общую задачу делал как раз Опус на лоу-ризонинге, а реализация была каким-то ГПТ-нано. Выбор стиля как будто от Опуса&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;Opus 4.7&lt;/td&gt;
&lt;td&gt;35 мин&lt;/td&gt;
&lt;td&gt;15M&lt;/td&gt;
&lt;td&gt;$12.30&lt;/td&gt;
&lt;td&gt;Вдвое дороже, чем Опус 4.7 у Кило. Очень много проверяет себя, скриншотил буквально каждый этап и каждый блок. Результат чуть лучше&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;GPT 5.4, xhigh&lt;/td&gt;
&lt;td&gt;11 мин&lt;/td&gt;
&lt;td&gt;4.5M&lt;/td&gt;
&lt;td&gt;$2.20&lt;/td&gt;
&lt;td&gt;Агент другой, модель узнается, это все тот же ГПТ 5.4, что был в Кодексе. Но тут как будто чуть лучше вышло.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;Gemini 3.1 Pro&lt;/td&gt;
&lt;td&gt;8 мин&lt;/td&gt;
&lt;td&gt;3.4M&lt;/td&gt;
&lt;td&gt;$2.01&lt;/td&gt;
&lt;td&gt;Результат сопоставимый с Гемини в Антигравити. Очень плохо для модели такого уровня.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;Grok 4.3&lt;/td&gt;
&lt;td&gt;~18 мин&lt;/td&gt;
&lt;td&gt;3M&lt;/td&gt;
&lt;td&gt;$1.65&lt;/td&gt;
&lt;td&gt;От Грока впечатления смешанные. Мобилка в целом норм, на уровне других. Промо хуже чем собраться. Я думал будет дешевле, Грок 4.1 был очень классный именно за счет того, что стоил ну очень мало.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;GLM 5.1 (z.ai coding plan)&lt;/td&gt;
&lt;td&gt;~7 мин&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;37% квоты lite · 5h&lt;/td&gt;
&lt;td&gt;ГЛМ в Курсоре почему-то не смог справиться с тулами&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;Composer 2&lt;/td&gt;
&lt;td&gt;5 мин&lt;/td&gt;
&lt;td&gt;1.3M&lt;/td&gt;
&lt;td&gt;$0.33&lt;/td&gt;
&lt;td&gt;Очень примитивно, но и зато очень дешево. Не соответствует тому уровню, что Курсор заявляет о своей модели, конечно. Но они честно говорили, что делают модель для кода в первую очередь&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source Craft&lt;/td&gt;
&lt;td&gt;Default&lt;/td&gt;
&lt;td&gt;7 мин&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;65 попугаев из 4500 квоты&lt;/td&gt;
&lt;td&gt;Вроде недорого, но пользоваться смысла нет, нейрослописный нейрослоп&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source Craft&lt;/td&gt;
&lt;td&gt;Default Thinking&lt;/td&gt;
&lt;td&gt;10 мин&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;74 попугаев из 4500 квоты&lt;/td&gt;
&lt;td&gt;Как будто Default и Default Thinkign модели в Яндекс Сорс Крафте не просто разные режимы одной модели, а разные модели: слишком разный результат, у рисонинг модели даже хуже.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kilo Code&lt;/td&gt;
&lt;td&gt;Opus 4.7 (Kilo cloud)&lt;/td&gt;
&lt;td&gt;27 мин&lt;/td&gt;
&lt;td&gt;6.3M&lt;/td&gt;
&lt;td&gt;$6.96&lt;/td&gt;
&lt;td&gt;Типичный Опус 4.7. Местами чисто, интересно, издалека дак прямо супер-пупер&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kilo Code&lt;/td&gt;
&lt;td&gt;Hy3 preview (Kilo cloud)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;1.6M&lt;/td&gt;
&lt;td&gt;$0.06&lt;/td&gt;
&lt;td&gt;Самая модная опенсорс-модель на опенроутере. Очень так себе.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kilo Code&lt;/td&gt;
&lt;td&gt;Qwen 3.6 Max Preview (Kilo cloud)&lt;/td&gt;
&lt;td&gt;17 мин&lt;/td&gt;
&lt;td&gt;2.2M&lt;/td&gt;
&lt;td&gt;$0.42&lt;/td&gt;
&lt;td&gt;В целом Квен для меня справился неплохо. Туповато, по крепко вполне. В промо просел как все. 1/30 от Опуса по цене.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kilo Code&lt;/td&gt;
&lt;td&gt;Qwen 3.5 397&lt;/td&gt;
&lt;td&gt;6 мин&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Не справился с тулами&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;Opus 4.7, xhigh reasoning (OpenRouter)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;2.7M&lt;/td&gt;
&lt;td&gt;$2.74&lt;/td&gt;
&lt;td&gt;Неплохо, что было бы в мобилке не знаю, потому что после этого экрана опенроутер меня забанил от американских СОТА-моделей&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;Kimi 2.6 (OpenRouter)&lt;/td&gt;
&lt;td&gt;42 мин&lt;/td&gt;
&lt;td&gt;3.62M&lt;/td&gt;
&lt;td&gt;$1.78&lt;/td&gt;
&lt;td&gt;Мобилка лучше остального, остальное плохо. Из забавного все дублировалось, но он потом через скриншоты обнаруживал и стирал сам. Из-за этого возился очень долго — 40+ минут.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;Grok 4.3 (OpenRouter)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;1.57M&lt;/td&gt;
&lt;td&gt;$1.09&lt;/td&gt;
&lt;td&gt;Грок уже был выше, но в отличие от Курсора, Опенкод с моделью вообще не справился, результат сильно хуже, чем у Курсора&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;DeepSeek V4 Pro (Deepseek Cloud), Max Reasoning&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;4.1M&lt;/td&gt;
&lt;td&gt;$0.09&lt;/td&gt;
&lt;td&gt;Дипсик очень дешев, но справился лишь один раз. Мобилку можно смотреть, остальное плохо&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;DeepSeek V4 Pro (Deepseek Cloud), Max Reasoning&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;2.5M&lt;/td&gt;
&lt;td&gt;$0.05&lt;/td&gt;
&lt;td&gt;Дипсик очень дешев, но справился лишь один раз. Мобилку можно смотреть, остальное плохо&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;GLM 5.1 (z.ai coding plan)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;В отличие от Курсора Опенкод смог добиться чего-то от ГЛМ, вышло в целом ок для его цены. Он стоит дешевле Хайку, которы не смог буквально ничего&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;Qwen 3.5 397&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Не смогло ничего&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;MiniMax 2.7 (OpenRouter)&lt;/td&gt;
&lt;td&gt;3 мин&lt;/td&gt;
&lt;td&gt;242K&lt;/td&gt;
&lt;td&gt;$0.03&lt;/td&gt;
&lt;td&gt;Невероятно быстро, невероятно дешево, качество соответствующее&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h3&gt;3.2 Figma MCP&lt;/h3&gt;
&lt;div class="e2-text-table"&gt;
&lt;table cellpadding="0" cellspacing="0" border="0"&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Агент&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Модель + параметры&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Время&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Токены&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Стоимость&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Комментарий&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;Opus 4.7, xhigh&lt;/td&gt;
&lt;td&gt;~19 мин&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;121% квоты pro · 5h&lt;/td&gt;
&lt;td&gt;Опус в своем стиле, издалека особенно, но сожрал больше целой 5-часовой квоты&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;GPT 5.5, xhigh&lt;/td&gt;
&lt;td&gt;20 мин&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;16% квоты plus · 5h&lt;/td&gt;
&lt;td&gt;В фигме смог чуть лучше, чем в пейпере. Верстает чудовищно просто&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;GLM 5.1 (z.ai coding plan)&lt;/td&gt;
&lt;td&gt;25 мин&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;13% квоты lite · 5h&lt;/td&gt;
&lt;td&gt;В целом похуже чем в пейпере. Макет десктопа снизу это я перетащил слой куда нужно, ГЛМ не осилил корректный ДОМ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;Composer 2&lt;/td&gt;
&lt;td&gt;6 мин&lt;/td&gt;
&lt;td&gt;1.4M&lt;/td&gt;
&lt;td&gt;$0.43&lt;/td&gt;
&lt;td&gt;Катастрофически плохо, хуже чем в пейпере&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h3&gt;Полный список всех картинок&lt;/h3&gt;
&lt;h4&gt;Paper MCP&lt;/h4&gt;
&lt;h3&gt;Antigravity + Gemini 3.1 Pro, high&lt;/h3&gt;
&lt;p&gt;Очень плохо использует тулы, чудовищная интеграция в инструмент.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="2.3668639053254"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__all-2400@2x.png" width="1200" height="507" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__desktop-2400@2x.png" width="2400" height="1543" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__mobile-2400@2x.png" width="375" height="1009" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__promo-2400@2x.png" width="2400" height="2373" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Claude Code + Opus 4.7, xhigh&lt;/h3&gt;
&lt;p&gt;Недолго. Дорого. Офигенно.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1317" data-ratio="0.54875"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__all-2400@2x.png" width="1317" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__desktop-2400@2x.png" width="1200" height="923" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__mobile-2400@2x.png" width="505" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__promo-2400@2x.png" width="563" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Claude Code + Opus 4.7, med&lt;/h3&gt;
&lt;p&gt;Сохраняет стиль Опуса 4.7, упрощает реализацию.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1723" data-ratio="0.71791666666667"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__all-2400@2x.png" width="1723" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__desktop-2400@2x.png" width="2400" height="1509" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__mobile-2400@2x.png" width="228" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__promo-2400@2x.png" width="737" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Claude Code + Opus 4.6, max&lt;/h3&gt;
&lt;p&gt;В целом выглядит как упрощенный Опус 4.7, сильно ближе к Соннету по общему лейауту.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1997" data-ratio="0.83208333333333"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__all-2400@2x.png" width="1997" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__desktop-2400@2x.png" width="2400" height="1797" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__mobile-2400@2x.png" width="485" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__promo-2400@2x.png" width="427" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Claude Code + Sonnet 4.5, xhigh&lt;/h3&gt;
&lt;p&gt;Существенно ближе к китайским моделям и моделям попроще. Аккуратно, но совсем нейтрально, совсем упрощено.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.6382252559727"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__all-2400@2x.png" width="2400" height="1465" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__desktop-2400@2x.png" width="2400" height="1543" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__mobile-2400@2x.png" width="269" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__promo-2400@2x.png" width="1681" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Claude Code + Haiku 4.5&lt;/h3&gt;
&lt;p&gt;Не справился даже с тулами. Нет ни одной причины использовать.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.8031555221638"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__all-2400@2x.png" width="2400" height="1331" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__desktop-2400@2x.png" width="2400" height="1543" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__mobile-2400@2x.png" width="375" height="812" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__promo-2400@2x.png" width="925" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Codex + GPT 5.5, xhigh&lt;/h3&gt;
&lt;p&gt;Очень дешево по сравнению с опусом, результат соответствующий. Худший результат из СОТА-моделей (state of the art, которые).&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="2.3976023976024"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__all-2400@2x.png" width="2400" height="1001" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__desktop-2400@2x.png" width="1200" height="840" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__mobile-2400@2x.png" width="703" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__promo-2400@2x.png" width="1200" height="1171" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Codex + GPT 5.4, xhigh&lt;/h3&gt;
&lt;p&gt;Удивительно, что мне этот вариант нравится даже больше, чем у ГПТ 5.5.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.5345268542199"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__all-2400@2x.png" width="1200" height="782" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__desktop-2400@2x.png" width="1185" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__mobile-2400@2x.png" width="289" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__promo-2400@2x.png" width="1575" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + Auto&lt;/h3&gt;
&lt;p&gt;Поразительно хороший результат для Авто-режима. Не знаю кто делал, может быть общую задачу делал как раз Опус на лоу-ризонинге, а реализация была каким-то ГПТ-нано. Выбор стиля как будто от Опуса.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="581" data-ratio="0.48416666666667"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__all-2400@2x.png" width="581" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__desktop-2400@2x.png" width="1599" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__mobile-2400@2x.png" width="569" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__promo-2400@2x.png" width="497" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + Opus 4.7&lt;/h3&gt;
&lt;p&gt;Вдвое дороже, чем Опус 4.7 у Кило. Очень много проверяет себя, скриншотил буквально каждый этап и каждый блок. Результат чуть лучше.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="566" data-ratio="0.47166666666667"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__all-2400@2x.png" width="566" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__desktop-2400@2x.png" width="778" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__mobile-2400@2x.png" width="193" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__promo-2400@2x.png" width="242" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + GPT 5.4, xhigh&lt;/h3&gt;
&lt;p&gt;Агент другой, модель узнается, это все тот же ГПТ 5.4, что был в Кодексе. Но тут как будто чуть лучше вышло.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.5065913370998"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__all-2400@2x.png" width="2400" height="1593" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__desktop-2400@2x.png" width="2400" height="2091" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__mobile-2400@2x.png" width="695" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__promo-2400@2x.png" width="773" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + Gemini 3.1 Pro&lt;/h3&gt;
&lt;p&gt;Результат сопоставимый с Гемини в Антигравити. Очень плохо для модели такого уровня.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.7416545718433"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__all-2400@2x.png" width="1200" height="689" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__desktop-2400@2x.png" width="2400" height="1543" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__mobile-2400@2x.png" width="479" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__promo-2400@2x.png" width="903" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + Grok 4.3&lt;/h3&gt;
&lt;p&gt;От Грока впечатления смешанные. Мобилка в целом норм, на уровне других. Промо хуже чем собраться. Я думал будет дешевле, Грок 4.1 был очень классный именно за счет того, что стоил ну очень мало.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.4888337468983"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__all-2400@2x.png" width="1200" height="806" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__desktop-2400@2x.png" width="2400" height="2057" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__mobile-2400@2x.png" width="563" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__promo-2400@2x.png" width="1527" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + GLM 5.1 (z.ai coding plan)&lt;/h3&gt;
&lt;p&gt;ГЛМ в Курсоре почему-то не смог справиться с тулами.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.4705882352941"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__all-2400@2x.png" width="1200" height="816" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__desktop-2400@2x.png" width="2400" height="1329" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__mobile-2400@2x.png" width="152" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__promo-2400@2x.png" width="975" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + Composer 2&lt;/h3&gt;
&lt;p&gt;Очень примитивно, но и зато очень дешево. Не соответствует тому уровню, что Курсор заявляет о своей модели, конечно. Но они честно говорили, что делают модель для кода в первую очередь.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="2.247191011236"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__all-2400@2x.png" width="1200" height="534" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__desktop-2400@2x.png" width="2400" height="859" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__mobile-2400@2x.png" width="375" height="1158" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__promo-2400@2x.png" width="1153" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Source Craft + Default&lt;/h3&gt;
&lt;p&gt;Вроде недорого, но пользоваться смысла нет, нейрослописный нейрослоп.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.1173184357542"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__all-2400@2x.png" width="1200" height="1074" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__desktop-2400@2x.png" width="1853" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__mobile-2400@2x.png" width="326" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__promo-2400@2x.png" width="573" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Source Craft + Default Thinking&lt;/h3&gt;
&lt;p&gt;Как будто Default и Default Thinkign модели в Яндекс Сорс Крафте не просто разные режимы одной модели, а разные модели: слишком разный результат, у рисонинг модели даже хуже.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="2.7272727272727"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__all-2400@2x.png" width="1200" height="440" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__desktop-2400@2x.png" width="2400" height="1543" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__mobile-2400@2x.png" width="375" height="800" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__promo-2400@2x.png" width="2400" height="2057" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Kilo Code + Opus 4.7 (Kilo cloud)&lt;/h3&gt;
&lt;p&gt;Типичный Опус 4.7. Местами чисто, интересно, издалека дак прямо супер-пупер.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1513" data-ratio="0.63041666666667"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__all-2400@2x.png" width="1513" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__desktop-2400@2x.png" width="2400" height="1289" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__mobile-2400@2x.png" width="553" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__promo-2400@2x.png" width="647" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Kilo Code + Hy3 preview (Kilo cloud)&lt;/h3&gt;
&lt;p&gt;Самая модная опенсорс-модель на опенроутере. Очень так себе.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="2.1447721179625"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__all-2400@2x.png" width="2400" height="1119" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__desktop-2400@2x.png" width="2400" height="1239" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__mobile-2400@2x.png" width="375" height="996" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__promo-2400@2x.png" width="1100" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Kilo Code + Qwen 3.6 Max Preview (Kilo cloud)&lt;/h3&gt;
&lt;p&gt;В целом Квен для меня справился неплохо. Туповато, по крепко вполне. В промо просел как все. 1/30 от Опуса по цене.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.1544011544012"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__all-2400@2x.png" width="2400" height="2079" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__desktop-2400@2x.png" width="2400" height="2313" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__mobile-2400@2x.png" width="643" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__promo-2400@2x.png" width="592" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Kilo Code + Qwen 3.5 397&lt;/h3&gt;
&lt;p&gt;Не справился с тулами.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="922" data-ratio="0.76833333333333"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__all-2400@2x.png" width="922" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__desktop-2400@2x.png" width="867" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__mobile-2400@2x.png" width="262" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__promo-2400@2x.png" width="394" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;OpenCode + Opus 4.7, xhigh reasoning (OpenRouter)&lt;/h3&gt;
&lt;p&gt;Неплохо, что было бы в мобилке не знаю, потому что после этого экрана опенроутер меня забанил от американских СОТА-моделей.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__opus-4.7__desktop-2400@2x.png" width="1200" height="1097" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__opus-4.7__desktop@2x.png"&gt;Десктоп&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;OpenCode + Kimi 2.6 (OpenRouter)&lt;/h3&gt;
&lt;p&gt;Мобилка лучше остального, остальное плохо. Из забавного все дублировалось, но он потом через скриншоты обнаруживал и стирал сам. Из-за этого возился очень долго — 40+ минут.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.3644115974986"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__all-2400@2x.png" width="2400" height="1759" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__desktop-2400@2x.png" width="2400" height="2287" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__mobile-2400@2x.png" width="609" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__promo-2400@2x.png" width="700" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;OpenCode + Grok 4.3 (OpenRouter)&lt;/h3&gt;
&lt;p&gt;Грок уже был выше, но в отличие от Курсора, Опенкод с моделью вообще не справился, результат сильно хуже, чем у Курсора.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.6371077762619"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__all-2400@2x.png" width="1200" height="733" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__desktop-2400@2x.png" width="1200" height="823" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__mobile-2400@2x.png" width="331" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__promo-2400@2x.png" width="840" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;OpenCode + DeepSeek V4 Pro (Deepseek Cloud), Max Reasoning&lt;/h3&gt;
&lt;p&gt;Дипсик очень дешев, но справился лишь один раз. Мобилку можно смотреть, остальное плохо.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.2377514182568"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__all-2400@2x.png" width="2400" height="1939" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__desktop-2400@2x.png" width="2400" height="2261" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__mobile-2400@2x.png" width="579" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__promo-2400@2x.png" width="635" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.328903654485"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__all-2400@2x.png" width="1200" height="903" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__desktop-2400@2x.png" width="2400" height="1543" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__mobile-2400@2x.png" width="190" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__promo-2400@2x.png" width="840" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;OpenCode + GLM 5.1 (z.ai coding plan)&lt;/h3&gt;
&lt;p&gt;В отличие от Курсора Опенкод смог добиться чего-то от ГЛМ, вышло в целом ок для его цены. Он стоит дешевле Хайку, которы не смог буквально ничего.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.1363636363636"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__all-2400@2x.png" width="1200" height="1056" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__desktop-2400@2x.png" width="2400" height="1545" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__mobile-2400@2x.png" width="332" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__promo-2400@2x.png" width="583" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;OpenCode + Qwen 3.5 397&lt;/h3&gt;
&lt;p&gt;Не смогло ничего.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.3644115974986"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__all-2400@2x.png" width="2400" height="1759" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__desktop-2400@2x.png" width="2400" height="1543" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__mobile-2400@2x.png" width="375" height="812" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__promo-2400@2x.png" width="700" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;OpenCode + MiniMax 2.7 (OpenRouter)&lt;/h3&gt;
&lt;p&gt;Невероятно быстро, невероятно дешево, качество соответствующее.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.819560272934"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__all-2400@2x.png" width="2400" height="1319" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__desktop-2400@2x.png" width="1200" height="1069" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__mobile-2400@2x.png" width="665" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__promo-2400@2x.png" width="1867" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Figma: Claude Code + Opus 4.7, xhigh&lt;/h3&gt;
&lt;p&gt;Опус в своем стиле, издалека особенно, но сожрал больше целой 5-часовой квоты.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1663" data-ratio="0.69291666666667"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__all-2400@2x.png" width="1663" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__desktop-2400@2x.png" width="1001" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__mobile-2400@2x.png" width="266" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__promo-2400@2x.png" width="711" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Figma: Codex + GPT 5.5, xhigh&lt;/h3&gt;
&lt;p&gt;В фигме смог чуть лучше, чем в пейпере. Верстает чудовищно просто.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.4616321559074"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__all-2400@2x.png" width="1200" height="821" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__desktop-2400@2x.png" width="1200" height="840" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__mobile-2400@2x.png" width="703" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__promo-2400@2x.png" width="750" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Figma: Cursor + GLM 5.1 (z.ai coding plan)&lt;/h3&gt;
&lt;p&gt;В целом похуже чем в пейпере. Макет десктопа снизу это я перетащил слой куда нужно, ГЛМ не осилил корректный ДОМ.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.5625"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__all-2400@2x.png" width="1200" height="768" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__desktop-2400@2x.png" width="1645" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__mobile-2400@2x.png" width="318" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__promo-2400@2x.png" width="1603" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + Composer 2&lt;/h3&gt;
&lt;p&gt;Катастрофически плохо, хуже чем в пейпере.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.4888337468983"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__all-2400@2x.png" width="1200" height="806" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__desktop-2400@2x.png" width="1200" height="823" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__mobile-2400@2x.png" width="268" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__promo-2400@2x.png" width="1527" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Полные картинки: &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__all@2x.png"&gt;Всё вместе&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__desktop@2x.png"&gt;Десктоп&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__mobile@2x.png"&gt;Мобильный &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__promo@2x.png"&gt;Промо&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;После основного эксперимента я реши попробовать дать скилл Impeccable и посмотреть как он повлияет. Тот же самый промт, но со скиллом. Полный конфиг — Claude Code + Opus 4.7, xhigh + Frontend Design Skill&lt;/p&gt;
&lt;p&gt;Сделал только один десктопный экран, много жрет, еще более фенси, чем было. Один экран сожрал 44% 5h · pro-квоты в клод коде. Как будто Опус стал еще более опусным и началось какое-то горе от дизайн-ума. Каждый пиксель кричит «смотри какой я красивый». Ошибки есть, но дизайн стал еще более дизайнерским.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-frontend-design__desktop-2400@2x.png" width="513.5" height="1200" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Полная картинка: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-frontend-design__desktop@2x.png"&gt;Десктоп&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;4 Сколько все это стоило, вы спросите&lt;/h2&gt;
&lt;p&gt;В целом в таблице есть цены, доллары в Курсоре виртуальные (входили в подписку), остальные реальные.&lt;/p&gt;
&lt;p&gt;~20 $ — модели&lt;br /&gt;
16 $ — Paper Pro с бо́льшим лимитом на MCP.&lt;br /&gt;
3×20 $ — подписки Клод, Кодекса и Курсора, но они уже были.&lt;/p&gt;
&lt;p&gt;&lt;aside class="aside-margin-right"&gt;См. график тут: &lt;a href="https://www.anthropic.com/news/claude-opus-4-7"&gt;anthropic.com/news/claude-opus-4-7&lt;/a&gt;&lt;/aside&gt;&lt;/p&gt;
&lt;p&gt;Самый дорогой вариант стоил бы 12,30 $ (Курсор + Опус 4.7), самый дешевый — 0,03 (Минимакс 2.7), разница — 410 раз. Опус работал не на 100%, если бы я включил макс-ризонинг, то было бы примерно ×2.&lt;/p&gt;
&lt;h2&gt;5 Будущие эксперименты&lt;/h2&gt;
&lt;p&gt;Что хотелось бы проверить еще, что не вошло в эту серию:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Проверить со скиллами: насколько те или иные скиллы могут улучшить дизайн.&lt;/li&gt;
&lt;li&gt;Проверить, задав стили, юзерсценарии и прочий контекст.&lt;/li&gt;
&lt;li&gt;Проверить, разрешив задавать уточняющие вопросы: про задачи, продукт, стиль и пользователя.&lt;/li&gt;
&lt;li&gt;Проверить, что будет, если дать ему грубый скетч интерфейса и довести до ума.&lt;/li&gt;
&lt;li&gt;Дать существующий экран и попросить добавить стиля или улучшить только интерфейс без полной переделки структуры.&lt;/li&gt;
&lt;li&gt;Дать почитать советы Горбунова по верстке и проверить снова.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;6 Выводы&lt;/h2&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Опус — на коне. Дорого и офигенно. Удивительно, что следующим идет даже не GPT. Ни 5.4, ни даже 5.5 и близко не стоят. Китайские модели, да даже авто-режим Cursor, делает лучше. Код GPT 5.4 пишет хорошо, объясняет и делает анализы — хорошо. Дизайн — провально.&lt;/li&gt;
&lt;li&gt;Китайские модели оверфиттятся на метрики и бенчмарки. В целом все модели за пределами больших лаб такие. По метрикам SWE они уже догнали и обогнали Опус, в реальной же жизни не способны сделать простую задачу. Некоторые даже не справляются с корректным вызовом тулов. Типичный пример — Минимакс 2.7, по всем метрикам — он очень хорош, в дизайне не может ничего. Хорош он в итоге только по скорости и цене (там прямо вау). Кто-то скажет, что дипсик тоже оверфит. Про него так однозначно не скажу: во-первых, дипсик один из макетов сделал заметно лучше, во-вторых у него до сих пор какие-то проблемы с вызовом тулов, как было в версии в 3.2. Лучший результат у тех китайских моделей, которые делают свою работу, не особенно крича — Квен 3.6 (но 3.5 так себе).&lt;/li&gt;
&lt;li&gt;Хорошая модель делает достататочно бессмысленным дизайн самими разработчиками и продактами, если только они не разбираются в дизайне. Редко, но бывают такие. Если нет, то модель сделает быстрее и лучше. Дизайнерам пока еще есть работа, можно выдохнуть на квартал.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;P. S.&lt;/h2&gt;
&lt;p&gt;Раз уж зашли, попробуйте &lt;a href="http://recipe-scaler.ru/#/about"&gt;recipe-scaler.ru&lt;/a&gt;, зря я что ли столько дизайн-экспериментов проводил? Если каждый десятый зайдет, у меня будет +1000% пользователей сразу.&lt;/p&gt;
&lt;p&gt;Если вдруг у кого есть подкаст, внутренние созвоны команды или просто захотите созвониться и поговорить про все это — зовите. В Мск и Питере могу и очно. &lt;a href="mailto:mike.ozornin@gmail.com"&gt;mike.ozornin@gmail.com&lt;/a&gt; или &lt;a href="https://t.me/mikeozornin"&gt;t.me/mikeozornin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Кстати, вот как выгдядит блок аттачей поста:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/llm-and-ui-design@2x.png" width="858" height="1293" alt="" /&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>Design with AI: I tested 33 models and I’m showing 130 generated images</title>
<guid isPermaLink="false">223</guid>
<link>https://mikeozornin.ru/blog/all/llm-and-ui-design-en/</link>
<pubDate>Fri, 01 May 2026 09:53:00 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/llm-and-ui-design-en/</comments>
<description>
&lt;p class="lead"&gt;I generated the same task with 33 different agents/models and I’m showing you 130 resulting images. The cost difference between the most expensive and the cheapest option is 410x.&lt;/p&gt;
&lt;p&gt;There’s also an original Russian version of this post: &lt;a href="https://mikeozornin.ru/blog/all/llm-and-ui-design/"&gt;mikeozornin.ru/blog/all/llm-and-ui-design&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sometimes colleagues, often non-designers, after announcements of various Claude-Design-type things, ask me what it’s like. How does it design, what is this thing in general. How good a design can you expect, can you take a design system, and how do you bring it to production afterwards. Maybe they want to hear that neural networks will replace not only them, the developers, but designers too — then we’ll go cut tables, roast coffee or work as couriers together.&lt;/p&gt;
&lt;p&gt;I decided to check how things stand with AI-design at the beginning of May 2026. The situation is changing fast, in half a year all of this will already be outdated, but for now it’s like this.&lt;/p&gt;
&lt;h2&gt;1 The experiment plan&lt;/h2&gt;
&lt;p&gt;I’ll describe the experiment plan: the procedure and the limitations, so that you can first, understand how much you can trust the results, and second, validate or repeat them yourself.&lt;/p&gt;
&lt;p&gt;TL;DR; The agents drew three screens: desktop, mobile and a promo page through Paper MCP.&lt;/p&gt;
&lt;h3&gt;1.1 Procedure&lt;/h3&gt;
&lt;p&gt;&lt;aside class="aside-margin-right"&gt;&lt;a href="https://recipe-scaler.ru/#/about"&gt;recipe-scaler.ru/#/about&lt;/a&gt;&lt;/aside&gt;&lt;/p&gt;
&lt;p&gt;I gave the same task to 33 different agents + models. The task sounded like «make three screens for the same product»: a desktop screen, a mobile screen and a promo page. As the product I took my own recipe app and fed the agents the text from the about page.&lt;/p&gt;
&lt;p&gt;I took all the popular agents and models that are currently of interest.&lt;/p&gt;
&lt;p&gt;Agents:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agents from the main model vendors: Claude Code, Codex, even Antigravity&lt;/li&gt;
&lt;li&gt;The most popular independent closed agent on the market: Cursor&lt;/li&gt;
&lt;li&gt;The two most popular open agents (and the only ones at the moment that deserve attention): Opencode and Kilo Code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Spoiler: in this task the agent wasn’t fundamentally important.&lt;/p&gt;
&lt;p&gt;Models were used both via native providers and third-party ones through Openrouter. Models:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Flagship models from American labs: Opus 4.7, Sonnet 4.6, Haiku 4.5, GPT 5.5 and 5.4, Gemini 3.1 Pro.&lt;/li&gt;
&lt;li&gt;Cursor Auto and Composer 2 models, as well as niche players like Grok 4.3,&lt;/li&gt;
&lt;li&gt;All popular Chinese models: Qwen 3.6 Max Preview (and the older Qwen 3.5 397B A17B), GLM 5.1, MiniMax 2.7, DeepSeek V4 Pro, Kimi 2.6.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All models received the task as a file on input, it was the same — only the file address differed — each model was given a fresh Paper file to exclude any influence from previous runs.&lt;/p&gt;
&lt;p&gt;The full prompt for Paper is below (the Figma variant differed only in changing the tool and the link).&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="markdown"&gt;I am creating a design for a product.

# Task
Create new pages:
1. A desktop screen interface — choose the main screen and design it. Screen width: 1400px.
2. A recipe screen interface for mobile. You need to design a recipe screen. Screen width: 375px.
3. A promo page describing the product. Screen width: 1400px.

# Where to create it and expected result
Where to create: TODO

If the mockups are long, you can make a tall frame/artboard/layout. You do not have to fit standard screen proportions.

Use Paper MCP to create the design.

Use English for the content inside the mockups.

You can use pregenerated images for illustations: '/Users/mike/work/git-repos/projects/ai workshops/design with ai-tmp'. If you have built-in tools for drawing images, you can use them too.

Below is the product information, which also describes the product capabilities.

# Product information

```
Recipe Scaler — app for those who cook
It reliably stores your recipes, helps you cook, works on your phone and computer, even offline.

Access from phone and computer
You will have access to your recipes both on your phone and computer. The apps will sync automatically, even from offline.
On each platform, the web application uses familiar ways of working: hotkeys on the computer, and standard gesture controls on the phone.
On the phone it works as PWA — install it on your home screen and you won't tell the difference from other apps.

Recalculate recipes for different serving sizes
This is where the app started: recalculating recipes for different serving sizes.
When recalculating, not only the ingredient list is updated, but also the recipe text.

Cooking assistance
The app will help you cook: it won't turn off the screen while cooking, will track time and even send push notifications. Timers are, of course, available on the computer too.

Shopping list
Add ingredients to your shopping list one by one from a recipe, or add the whole recipe at once.
Mark purchased items, sort the list the way you like, and share the list with the person going to the store.

Automagical recipe import
Recipe Scaler can import a recipe from text, a single link, or multiple links at once.
You can also upload a file in almost any text format and even photos of pages from a cookbook, notebook, or handwritten recipe journal.

AI assistant for recipes
If something goes wrong while you cook, the AI assistant can help you save the dish and figure out what to do next.
It can also explain the recipe, suggest the next step, and point out the equipment you may need.
It's like having a chef always at your fingertips, ready to answer your questions.

Discover section
Find new recipes in Discover.
Explore interesting authors, save recipes to your collection, and build your own shortlist of the best finds.

Health-friendly: nutrition calculation
Recipe Scaler will calculate the nutritional value (Kcal, protein, fat, carbs) for a dish and let you view it conveniently: for the entire dish, per 100 grams, or per serving.
If artificial intelligence makes a mistake in the numbers, you can always correct the nutritional value of the needed ingredient.

Cookbook
Download a public recipe collection (your own or someone else's) as a beautifully formatted PDF.
The cookbook includes recipes with photos, ingredients, and cooking instructions.

Telegram bot
Send the bot a recipe text or a link to it and the bot will save the recipe to your account.

Chrome extension for quick import
Install the Recipe Scaler Importer extension and import the recipe into your account in one click.

AI assistant integration
Connect your AI assistant to recipes. It can search recipes, add new ones, or help you cook the way you're used to: in chat, by voice. To connect, use the link: recipe-scaler.ru/mcp
For techies: yes, this is an MCP server.

Careful handling of your data
We are paranoid about your privacy.
The app works without sign-up: we don't know your email or your Google login. Even Telegram is only needed for saving recipes. Don't want it? Don't use it.
We don't use trackers or product analytics.
We don't allow AI models to train on your recipes.
Data export and an API are available, so we don't hold your data hostage.
More details: recipe-scaler.ru/#/privacy

If we've convinced you to try:
Go to app

If we haven't convinced you:
Write what's missing

Made by Mikhail Ozornin with Cursor. App idea inspired by app by Roman Shamin.
© Mikhail Ozornin, 2025&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;1.2 Particulars of the experiment&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The models were given basic limitations and instructions, there were no clarifications about style, design system and so on. I didn’t answer clarifying questions, I just skipped them. There was no intervention in the process — at most, if the agent was waiting for something, I asked it to start or continue.&lt;/li&gt;
&lt;li&gt;All models except Opus 4.7 worked on the maximum possible reasoning setting or its substitute parameter (effort for Claude Code).&lt;/li&gt;
&lt;li&gt;I deliberately didn’t give any preferences about style, didn’t attach any design system, didn’t describe more important and less important scenarios. I wanted to check not what I could design with an LLM, but what the agent itself could do.&lt;/li&gt;
&lt;li&gt;All texts were in English. This is a small cheat for the models — there are noticeably more good fonts for English than for Cyrillic. With Cyrillic it would be worse, I think. The font choice would be more primitive, and they would have boldly picked fonts that don’t have Cyrillic at all.&lt;/li&gt;
&lt;li&gt;For design I used Paper MCP, with Figma MCP as a backup option. Paper MCP works better, faster and is open to a larger number of agents. Figma doesn’t let the open agents Opencode and Kilo work with it. I also tested with Figma MCP, just launched fewer variants.&lt;/li&gt;
&lt;li&gt;To make the comparison fairer, I didn’t fix the mockups by hand — at most I occasionally stretched the frame if the agent made the artboard smaller than its own content. It was a shame to see that it was right there.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;1.3 Formal goals&lt;/h3&gt;
&lt;p&gt;What I wanted to look at and check:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The result: how close the produced mockups are to solving the task at all, how usable the result is at work, how beautiful, neat and overall good it is.&lt;/li&gt;
&lt;li&gt;The internals: how cleanly it’s laid out inside, whether you want to wash your hands after this.&lt;/li&gt;
&lt;li&gt;What about the cost of the solution.&lt;/li&gt;
&lt;li&gt;How much the result depends on the agent.&lt;/li&gt;
&lt;li&gt;How much the result depends on the reasoning level.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In general, I wanted to understand which models and agents make sense to use for something, and which don’t.&lt;/p&gt;
&lt;h2&gt;2 Results&lt;/h2&gt;
&lt;p&gt;The gap between the models is huge — some laid things out interestingly and beautifully. Others laid out neuro-slop in its worst sense, the third group couldn’t cope with the tools at all and produced a broken mockup.&lt;/p&gt;
&lt;p&gt;Best result (everything is Opus 4.7 xhigh):&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__all@2x.png" class="e2-text-picture-link"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__all-2400@2x.png" width="658.5" height="1200" alt="" /&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__all@2x.png" class="e2-text-picture-link"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__all-2400@2x.png" width="566" height="1200" alt="" /&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__all@2x.png" class="e2-text-picture-link"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__all-2400@2x.png" width="756.5" height="1200" alt="" /&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Worst result (Haiku, Qwen 3.5 and one of the DeepSeek iterations)&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__all@2x.png" class="e2-text-picture-link"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__all-2400@2x.png" width="1200" height="665.5" alt="" /&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__all@2x.png" class="e2-text-picture-link"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__all-2400@2x.png" width="922" height="1200" alt="" /&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;a href="https://mikeozornin.ru/blog/pictures/" class="e2-text-picture-link"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__all-2400@2x.png" width="1200" height="903" alt="paper__opencode__deepseek-v4-pro-2__all@2x.png" /&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;The rest are somewhere in between. Below there will be a table with the results, but for now I’ll share my impressions.&lt;/p&gt;
&lt;h3&gt;2.1 Quality of the result&lt;/h3&gt;
&lt;p&gt;The models split into four categories:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Fancy design from which you can squeeze something interesting&lt;/b&gt;&lt;br /&gt;
There’s only one such model — Opus 4.7. You can see on every floor and micro-format that it’s showing off. The most interesting and complex promo pages. The only promo pages that aren’t laid out as a stretched mobile screen. Show such a design to a programmer from afar — they’ll think a designer was involved.&lt;/p&gt;
&lt;p&gt;Examples of small details from there:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-1.1@2x.png" width="375" height="505" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-1.2@2x.png" width="1160" height="602" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Image-1.3@2x.png" width="1123" height="657" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Mid-tier&lt;/b&gt;&lt;br /&gt;
Desktop and mobile interface are simple but understandable, the promo page is boring (literally like mine right now). You can immediately see it’s neuro-design, but at least it’s neat and clean. At the same time, there are no obvious mess-ups, you can quite use this when there’s no designer at hand. Opus 4.6, Sonnet 4.6, GPT 5.4, Cursor Auto, Qwen 3.6 and, with a stretch, GLM 5.1 (if it can handle the tools).&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-2.1@2x.png" width="375" height="840" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-2.2@2x.png" width="375" height="840" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-2.3@2x.png" width="736" height="414" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;The completely typical neuro-slop design&lt;/b&gt;&lt;br /&gt;
Neuro-slop in its worst manifestations, most noticeable on the promo page. Literally nothing for your eyes to grab onto. For example, Minimax 2.7, Kimi 2.6 (slightly better, but still here), Cursor’s Composer 2 (a fine-tuned Kimi 2.5) is not far behind. Even the generally not-bad Gemini 3.1 Pro is here. Grok 4.3 also says «hi everyone in this chat».&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-3.1@2x.png" width="1400" height="2931" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-3.2@2x.png" width="1400" height="2038" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-3.3@2x.png" width="1400" height="2646" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;The models that couldn’t handle the tools&lt;/b&gt;&lt;br /&gt;
These were Qwen 3.5 39, and in 50% of cases GLM 5.1 with DeepSeek V4 Pro — sometimes they managed, sometimes not. This category includes Anthropic’s Haiku 4.5, and it, by the way, is 1.5x more expensive than GLM 5.1 and 4x more expensive than Minimax 2.7, which performed better than it.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-4.1@2x.png" width="1225" height="628" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Images-4.2@2x.png" width="755" height="449" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Many couldn’t grasp the concept of a desktop application, some made an editorial site. That would be fine in general for a recipe website, but not for a personal recipe manager app. I didn’t explicitly formulate this, but it’s like you could have guessed from context.&lt;/p&gt;
&lt;p&gt;I think it would be inconvenient to use something like this daily. This gets amplified when you add a skill (will be below), there the model gets a serious case of grief from too much thinking.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__desktop@2x.png" width="1400" height="2101" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;In the weakest models, typical neuro-slop surfaces: frames on frames, gradients or colored blocks, junk everywhere, emoji, bad hierarchy and rhythm. The feeling that the screens were assembled from things that the better models didn’t need.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Slop-1@2x.png" width="1400" height="670" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Slop-2@2x.png" width="1400" height="916" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Slop-3@2x.png" width="1320" height="480" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Slop-4@2x.png" width="1400" height="633" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Slop-5@2x.png" width="1400" height="2000" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;It’s noticeable that everyone does better with the mobile version than with the promo. There the layout is generally simpler, fewer elements, strong limitations (narrow column). As a result — the layout is better, more reliable, more solid. As soon as a wide page appears, many can’t do better than just stretching the mobile layout to width 375 → 1400.&lt;/p&gt;
&lt;p&gt;Kimi 2.6 somehow handled the mobile, but couldn’t do anything at a similar level for the promo page. The desktop is also bad.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/Mobile-vs-Promo@2x.png" width="907.5" height="739" alt="" /&gt;
&lt;/div&gt;
&lt;h3&gt;2.2 Quality of the layout&lt;/h3&gt;
&lt;p&gt;In Paper all models lay things out roughly the same way — normally, but in Figma GPT laid things out really badly. Everything in one frame, essentially — using absolutes. A human designer wouldn’t get praised on review for this. The same GPT in Paper laid things out normally, apparently Paper’s tools are simpler, better and more understandable.&lt;/p&gt;
&lt;p&gt;Figma — everything is laid out in one frame, sizes are random, essentially as if on the web everyone laid things out with absolutes — this is GPT 5.5.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/inside-figma-gpt-5.5-light@2x.png" width="1440" height="900" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;The same GPT 5.5 in Paper — in general everything is clean, the DOM structure is normal, some layers are even well named. A multifold difference.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/inside-paper-gpt-5.5-light@2x.png" width="1440" height="900" alt="" /&gt;
&lt;/div&gt;
&lt;h3&gt;2.3 Thoughts and surprises during the experiment&lt;/h3&gt;
&lt;ol start="1"&gt;
&lt;li&gt;It’s amazing how bad GPT models are at design. As development models they’re generally fine and don’t cause rejection, but for design — horror. Moreover, in the one experiment I did, 5.5 turned out to be even worse than 5.4, even though it’s about twice as expensive. The only SOTA model (state of the art) that loses to many weaker ones, including the Chinese.&lt;/li&gt;
&lt;li&gt;Gemini 3.1 performed very badly. Both in Antigravity (their agent, a fork of Windsurf) and in Cursor. And if I can understand Antigravity, it’s very poorly made, but Cursor is a normal agent. Unacceptably bad for a model of this level.&lt;/li&gt;
&lt;li&gt;The agent in general doesn’t fundamentally affect the result, it can’t make an opus-result out of a non-opus model. That is, the result in this simple task is first determined by the model, and only then by the agent. At the same time, there’s still a difference. GPT 5.4 in Cursor showed itself even better than in its native Codex.&lt;/li&gt;
&lt;li&gt;Cursor + Opus 4.7 turned out to be twice as expensive as the same model in Kilo, Cursor was very actively collecting feedback and constantly screenshotting itself. I also like the result more overall. Such a thing should help especially.&lt;/li&gt;
&lt;li&gt;Models have a style. GPT is recognizable across all agents, Opus 4.7 is also recognizable across all of them. By the result I’d assume that Opus 4.7 and Opus 4.6 clearly gravitate to one model, the style is similar. Sonnet has a different style, this is not just a cut-down Opus, these are different models. But Opus gets worse from lowering the reasoning (xhigh → med), but remains the same Opus in style.&lt;/li&gt;
&lt;li&gt;Models that match in token prices don’t match in final price. Formally, GPT 5.5 and Opus 4.7 cost the same (GPT — 30 dollars, Opus 4.7 — 25). But that’s the price per million tokens, and they spend differently. I don’t have 5.5 specifically, but there was GPT 5.4 in Cursor — it has 4.5M tokens, and Opus (also in Cursor) — 15M.&lt;/li&gt;
&lt;li&gt;The difference between the most expensive and cheapest options is 410x. It’s clear that the difference between them in quality is also a lot, maybe even more than 410x.&lt;/li&gt;
&lt;li&gt;Visually Opus’s works are not bad, but they fall apart in the details. Starting from solving the wrong task, the wrong product, ending with layout. From afar it’s beautiful, but as soon as you start looking — you cringe. Probably approximately the same level of cringe that techies have when you bring them vibe-coded code. Almost all variants are easier to throw away than to try to refine.&lt;/li&gt;
&lt;li&gt;Another unpleasant result — my Openrouter account was banned from OpenAI, Claude and Gemini models. I can’t yet say why, trying to figure it out.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;3 All the results in one place&lt;/h2&gt;
&lt;p&gt;Quotas for Claude Code are stated before the recent 2x increase of the five-hour quota. That is, you presumably need to divide by two. I didn’t always note the time or quota, and the quota wasn’t always understandable in general. Where it says tokens — those are both incoming and outgoing tokens, including cache, which is why so many.&lt;/p&gt;
&lt;p&gt;The full results table is below.&lt;/p&gt;
&lt;h3&gt;3.1 Paper MCP&lt;/h3&gt;
&lt;div class="e2-text-table"&gt;
&lt;table cellpadding="0" cellspacing="0" border="0"&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Agent&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Model + parameters&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Tokens&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Cost&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Comment&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Antigravity&lt;/td&gt;
&lt;td&gt;Gemini 3.1 Pro, high&lt;/td&gt;
&lt;td&gt;15 min&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Very bad at using tools, monstrous integration into the tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;Opus 4.7, xhigh&lt;/td&gt;
&lt;td&gt;10—15 min&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;75%+ of pro · 5h quota&lt;/td&gt;
&lt;td&gt;Quick. Expensive. Awesome.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;Opus 4.7, med&lt;/td&gt;
&lt;td&gt;5—10 min&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;56% of pro · 5h quota&lt;/td&gt;
&lt;td&gt;Keeps the Opus 4.7 style, simplifies the implementation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;Opus 4.6, Max reasoning&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;37% of pro · 5h quota&lt;/td&gt;
&lt;td&gt;In general looks like a simplified Opus 4.7, much closer to Sonnet in overall layout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;Sonnet 4.5, xhigh&lt;/td&gt;
&lt;td&gt;8 min&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;25% of pro · 5h quota&lt;/td&gt;
&lt;td&gt;Substantially closer to the Chinese models and the simpler ones. Neat, but completely neutral, completely simplified&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;Haiku 4.5&lt;/td&gt;
&lt;td&gt;3 min&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;6% of pro · 5h quota&lt;/td&gt;
&lt;td&gt;Didn’t even cope with the tools. There’s not a single reason to use it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;GPT 5.5, xhigh&lt;/td&gt;
&lt;td&gt;15 min&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;26% of plus · 5h quota&lt;/td&gt;
&lt;td&gt;Very cheap compared to opus, the result is accordingly. The worst result among SOTA models (state of the art, that is)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;GPT 5.4, xhigh&lt;/td&gt;
&lt;td&gt;15 min&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;17% of plus · 5h quota&lt;/td&gt;
&lt;td&gt;Surprisingly, I like this variant even more than GPT 5.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;Auto&lt;/td&gt;
&lt;td&gt;25 min&lt;/td&gt;
&lt;td&gt;13.7M&lt;/td&gt;
&lt;td&gt;$4.33&lt;/td&gt;
&lt;td&gt;A surprisingly good result for Auto mode. I don’t know who was doing it, maybe Opus on low-reasoning was doing the overall task, and the implementation was some GPT-nano. The style choice is like from Opus&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;Opus 4.7&lt;/td&gt;
&lt;td&gt;35 min&lt;/td&gt;
&lt;td&gt;15M&lt;/td&gt;
&lt;td&gt;$12.30&lt;/td&gt;
&lt;td&gt;Twice as expensive as Opus 4.7 at Kilo. Checks itself a lot, screenshotted literally every stage and every block. The result is slightly better&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;GPT 5.4, xhigh&lt;/td&gt;
&lt;td&gt;11 min&lt;/td&gt;
&lt;td&gt;4.5M&lt;/td&gt;
&lt;td&gt;$2.20&lt;/td&gt;
&lt;td&gt;The agent is different, the model is recognizable, it’s the same GPT 5.4 that was in Codex. But here it turned out slightly better.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;Gemini 3.1 Pro&lt;/td&gt;
&lt;td&gt;8 min&lt;/td&gt;
&lt;td&gt;3.4M&lt;/td&gt;
&lt;td&gt;$2.01&lt;/td&gt;
&lt;td&gt;Result comparable to Gemini in Antigravity. Very bad for a model of this level.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;Grok 4.3&lt;/td&gt;
&lt;td&gt;~18 min&lt;/td&gt;
&lt;td&gt;3M&lt;/td&gt;
&lt;td&gt;$1.65&lt;/td&gt;
&lt;td&gt;Mixed impressions from Grok. Mobile is generally fine, on the level of others. Promo is worse than ones to collect. I thought it’d be cheaper, Grok 4.1 was very cool precisely because it cost very little.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;GLM 5.1 (z.ai coding plan)&lt;/td&gt;
&lt;td&gt;~7 min&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;37% of lite · 5h quota&lt;/td&gt;
&lt;td&gt;GLM in Cursor for some reason couldn’t cope with the tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;Composer 2&lt;/td&gt;
&lt;td&gt;5 min&lt;/td&gt;
&lt;td&gt;1.3M&lt;/td&gt;
&lt;td&gt;$0.33&lt;/td&gt;
&lt;td&gt;Very primitive, but also very cheap. Doesn’t match the level Cursor claims for its model, of course. But they honestly said they’re making a model for code first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source Craft&lt;/td&gt;
&lt;td&gt;Default&lt;/td&gt;
&lt;td&gt;7 min&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;65 units of 4500 quota&lt;/td&gt;
&lt;td&gt;Seems inexpensive, but no point in using it, neuro-slop neuro-slop&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source Craft&lt;/td&gt;
&lt;td&gt;Default Thinking&lt;/td&gt;
&lt;td&gt;10 min&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;74 units of 4500 quota&lt;/td&gt;
&lt;td&gt;It’s like Default and Default Thinking models in Yandex Source Craft are not just different modes of one model, but different models: too different a result, with the reasoning model even worse.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kilo Code&lt;/td&gt;
&lt;td&gt;Opus 4.7 (Kilo cloud)&lt;/td&gt;
&lt;td&gt;27 min&lt;/td&gt;
&lt;td&gt;6.3M&lt;/td&gt;
&lt;td&gt;$6.96&lt;/td&gt;
&lt;td&gt;Typical Opus 4.7. Clean in places, interesting, from afar it’s super-duper&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kilo Code&lt;/td&gt;
&lt;td&gt;Hy3 preview (Kilo cloud)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;1.6M&lt;/td&gt;
&lt;td&gt;$0.06&lt;/td&gt;
&lt;td&gt;The trendiest open-source model on Openrouter. Very so-so.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kilo Code&lt;/td&gt;
&lt;td&gt;Qwen 3.6 Max Preview (Kilo cloud)&lt;/td&gt;
&lt;td&gt;17 min&lt;/td&gt;
&lt;td&gt;2.2M&lt;/td&gt;
&lt;td&gt;$0.42&lt;/td&gt;
&lt;td&gt;In general Qwen did decently for me. A bit dim, but pretty solid. Sagged in promo like everyone. 1/30 of Opus’s price.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kilo Code&lt;/td&gt;
&lt;td&gt;Qwen 3.5 397&lt;/td&gt;
&lt;td&gt;6 min&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Didn’t cope with the tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;Opus 4.7, xhigh reasoning (OpenRouter)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;2.7M&lt;/td&gt;
&lt;td&gt;$2.74&lt;/td&gt;
&lt;td&gt;Not bad, what would have been in mobile I don’t know because after this screen Openrouter banned me from American SOTA models&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;Kimi 2.6 (OpenRouter)&lt;/td&gt;
&lt;td&gt;42 min&lt;/td&gt;
&lt;td&gt;3.62M&lt;/td&gt;
&lt;td&gt;$1.78&lt;/td&gt;
&lt;td&gt;Mobile is better than the rest, the rest is bad. The funny thing is everything was duplicated, but then through screenshots it discovered and erased it itself. Because of this it fussed for a very long time — 40+ minutes.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;Grok 4.3 (OpenRouter)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;1.57M&lt;/td&gt;
&lt;td&gt;$1.09&lt;/td&gt;
&lt;td&gt;Grok was already above, but unlike Cursor, Opencode couldn’t handle the model at all, the result is much worse than Cursor’s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;DeepSeek V4 Pro (Deepseek Cloud), Max Reasoning&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;4.1M&lt;/td&gt;
&lt;td&gt;$0.09&lt;/td&gt;
&lt;td&gt;DeepSeek is very cheap, but managed only once. Mobile is watchable, the rest is bad&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;DeepSeek V4 Pro (Deepseek Cloud), Max Reasoning&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;2.5M&lt;/td&gt;
&lt;td&gt;$0.05&lt;/td&gt;
&lt;td&gt;DeepSeek is very cheap, but managed only once. Mobile is watchable, the rest is bad&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;GLM 5.1 (z.ai coding plan)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Unlike Cursor, Opencode managed to get something out of GLM, turned out generally OK for its price. It costs less than Haiku, which couldn’t do literally anything&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;Qwen 3.5 397&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Couldn’t do anything&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenCode&lt;/td&gt;
&lt;td&gt;MiniMax 2.7 (OpenRouter)&lt;/td&gt;
&lt;td&gt;3 min&lt;/td&gt;
&lt;td&gt;242K&lt;/td&gt;
&lt;td&gt;$0.03&lt;/td&gt;
&lt;td&gt;Incredibly fast, incredibly cheap, the quality is accordingly&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h3&gt;3.2 Figma MCP&lt;/h3&gt;
&lt;div class="e2-text-table"&gt;
&lt;table cellpadding="0" cellspacing="0" border="0"&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Agent&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Model + parameters&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Tokens&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Cost&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Comment&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;Opus 4.7, xhigh&lt;/td&gt;
&lt;td&gt;~19 min&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;121% of pro · 5h quota&lt;/td&gt;
&lt;td&gt;Opus in its style, especially from afar, but ate more than a full 5-hour quota&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;GPT 5.5, xhigh&lt;/td&gt;
&lt;td&gt;20 min&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;16% of plus · 5h quota&lt;/td&gt;
&lt;td&gt;In Figma it managed slightly better than in Paper. Lays things out monstrously simply&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;GLM 5.1 (z.ai coding plan)&lt;/td&gt;
&lt;td&gt;25 min&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;13% of lite · 5h quota&lt;/td&gt;
&lt;td&gt;In general worse than in Paper. The desktop layout on the bottom is me dragging a layer to where it needs to go, GLM didn’t master a correct DOM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;Composer 2&lt;/td&gt;
&lt;td&gt;6 min&lt;/td&gt;
&lt;td&gt;1.4M&lt;/td&gt;
&lt;td&gt;$0.43&lt;/td&gt;
&lt;td&gt;Catastrophically bad, worse than in Paper&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h3&gt;Full list of all the images&lt;/h3&gt;
&lt;h4&gt;Paper MCP&lt;/h4&gt;
&lt;h3&gt;Antigravity + Gemini 3.1 Pro, high&lt;/h3&gt;
&lt;p&gt;Very bad at using tools, monstrous integration into the tool.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="2.3668639053254"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__all-2400@2x.png" width="1200" height="507" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__desktop-2400@2x.png" width="2400" height="1543" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__mobile-2400@2x.png" width="375" height="1009" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__promo-2400@2x.png" width="2400" height="2373" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__antigravity__gemini-3.1-pro__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Claude Code + Opus 4.7, xhigh&lt;/h3&gt;
&lt;p&gt;Quick. Expensive. Awesome.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1317" data-ratio="0.54875"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__all-2400@2x.png" width="1317" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__desktop-2400@2x.png" width="1200" height="923" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__mobile-2400@2x.png" width="505" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__promo-2400@2x.png" width="563" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Claude Code + Opus 4.7, med&lt;/h3&gt;
&lt;p&gt;Keeps the Opus 4.7 style, simplifies the implementation.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1723" data-ratio="0.71791666666667"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__all-2400@2x.png" width="1723" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__desktop-2400@2x.png" width="2400" height="1509" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__mobile-2400@2x.png" width="228" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__promo-2400@2x.png" width="737" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.7-med__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Claude Code + Opus 4.6, max&lt;/h3&gt;
&lt;p&gt;In general looks like a simplified Opus 4.7, much closer to Sonnet in overall layout.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1997" data-ratio="0.83208333333333"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__all-2400@2x.png" width="1997" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__desktop-2400@2x.png" width="2400" height="1797" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__mobile-2400@2x.png" width="485" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__promo-2400@2x.png" width="427" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-4.6__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Claude Code + Sonnet 4.5, xhigh&lt;/h3&gt;
&lt;p&gt;Substantially closer to the Chinese models and the simpler ones. Neat, but completely neutral, completely simplified.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.6382252559727"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__all-2400@2x.png" width="2400" height="1465" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__desktop-2400@2x.png" width="2400" height="1543" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__mobile-2400@2x.png" width="269" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__promo-2400@2x.png" width="1681" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__sonnet-4.6__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Claude Code + Haiku 4.5&lt;/h3&gt;
&lt;p&gt;Didn’t even cope with the tools. There’s not a single reason to use it.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.8031555221638"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__all-2400@2x.png" width="2400" height="1331" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__desktop-2400@2x.png" width="2400" height="1543" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__mobile-2400@2x.png" width="375" height="812" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__promo-2400@2x.png" width="925" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__haiku__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Codex + GPT 5.5, xhigh&lt;/h3&gt;
&lt;p&gt;Very cheap compared to opus, the result is accordingly. The worst result among SOTA models (state of the art, that is).&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="2.3976023976024"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__all-2400@2x.png" width="2400" height="1001" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__desktop-2400@2x.png" width="1200" height="840" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__mobile-2400@2x.png" width="703" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__promo-2400@2x.png" width="1200" height="1171" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.5__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Codex + GPT 5.4, xhigh&lt;/h3&gt;
&lt;p&gt;Surprisingly, I like this variant even more than GPT 5.5.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.5345268542199"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__all-2400@2x.png" width="1200" height="782" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__desktop-2400@2x.png" width="1185" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__mobile-2400@2x.png" width="289" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__promo-2400@2x.png" width="1575" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__codex__gpt-5.4__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + Auto&lt;/h3&gt;
&lt;p&gt;A surprisingly good result for Auto mode. I don’t know who was doing it, maybe Opus on low-reasoning was doing the overall task, and the implementation was some GPT-nano. The style choice is like from Opus.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="581" data-ratio="0.48416666666667"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__all-2400@2x.png" width="581" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__desktop-2400@2x.png" width="1599" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__mobile-2400@2x.png" width="569" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__promo-2400@2x.png" width="497" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__auto__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + Opus 4.7&lt;/h3&gt;
&lt;p&gt;Twice as expensive as Opus 4.7 at Kilo. Checks itself a lot, screenshotted literally every stage and every block. The result is slightly better.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="566" data-ratio="0.47166666666667"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__all-2400@2x.png" width="566" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__desktop-2400@2x.png" width="778" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__mobile-2400@2x.png" width="193" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__promo-2400@2x.png" width="242" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__opus-4.7__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + GPT 5.4, xhigh&lt;/h3&gt;
&lt;p&gt;The agent is different, the model is recognizable, it’s the same GPT 5.4 that was in Codex. But here it turned out slightly better.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.5065913370998"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__all-2400@2x.png" width="2400" height="1593" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__desktop-2400@2x.png" width="2400" height="2091" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__mobile-2400@2x.png" width="695" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__promo-2400@2x.png" width="773" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gpt-5.4__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + Gemini 3.1 Pro&lt;/h3&gt;
&lt;p&gt;Result comparable to Gemini in Antigravity. Very bad for a model of this level.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.7416545718433"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__all-2400@2x.png" width="1200" height="689" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__desktop-2400@2x.png" width="2400" height="1543" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__mobile-2400@2x.png" width="479" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__promo-2400@2x.png" width="903" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__gemini-3.1-pro__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + Grok 4.3&lt;/h3&gt;
&lt;p&gt;Mixed impressions from Grok. Mobile is generally fine, on the level of others. Promo is worse than ones to collect. I thought it’d be cheaper, Grok 4.1 was very cool precisely because it cost very little.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.4888337468983"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__all-2400@2x.png" width="1200" height="806" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__desktop-2400@2x.png" width="2400" height="2057" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__mobile-2400@2x.png" width="563" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__promo-2400@2x.png" width="1527" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__grok-4.3__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + GLM 5.1 (z.ai coding plan)&lt;/h3&gt;
&lt;p&gt;GLM in Cursor for some reason couldn’t cope with the tools.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.4705882352941"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__all-2400@2x.png" width="1200" height="816" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__desktop-2400@2x.png" width="2400" height="1329" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__mobile-2400@2x.png" width="152" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__promo-2400@2x.png" width="975" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__glm-5.1__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + Composer 2&lt;/h3&gt;
&lt;p&gt;Very primitive, but also very cheap. Doesn’t match the level Cursor claims for its model, of course. But they honestly said they’re making a model for code first.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="2.247191011236"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__all-2400@2x.png" width="1200" height="534" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__desktop-2400@2x.png" width="2400" height="859" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__mobile-2400@2x.png" width="375" height="1158" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__promo-2400@2x.png" width="1153" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__cursor__composer-2__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Source Craft + Default&lt;/h3&gt;
&lt;p&gt;Seems inexpensive, but no point in using it, neuro-slop neuro-slop.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.1173184357542"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__all-2400@2x.png" width="1200" height="1074" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__desktop-2400@2x.png" width="1853" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__mobile-2400@2x.png" width="326" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__promo-2400@2x.png" width="573" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default__w-0__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Source Craft + Default Thinking&lt;/h3&gt;
&lt;p&gt;It’s like Default and Default Thinking models in Yandex Source Craft are not just different modes of one model, but different models: too different a result, with the reasoning model even worse.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="2.7272727272727"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__all-2400@2x.png" width="1200" height="440" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__desktop-2400@2x.png" width="2400" height="1543" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__mobile-2400@2x.png" width="375" height="800" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__promo-2400@2x.png" width="2400" height="2057" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/sourcecraft__default-thinking__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Kilo Code + Opus 4.7 (Kilo cloud)&lt;/h3&gt;
&lt;p&gt;Typical Opus 4.7. Clean in places, interesting, from afar it’s super-duper.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1513" data-ratio="0.63041666666667"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__all-2400@2x.png" width="1513" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__desktop-2400@2x.png" width="2400" height="1289" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__mobile-2400@2x.png" width="553" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__promo-2400@2x.png" width="647" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__opus-4.7__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Kilo Code + Hy3 preview (Kilo cloud)&lt;/h3&gt;
&lt;p&gt;The trendiest open-source model on Openrouter. Very so-so.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="2.1447721179625"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__all-2400@2x.png" width="2400" height="1119" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__desktop-2400@2x.png" width="2400" height="1239" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__mobile-2400@2x.png" width="375" height="996" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__promo-2400@2x.png" width="1100" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/kilo__hy3-preview__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Kilo Code + Qwen 3.6 Max Preview (Kilo cloud)&lt;/h3&gt;
&lt;p&gt;In general Qwen did decently for me. A bit dim, but pretty solid. Sagged in promo like everyone. 1/30 of Opus’s price.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.1544011544012"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__all-2400@2x.png" width="2400" height="2079" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__desktop-2400@2x.png" width="2400" height="2313" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__mobile-2400@2x.png" width="643" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__promo-2400@2x.png" width="592" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen-3.6__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Kilo Code + Qwen 3.5 397&lt;/h3&gt;
&lt;p&gt;Didn’t cope with the tools.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="922" data-ratio="0.76833333333333"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__all-2400@2x.png" width="922" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__desktop-2400@2x.png" width="867" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__mobile-2400@2x.png" width="262" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__promo-2400@2x.png" width="394" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__kilo-code__qwen35-397b-qwen-397__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;OpenCode + Opus 4.7, xhigh reasoning (OpenRouter)&lt;/h3&gt;
&lt;p&gt;Not bad, what would have been in mobile I don’t know, because after this screen Openrouter banned me from American SOTA models.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__opus-4.7__desktop-2400@2x.png" width="1200" height="1097" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__opus-4.7__desktop@2x.png"&gt;Desktop&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;OpenCode + Kimi 2.6 (OpenRouter)&lt;/h3&gt;
&lt;p&gt;Mobile is better than the rest, the rest is bad. The funny thing is everything was duplicated, but then through screenshots it discovered and erased it itself. Because of this it fussed for a very long time — 40+ minutes.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.3644115974986"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__all-2400@2x.png" width="2400" height="1759" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__desktop-2400@2x.png" width="2400" height="2287" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__mobile-2400@2x.png" width="609" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__promo-2400@2x.png" width="700" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__kimi-2.6__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;OpenCode + Grok 4.3 (OpenRouter)&lt;/h3&gt;
&lt;p&gt;Grok was already above, but unlike Cursor, Opencode couldn’t handle the model at all, the result is much worse than Cursor’s.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.6371077762619"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__all-2400@2x.png" width="1200" height="733" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__desktop-2400@2x.png" width="1200" height="823" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__mobile-2400@2x.png" width="331" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__promo-2400@2x.png" width="840" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__grok-4.3__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;OpenCode + DeepSeek V4 Pro (Deepseek Cloud), Max Reasoning&lt;/h3&gt;
&lt;p&gt;DeepSeek is very cheap, but managed only once. Mobile is watchable, the rest is bad.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.2377514182568"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__all-2400@2x.png" width="2400" height="1939" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__desktop-2400@2x.png" width="2400" height="2261" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__mobile-2400@2x.png" width="579" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__promo-2400@2x.png" width="635" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.328903654485"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__all-2400@2x.png" width="1200" height="903" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__desktop-2400@2x.png" width="2400" height="1543" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__mobile-2400@2x.png" width="190" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__promo-2400@2x.png" width="840" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__deepseek-v4-pro-2__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;OpenCode + GLM 5.1 (z.ai coding plan)&lt;/h3&gt;
&lt;p&gt;Unlike Cursor, Opencode managed to get something out of GLM, turned out generally OK for its price. It costs less than Haiku, which couldn’t do literally anything.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.1363636363636"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__all-2400@2x.png" width="1200" height="1056" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__desktop-2400@2x.png" width="2400" height="1545" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__mobile-2400@2x.png" width="332" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__promo-2400@2x.png" width="583" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__glm-5.1__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;OpenCode + Qwen 3.5 397&lt;/h3&gt;
&lt;p&gt;Couldn’t do anything.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.3644115974986"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__all-2400@2x.png" width="2400" height="1759" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__desktop-2400@2x.png" width="2400" height="1543" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__mobile-2400@2x.png" width="375" height="812" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__promo-2400@2x.png" width="700" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__qwen35-397b-qwen-397__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;OpenCode + MiniMax 2.7 (OpenRouter)&lt;/h3&gt;
&lt;p&gt;Incredibly fast, incredibly cheap, the quality is accordingly.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.819560272934"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__all-2400@2x.png" width="2400" height="1319" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__desktop-2400@2x.png" width="1200" height="1069" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__mobile-2400@2x.png" width="665" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__promo-2400@2x.png" width="1867" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/paper__opencode__minimax-2.7__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Figma: Claude Code + Opus 4.7, xhigh&lt;/h3&gt;
&lt;p&gt;Opus in its style, especially from afar, but ate more than a full 5-hour quota.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1663" data-ratio="0.69291666666667"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__all-2400@2x.png" width="1663" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__desktop-2400@2x.png" width="1001" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__mobile-2400@2x.png" width="266" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__promo-2400@2x.png" width="711" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__claude-code__opus-4.7__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Figma: Codex + GPT 5.5, xhigh&lt;/h3&gt;
&lt;p&gt;In Figma it managed slightly better than in Paper. Lays things out monstrously simply.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.4616321559074"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__all-2400@2x.png" width="1200" height="821" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__desktop-2400@2x.png" width="1200" height="840" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__mobile-2400@2x.png" width="703" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__promo-2400@2x.png" width="750" height="1200" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__codex__gpt-5.5__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Figma: Cursor + GLM 5.1 (z.ai coding plan)&lt;/h3&gt;
&lt;p&gt;In general worse than in Paper. The desktop layout on the bottom is me dragging a layer to where it needs to go, GLM didn’t master a correct DOM.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.5625"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__all-2400@2x.png" width="1200" height="768" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__desktop-2400@2x.png" width="1645" height="2400" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__mobile-2400@2x.png" width="318" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__promo-2400@2x.png" width="1603" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__glm-5.1__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Cursor + Composer 2&lt;/h3&gt;
&lt;p&gt;Catastrophically bad, worse than in Paper.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1200" data-ratio="1.4888337468983"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__all-2400@2x.png" width="1200" height="806" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__desktop-2400@2x.png" width="1200" height="823" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__mobile-2400@2x.png" width="268" height="1200" alt="" /&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__promo-2400@2x.png" width="1527" height="2400" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Full images: &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__all@2x.png"&gt;All together&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__desktop@2x.png"&gt;Desktop&lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__mobile@2x.png"&gt;Mobile &lt;/a&gt; · &lt;a href="https://mikeozornin.ru/blog/pictures/figma__cursor__composer-2__promo@2x.png"&gt;Promo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;After the main experiment I decided to try giving it the Impeccable skill and see how it would influence things. The same prompt, but with the skill. Full config — Claude Code + Opus 4.7, xhigh + Frontend Design Skill&lt;/p&gt;
&lt;p&gt;I only made one desktop screen, it eats a lot, even fancier than it was. One screen ate 44% of the 5h · pro quota in Claude Code. It’s like Opus became even more Opus-y and some kind of grief-from-too-much-design-thinking started. Every pixel shouts «look how beautiful I am». There are errors, but the design became even more designer-y.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-frontend-design__desktop-2400@2x.png" width="513.5" height="1200" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Full image: &lt;a href="https://mikeozornin.ru/blog/pictures/paper__claude-code__opus-frontend-design__desktop@2x.png"&gt;Desktop&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;4 How much all this cost, you ask&lt;/h2&gt;
&lt;p&gt;In general there are prices in the table, dollars in Cursor are virtual (included in the subscription), the rest are real.&lt;/p&gt;
&lt;p&gt;~$20 — the models&lt;br /&gt;
$16 — Paper Pro with a higher MCP limit.&lt;br /&gt;
3×$20 — subscriptions to Claude, Codex and Cursor, but they were already there.&lt;/p&gt;
&lt;p&gt;&lt;aside class="aside-margin-right"&gt;See the chart here: &lt;a href="https://www.anthropic.com/news/claude-opus-4-7"&gt;anthropic.com/news/claude-opus-4-7&lt;/a&gt;&lt;/aside&gt;&lt;/p&gt;
&lt;p&gt;The most expensive option would cost $12.30 (Cursor + Opus 4.7), the cheapest — $0.03 (Minimax 2.7), the difference — 410x. Opus wasn’t running at 100%, if I had turned on max-reasoning, it would have been about ×2.&lt;/p&gt;
&lt;h2&gt;5 Future experiments&lt;/h2&gt;
&lt;p&gt;What I would like to check, that didn’t make it into this series:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check with skills: how much this or that skill can improve the design.&lt;/li&gt;
&lt;li&gt;Check by giving styles, user scenarios and other context.&lt;/li&gt;
&lt;li&gt;Check by allowing it to ask clarifying questions: about tasks, product, style and user.&lt;/li&gt;
&lt;li&gt;Check what happens if you give it a rough sketch of the interface and bring it to a finished state.&lt;/li&gt;
&lt;li&gt;Give an existing screen and ask it to add style or improve only the interface without a complete redo of the structure.&lt;/li&gt;
&lt;li&gt;Let it read Gorbunov’s layout advice and check again.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;6 Conclusions&lt;/h2&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Opus is on top. Expensive and awesome. Surprisingly, the next one isn’t even GPT. Neither 5.4 nor even 5.5 come close. Chinese models, even Cursor’s auto mode, do it better. GPT 5.4 writes code well, explains and does analyses well. Design — a flop.&lt;/li&gt;
&lt;li&gt;Chinese models are overfitting on metrics and benchmarks. In general all models outside the big labs are like this. By SWE metrics they’ve already caught up with and overtaken Opus, but in real life they can’t do a simple task. Some can’t even cope with correctly calling tools. A typical example is Minimax 2.7 — by all metrics it’s very good, in design it can do nothing. In the end it’s only good in speed and price (those are really wow). Someone will say DeepSeek is overfitting too. I can’t say so unequivocally about it: first, DeepSeek made one of the mockups noticeably better, and second, it still has some kind of problems with calling tools, as was the case in version 3.2. The best result is from those Chinese models that do their work without particularly shouting — Qwen 3.6 (but 3.5 is so-so).&lt;/li&gt;
&lt;li&gt;A good model makes design by developers and product managers themselves quite pointless, unless they have an understanding of design. It’s rare, but such people exist. If not, the model will do it faster and better. There’s still work for designers, you can breathe out for a quarter.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;P. S.&lt;/h2&gt;
&lt;p&gt;Since you’re here, try &lt;a href="http://recipe-scaler.ru/#/about"&gt;recipe-scaler.ru&lt;/a&gt; — the best recipe management app ever made. Wasn’t this all for nothing — so many design experiments? If every tenth person comes in, I’ll have +1000% users instantly.&lt;/p&gt;
&lt;p&gt;By the way, here’s what the post attachments block looks like:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/llm-and-ui-design@2x.png" width="858" height="1293" alt="" /&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>Recipe scaler: набор изменений номер 5</title>
<guid isPermaLink="false">221</guid>
<link>https://mikeozornin.ru/blog/all/recipe-scaler-release-5/</link>
<pubDate>Tue, 14 Apr 2026 13:38:00 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/recipe-scaler-release-5/</comments>
<description>
&lt;p class="lead"&gt;Еще новинки самого лучшего в мире менеджера рецептов&lt;/p&gt;
&lt;p&gt;Как вы помните (не помните, конечно), я делаю самый удобный и продвинутый менеджер рецептов — &lt;a href="recipe-scaler.ru"&gt;recipe-scaler.ru&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;С момента &lt;a href="https://mikeozornin.ru/blog/all/recipe-scaler-release-4/"&gt;прошлого поста&lt;/a&gt; прошла неделя. За это время я в фоне поделал еще пару классных штук.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/shopping-list-ru-light@2x-2.png" width="2048" height="1536" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;1. Список покупок&lt;/h2&gt;
&lt;p&gt;Сейчас можно и список покупок вести в общей приложухе. Синхронизация, оффлайн — все будет работать как привычно. Можно пошарить ссылкой или текстом для месенджера. Можно весь рецепт отправить в покупки.&lt;/p&gt;
&lt;p&gt;Ну не кайф ли? Плюс одно приложение внутри приложения.&lt;/p&gt;
&lt;hr /&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/chrome-extension-ru-light@2x.png" width="1024" height="768" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;2. Расширение для Хрома&lt;/h2&gt;
&lt;p&gt;Телеграм у некоторых не работает, чтобы можно было сохранить рецепт я сделал расширение. Жмакаете, и рецепт отправляет в приложение.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://chromewebstore.google.com/detail/recipe-scaler-importer/nboblelpbhjijeaglahippkocnecblfb"&gt;Recipe Scaler Importer&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Recipe scaler: набор изменений номер 4</title>
<guid isPermaLink="false">219</guid>
<link>https://mikeozornin.ru/blog/all/recipe-scaler-release-4/</link>
<pubDate>Tue, 07 Apr 2026 10:54:25 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/recipe-scaler-release-4/</comments>
<description>
&lt;p class="lead"&gt;Рассказываю о новинках самого лучшего в мире менеджера рецептов&lt;/p&gt;
&lt;p&gt;Как вы помните (не помните, конечно), я делаю самый удобный и продвинутый менеджер рецептов — &lt;a href="recipe-scaler.ru"&gt;recipe-scaler.ru&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;С момента &lt;a href="https://mikeozornin.ru/blog/all/recipe-scaler-release-3/"&gt;прошлого поста&lt;/a&gt; прошло два месяца. За это время я в фоне поделал еще немного разных штук.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/recipe-scaler-release-4-1@2x.png" width="1024" height="768" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;1. Раздел Discovery&lt;/h2&gt;
&lt;p&gt;Можно почитать чужие рецепты. Пока рецепты людей, но потом будут еще и коллекции, ищу где можно найти рецептов так, чтобы не нарушить сразу 100 миллионов авторских прав&lt;/p&gt;
&lt;hr /&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/recipe-scaler-release-4-4@2x.png" width="1024" height="768" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;2. Универсальный импорт&lt;/h2&gt;
&lt;p&gt;Импорт сильно прокачался. Сейчас можно импортировать что угодно: много рецептов за раз, много ссылок, рецепты из произвольного текста или файла произвольного формата. Можно даже импортировать рецепты из фотографии, например, отфоткать любимые бабушкины рецепты и автоматически загрузить их к себе.&lt;/p&gt;
&lt;p&gt;Если хотите перенести рецепты из своего приложения, то есть описание для формата для агента: &lt;a href="https://github.com/mikeozornin/recipe-scaler-import-guide"&gt;гайд для вашего агента&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/recipe-scaler-release-4-2@2x.png" width="1024" height="768" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;3. Пин рецептов&lt;/h2&gt;
&lt;p&gt;Частые рецепты можно запинить сверху, чтобы не искать их внизу по алфавиту&lt;/p&gt;
&lt;h2&gt;4. Эмодзи-иконки&lt;/h2&gt;
&lt;p&gt;Если начать рецепт с эмодзи, то эмодзи станет его иконкой. Сортировка, понятно, будет работать нормально, без учета эмодзи&lt;/p&gt;
&lt;h2&gt;5. Вход по QR-коду&lt;/h2&gt;
&lt;p&gt;Чтобы войти на другом устройстве, например, на телефоне, можно просто отсканировать QR-код, без передачи секретной фразы.&lt;/p&gt;
&lt;h2&gt;6. Скачать рецепт в ПДФ&lt;/h2&gt;
&lt;p&gt;Можно скачать рецепт в ПДФ и одной штукой&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Кстати, зацените как клод умеет. Можно аттачить в чат рецепт, если подключить Recipe Scaler MCP.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/recipe-scaler-release-4-3@2x.png" width="1033" height="665" alt="" /&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>ИИ-нативные продукты</title>
<guid isPermaLink="false">220</guid>
<link>https://mikeozornin.ru/blog/all/ai-native-software/</link>
<pubDate>Mon, 06 Apr 2026 10:34:36 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/ai-native-software/</comments>
<description>
&lt;p class="lead"&gt;Рассуждаю, что важно учесть при разработке сложного софтверного продукта сейчас, чтобы он остался актуальным через год или два&lt;/p&gt;
&lt;p&gt;Мир софта меняется и скоро поменяется совсем. Да, я про ИИ и ЛЛМ в частности. Многие компании не пережили прошлую мобильную революцию (вспомните про нокию). Я размышляю как нам пережить эту. Поэтому, я хочу поразмышлять, что значит  «ии-нативные продукты».&lt;/p&gt;
&lt;p&gt;Я говорю не про конкретные ии-фичи, не про пресловутого бота, который отвечает мимо и невпопад, а скорее про общее ощущение от продуктов. Я говорю про по сути набор нефункциональных требований, касающихся ИИ, которые могут быть применимы ко всем нашим продуктам. Как сделать продукт, который:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;будет актуальным в среде агентов, а не людей,&lt;/li&gt;
&lt;li&gt;сам будет таким, что в нем агент станет полноценным пользователем и субъектом наряду с человеком&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Особенно это важно тем, кто поставляет продукты в он премис, там делают продукт не на месяц вперед. Пока спроектируют, пока разработают, пока клиенты обновятся. Продукт делается сейчас, а клиенты будут пользоваться ими через год.&lt;/p&gt;
&lt;p&gt;Хочется сейчас угадать и сделать что-то, что за год-два не потеряет своей актуальности.&lt;/p&gt;
&lt;p&gt;Для контекста: почти год назад, в конце февраля, вышел Сонет 3.7. Сонетом 3.7 уже можно было пользоваться, он мог уверенно написать работающий файл. Ну может несколько файлов. Но он не был настолько автономным как Опус 4.6 или ГПТ 5.4.&lt;/p&gt;
&lt;p&gt;Для контекста: стоимость решения одной и той же задачи с помощью ЛЛМ падает в 10 раз каждый год.&lt;/p&gt;
&lt;p&gt;Вот что мне приходит в голову ↓&lt;/p&gt;
&lt;h2&gt;1. Не оптимизировать human-only-сценарии&lt;/h2&gt;
&lt;p&gt;Я бы не вкладывался в долгую разработку удобного интерфейса работы оператора и решения им тех задач, которые он в целом решать не должен. Я бы подумал перед тем как тратить сейчас не одну сотню человеко-часов только на фронте.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Хорошо: сделать графический редактор сценариев в стиле н8, но быстро.&lt;/li&gt;
&lt;li&gt;Не стал бы: тратить 500 человеко-часов на конструктор сценариев, хотя за 100 часов можно было бы сделать написание тех же сценариев из войса в телеграме.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2. Удобный, ии-нативный интерфейс&lt;/h2&gt;
&lt;p&gt;Я бы в целом ожидал возврата к основам линукосовой концепции «всё — это файл» и концепции компонуемости из юникс-утилит — программы как атомарные небольшим программам, результаты которых можно цеплять друг к другу через пайп и с унифицируемым интерфейсом ввода (текст) и вывода (текст).&lt;/p&gt;
&lt;p&gt;&lt;aside class="aside-margin-right"&gt;См. в тему &lt;a href="https://cursor.com/blog/dynamic-context-discovery#1-turning-long-tool-responses-into-files"&gt;cursor.com/blog/dynamic-context-discovery&lt;/a&gt;&lt;/aside&gt;&lt;/p&gt;
&lt;p&gt;Я не говорю именно про терминал и текст, но идея компонуемости, как мне кажется, станет более актуальной.&lt;/p&gt;
&lt;p&gt;Интерфейс программ должен быть стандартный и максимально дружелюбный для агентов: rest api, терминальные команды, стандартный протокол.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Хорошо: консольный cdk для прогона тестов&lt;/li&gt;
&lt;li&gt;Не стал бы: gui-программа для прогона тестов, которая еще работает только для Виндоуза.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Я говорю про достаточно общие протоколы, не обязательно про МПЦ. Я не удивлюсь, если через год агенты научатся работать с любыми апи по опенапи-спеке и мы забудем врапперы типа МПЦ, как тупиковую ветвь эволюции.&lt;/p&gt;
&lt;h2&gt;3. Агент должен уметь разобраться по доке&lt;/h2&gt;
&lt;p&gt;Если доки недостаточно, чтобы агент разобрался — дока не очень. Если для интеграции продукта с телеграмом недостаточно дать доку агенту и отправить делать, значит дока не очень понятная или подробная. Если агент не может запустить дев-стенд вашего продукта по доке за один промт — у вас что-то не так.&lt;/p&gt;
&lt;p&gt;Сама дока должна быть доступна в агент-френдли формате: сервер-сайд-рендеринг, llm.txt или agents.md, доступность из курла. Никаких реакт-сайтов, которые требуют браузера. Да, агенты уже умеют читать и такое, но зачем усложнять им жизнь.&lt;/p&gt;
&lt;h2&gt;4. Стандартные форматы хранения, языки и протоколы&lt;/h2&gt;
&lt;p&gt;Я бы до последнего откладывал придумывание своих кастомных DSL, а попытался бы найти распространенный язык для задачи. Даже если бы он подходил всего лишь на 50%. Я понимаю, что ллм выучит и чужой незнакомый DSL. Но я не специалист и кажется, что лучше бы, чтобы не учила. Наша выучит, другая не станет.&lt;/p&gt;
&lt;h2&gt;5. Собирать из всего, что можно собрать, датасеты&lt;/h2&gt;
&lt;p&gt;В каждой фиче думать, какие данные нужно собрать и сохранить. С клиентов: метрики, сценарии действий, телеметрию. С нас самих: сохранять треки работы внутренних пользователей, записи всех митингов и обсуждений, все код-ревью, тикеты в саппорте, вопросы в чатах и поисковые запросы на портале хелпа.&lt;/p&gt;
&lt;p&gt;Контекст менеджмент — 50% самого важного в контексте именно написания продукта (вторые 50% — харнес). И поэтому не удивительно, что Ноушен и Линеар сделали своих агентов, у них внутри столько контекста по компании, что зашатаешься.&lt;/p&gt;
&lt;h2&gt;6. Не замыкаться в текущих ограничениях&lt;/h2&gt;
&lt;p&gt;Стоит рассчитывать, что через 2-3 года контекстное окно вырастет так, что можно будет отправлять туда 5 миллионов токенов (давайте представим, что я — футурист). Т. е. в окно контекста целиком влезут те данные, для которых сейчас нужно делать сложные система РАГ.&lt;/p&gt;
&lt;h2&gt;7. Агенты — first class citizens&lt;/h2&gt;
&lt;p&gt;При реализации каждой фичи нужно начать думать: а какие тулы и апишки нужно в рамках фичи заэкспоузить наружу для будущие агентов, и тратить на это время не по остаточному принципу, а так, чтобы агенты были first class citizen.&lt;/p&gt;
&lt;p&gt;Если функция доступна человеку, но недоступна агенту — мы сделали что-то не так.&lt;/p&gt;
&lt;h2&gt;8. Безопасность всего этого&lt;/h2&gt;
&lt;p&gt;Придется подумать, как не сделать с агентским продуктом с невероятно широким контектом хуже, чем без него вообще. В какой-то момент в защите инфраструктуры возник zero trust (когда пропал периметр и всё стало периметром), так же и тут нужно будет делать zero trust 2.0.&lt;/p&gt;
&lt;p&gt;Как минимум нужны будут:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;границы применимости: разделение на задачи, где норм принять решение агенту и на те, где обязателен человек;&lt;/li&gt;
&lt;li&gt;трассировка источников: откуда агент взял вывод и как к нему пришел,&lt;/li&gt;
&lt;li&gt;аудит: что он сделал и почему;&lt;/li&gt;
&lt;li&gt;replayability: можно ли воспроизвести решение агента потом при разборе инцидента.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;9. Как встроить ии в feedback loop работы продукта&lt;/h2&gt;
&lt;p&gt;Хочется как-то перенести ответственность за контекст с человека на агента. Не оператор должен думать какие данные передать агенту, а агент должен у себя иметь инструменты self discovery и data retrival, пусть сам подумает, что ему надо.&lt;/p&gt;
&lt;p&gt;Сейчас хорошо работает сказать агенту «задай мне вопросы, которые помогут тебе хорошо решить задачу», хочется что-то аналогичное.&lt;/p&gt;
&lt;h2&gt;10. Самим заставлять себя решать задачи ллмками и агентами&lt;/h2&gt;
&lt;p&gt;Самим пытаться становиться ии-нативными, даже если прямо сейчас так медленнее. Например, договориться, в командах, что все лоу-баги чинятся только ЛЛМкой, никакой код нельзя для этого писать руками.&lt;/p&gt;
&lt;p&gt;Случайно вышло 10 пунктов, ну и хорошо.&lt;/p&gt;
&lt;p&gt;Если вдруг у кого есть, прости господи, подкаст, можем поговорить про это.&lt;/p&gt;
</description>
</item>

<item>
<title>ЛЛМ и дизайн</title>
<guid isPermaLink="false">218</guid>
<link>https://mikeozornin.ru/blog/all/llm-i-dizayn/</link>
<pubDate>Fri, 27 Mar 2026 10:18:59 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/llm-i-dizayn/</comments>
<description>
&lt;p class="lead"&gt;Я шарю скилл несколько раз, самое время кинуть в пост&lt;/p&gt;
&lt;p&gt;Как делать дизайн с ЛЛМ, чтобы не было дефолтно и ИИшно:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Не делать, делать руками&lt;/li&gt;
&lt;li&gt;Кидать референсы&lt;/li&gt;
&lt;li&gt;Дать скиллов&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Пост про опцию три.&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;&lt;a href="https://impeccable.style"&gt;https://impeccable.style&lt;/a&gt;&lt;br /&gt;
Есть вот такой набор скиллов, в нем разные вещи, чтобы делать дизайн и верстку:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Аудит того, что есть и критика&lt;/li&gt;
&lt;li&gt;Есть работа с текстом&lt;/li&gt;
&lt;li&gt;Есть работа с визуалкой&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;На промостранице есть объяснения, начните с них.&lt;/p&gt;
&lt;p&gt;Это не серебрянная пуля, по начать, например, можно с этого.&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;&lt;a href="https://developers.openai.com/blog/designing-delightful-frontends-with-gpt-5-4/"&gt;https://developers.openai.com/blog/designing-delightful-frontends-with-gpt-5-4/&lt;/a&gt;&lt;br /&gt;
Скилл и объяснение от опенаи&lt;/li&gt;
&lt;/ol&gt;
</description>
</item>

<item>
<title>Street guesser</title>
<guid isPermaLink="false">216</guid>
<link>https://mikeozornin.ru/blog/all/street-guesser-2/</link>
<pubDate>Sat, 21 Feb 2026 12:32:19 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/street-guesser-2/</comments>
<description>
&lt;p class="lead"&gt;Игра, чтобы выучить свой район&lt;/p&gt;
&lt;p&gt;Как ведь бывает, переехал в новый район, а там все улицы незнакомые. Как вот их учить?&lt;/p&gt;
&lt;p&gt;Сделал игру:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;a href="https://mikeozornin.ru/share/street-guess/#lat=55.752773&amp;lon=37.620606&amp;radius=2335&amp;mode=click&amp;size=large" class="e2-text-picture-link"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/street-guesser@2x.png" width="1564" height="1012" alt="" /&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Случайный положительный эффект: можно легко сравнить масштаб городов, понять, что Садовое в Москве — это от Фонтанки с заходом на начало Васьки и Петроградки.&lt;/p&gt;
</description>
</item>

<item>
<title>Важность рефлексии растет</title>
<guid isPermaLink="false">215</guid>
<link>https://mikeozornin.ru/blog/all/reflection-is-more-important/</link>
<pubDate>Mon, 26 Jan 2026 10:34:56 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/reflection-is-more-important/</comments>
<description>
&lt;p&gt;На пост меня натолкнула рабочая ситуация: Я написал (будем честны, попросил ллм написать) один скрипт, и некоторые коллеги прореагировали «о, давно о таком мечтаю». И у меня в голове щелкнуло.&lt;/p&gt;
&lt;p&gt;&lt;aside class="aside-margin-right"&gt;Когда я сейчас написал про один промт, я не утрировал, это был реально один промт.&lt;/span&gt;&lt;/aside&gt;&lt;/p&gt;
&lt;p&gt;Сейчас простые задачи решаются ллмками достаточно хорошо. Ядро линукса они все еще не напишут, но пропарсить все ресурсные файлы проекта, сгруппировать одинаковые строчки и дать к ним мгновенный поиск — это задача на один промт. И все, что удерживает людей сейчас, от того, что некоторая часть их задач начнет быть проще — рефлексия. Все что нужно — остановиться, и заметить момент «ага, я тут хочу упрощение, которое возможно реально»).&lt;/p&gt;
&lt;p&gt;И если раньше рефлексия не всегда помогала, например:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Понял, что занимается рутиной, но невозможно понять, что рутина автоматизируема.&lt;/li&gt;
&lt;li&gt;Понял, что занимается рутиной, пошел узнать, автоматизируема ли она, ИТ-служба сказала «не существует технической возможности».&lt;/li&gt;
&lt;li&gt;Понял, что занимается рутинной автоматизированной задачей, понял, что автоматизируема, а питониста рядом нет.&lt;/li&gt;
&lt;li&gt;Понял, что занимается рутинной автоматизированной задачей, понял, что автоматизируема, а питонист рядом занят.&lt;/li&gt;
&lt;li&gt;Понял, что занимается рутинной автоматизированной задачей, понял, что автоматизируема, сходил в ИТ, питониста нашли, они задачу взяли, то на Q3 2027 года, потому что есть более важные.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Сейчас ситуация сильно меняется.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Понял, что занимается рутинной автоматизированной задачей, потратил один-два промта и, возможно, получил решение.&lt;br /&gt;
Возможно решения не получил, но и потратить 10 минут как будто не так и долго. Время на созвон со знакомым питонистом будете в календаре выбирать дольше.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Нас всегда учили, что идея не стоит ничего. В целом идея все так же стоит ничего, но иногда — чуть больше, чем ничего, если есть ллмка.&lt;/p&gt;
</description>
</item>

<item>
<title>ИИ-дизайн</title>
<guid isPermaLink="false">213</guid>
<link>https://mikeozornin.ru/blog/all/ai-design/</link>
<pubDate>Tue, 20 Jan 2026 20:45:35 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/ai-design/</comments>
<description>
&lt;p class="lead"&gt;Я задал один и тот же промт нескольким моделям и вот что вышло&lt;/p&gt;
&lt;h2&gt;Промт&lt;/h2&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;Прочитай @/llm/PRD.md и сверстай статическую html-страницу about. Укажи в ней все преимущества, придумай как их проиллюстрировать, используй модный современный дизайн

Сохрани в файл about-page/{model-name}.html

Ориентируйся только на prd, не используй about-страницу.&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Эксперимент проведен в декабре 2025-январе 2026. Использовался openrouter или облака ллммок. В скриншотах могут быть небольшие артефакты, скриншоты снимал плейрайт, он не умеет в стики-позиции.&lt;/p&gt;
&lt;p&gt;Для сравнения дизайн кожаного мешка (меня): &lt;a href="https://recipe-scaler.ru/#/about"&gt;https://recipe-scaler.ru/#/about&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Gemini 3 pro&lt;/h2&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/gemini-3-pro@2x.png" width="1344" height="3283" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Grok code fast 1&lt;/h2&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/grok.code-fast-1@2x.png" width="1280" height="4044" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Minimax 2.1&lt;/h2&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/minimax-2.1-1@2x.png" width="1280" height="2359" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Minimax 2.1&lt;/h2&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/minimax-2.1-2@2x.png" width="1280" height="9523" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Minimax 2.1&lt;/h2&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/minimax-2.1-3@2x.png" width="1280" height="11107" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Minimax 2.1&lt;/h2&gt;
&lt;p&gt;Тут я просил швейцарский стиль&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/minimax-2.1-4@2x.png" width="1280" height="3501" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Minimax 2.1&lt;/h2&gt;
&lt;p&gt;Тут я просил брутализм&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/minimax-2.1-5@2x.png" width="1280" height="3169" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Opus 4.5&lt;/h2&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/opus-4.5-1@2x.png" width="1280" height="7191" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Opus 4.5&lt;/h2&gt;
&lt;p&gt;Тут я просил брутализм&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/opus-4.5-2@2x.png" width="1280" height="6154" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Swe 1.5&lt;/h2&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/swe-1.5-1@2x.png" width="1280" height="2923" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Swe 1.5&lt;/h2&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/swe-1.5-2@2x.png" width="1280" height="4061" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Yandex assistant 2026-01-20&lt;/h2&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/yandex-assistant-2026-01-20@2x.png" width="1280" height="2635" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Zai GLM-4.7&lt;/h2&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/zai-4.7-3@2x.png" width="1954" height="3319" alt="" /&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>Псевдозабота Клод Кода</title>
<guid isPermaLink="false">212</guid>
<link>https://mikeozornin.ru/blog/all/claude-code-and-stupid-questions/</link>
<pubDate>Thu, 15 Jan 2026 22:01:21 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/claude-code-and-stupid-questions/</comments>
<description>
&lt;p&gt;Клод код (Claude Code) заботится обо мне и показывает команды на согласования, к сожалению, он делает это &lt;s&gt;без уважения&lt;/s&gt; плохо.&lt;/p&gt;
&lt;p&gt;Посмотрите на этот апрув:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/claude-code-1@2x.png" width="741" height="298" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Выполняет трехстрочную шелл-команду с вложенными конструкциями: циклы, условия. Если там где-то будет какая-то ошибка, я её просто не замечу.&lt;/p&gt;
&lt;p&gt;Я не специально выбирал, что скриншотить, они все такие:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/claude-code-2@2x.png" width="685" height="303" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;У меня остается два варианта:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Как мартышка жать и жать на кнопку «Approve». В итоге вырабатывается привычка, которая не даст мне себя защититить в опасной ситуации. См. принцип «подтверждения не работают».&lt;/li&gt;
&lt;li&gt;Один раз апрувнуть тоже не выйдет, потому что эта &lt;i&gt;конкретная&lt;/i&gt; трехэтажная команда вряд ли когда-нибудь появится.&lt;/li&gt;
&lt;li&gt;Согласитья на YOLO (You Only Live Once) режим и разрешить ему делать все, что угодно, даже  &lt;i&gt;rm -rf &lt;/i&gt;/&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Оба варианта, как вы понимаете, плохие.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Как надо&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Клод код должен выдавать ЛЛМ понятные инструменты к файлам: прочитать, изменить, и т. д. ЛЛМ должна не грепать файлы, а читать их тулами. Тогда клод код с одной стороны сможет не спрашивать никаких разрешений на чтение файлов (разве что на .env), а с другой быть уверенным, что ЛЛМ ничего не сломает своей командой. Тулом чтения ничего сломать нельзя по определению.&lt;/p&gt;
&lt;p&gt;Да, это нужно программировать, а греп уже есть. Да, греп более атомарный и гибкий, чем любые придуманные тулы. Да, ЛЛМ точнее сгенерирует команду для грепа, поскольку она на них обучалась. Но блин, апрувить все команды — не решение вовсе.&lt;/p&gt;
&lt;p&gt;Понятно, что клод код не увидит мой пост, но вы, когда будете делать ИИ-фичи, не будьте как клод.&lt;/p&gt;
</description>
</item>

<item>
<title>Recipe scaler: релиз 3</title>
<guid isPermaLink="false">211</guid>
<link>https://mikeozornin.ru/blog/all/recipe-scaler-release-3/</link>
<pubDate>Tue, 13 Jan 2026 23:50:10 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/recipe-scaler-release-3/</comments>
<description>
&lt;p&gt;На новогодние праздники вышли два больших апдейта recipe-scaler&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Первый апдейт — публичный профиль и коллекции&lt;/b&gt;&lt;br /&gt;
Сейчас можно шарить не только рецепты как одну штуку, но и всю коллекцию.&lt;br /&gt;
Или выборочно, или прибранные рецепты (с рецептом и фоткой), или вообще все-все-все&lt;/p&gt;
&lt;p class="loud"&gt;&lt;a href="https://recipe-scaler.ru/#/public/@/mike.ozornin"&gt;https://recipe-scaler.ru/#/public/@/mike.ozornin&lt;/a&gt;&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/recipe-scaler-3@2x.png" width="1024" height="768" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Интеграция с ИИ-иссистентом&lt;/b&gt;&lt;br /&gt;
Можно через MCP подключиться к своему ассистенту. У кого-то клод, у кого-то курсор. Пока подглючивает чуток. Но смотрите, какая красота:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/mcp-server-light@2x.png" width="1024" height="768" alt="" /&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>ИИ-ревью кода</title>
<guid isPermaLink="false">210</guid>
<link>https://mikeozornin.ru/blog/all/llm-code-review/</link>
<pubDate>Sun, 11 Jan 2026 16:01:45 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/llm-code-review/</comments>
<description>
&lt;p&gt;Делал большую фичу, попросил ревью у ИИ. Попросил найти важные моменты во всех областях: безопасность, логика, деплой, производительность и прочее, и прочее.&lt;/p&gt;
&lt;p&gt;Опус 4.5 (лучшая на сейчас ЛЛМ в мире) написал:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Критикал sql-инъекция. Как оказалось: пользователь сам себе после всех входов и разрешений на свой же запрос получит чуть больше своих же результатов.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Опус не написал:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Конфиг nginx забыли поправить и ничего не будет работать в целом.&lt;/li&gt;
&lt;li&gt;Сервис-воркер (фоновый код в браузерном приложении) блокировал работу новой вещи, перехватывая все обращения на себя.&lt;/li&gt;
&lt;li&gt;Кеширование oauth-запросов было настроено некорректно.&lt;/li&gt;
&lt;li&gt;Часовые пояса неправильные, посему токен не имел шансов подойти.&lt;/li&gt;
&lt;li&gt;Некоторые адреса обрабатываются неправильно и тоже работать не будет.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Я прямо чую, что когда кто-то решит проблему нормального ревью (а не как вот такое атомарное) это будет большой шаг в разработке.&lt;/p&gt;
&lt;p&gt;Не говорю, что текущее бесполезно. Но пока это на уровне «к пуговицам претензии есть?»&lt;/p&gt;
</description>
</item>

<item>
<title>Вайб-кодинг, дофамин и слот-машины</title>
<guid isPermaLink="false">209</guid>
<link>https://mikeozornin.ru/blog/all/vibe-coding-as-a-slot-machine/</link>
<pubDate>Sat, 06 Dec 2025 01:41:56 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/vibe-coding-as-a-slot-machine/</comments>
<description>
&lt;p class="lead"&gt;Осознал недавно, чем вайб-кодинг в его классическом виде похож на лудоманию и при чем тут дофамин&lt;/p&gt;
&lt;h2&gt;Что за вайб-кодинг такой&lt;/h2&gt;
&lt;p&gt;Давайте сначала начнем с определений. Не каждая разработка с ллмкой — вайб-кодинг, но каждый вайб-кодинг — разработка с помощью ллмки.&lt;/p&gt;
&lt;p&gt;Вайб-кодингом я буду называть программирование с помощью ллмки, в котором есть вот такие характеристики:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Мало изначального планирования. Буквально короткое описание, вкинутое в ллмку и потом разберемся походу.&lt;/li&gt;
&lt;li&gt;Попытка сразу попасть в нужную конечную точку. Желательно за одну итерацию.&lt;/li&gt;
&lt;li&gt;Значительная часть кода написана ллмкой. Человек в целом не читает весь код, не проверяет его, только смотрит на результат. Архитектура придумана тоже ллмкой и в целом какая вышла, такая вышла.&lt;/li&gt;
&lt;li&gt;Быстрые итерации, горячая перезагрузка. Сообщение об ошибках в целом не читаются, копипаст в чат, обновление.&lt;/li&gt;
&lt;li&gt;Небольшой горизонт планирования. Ощущение щас фичу допилим, разберемся. Похоже на стрельбу трассирующими — и стреляем и одновременно целимся.&lt;/li&gt;
&lt;li&gt;Вайб-дебагинг — вместо попыток понять, разобраться, понять причину — промт «почини» × 5 раз. Да, и это иногда срабатывает.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Я не говорю, что все это неправильно или плохо. Это просто то, что я бы назвал вайб-кодингом.&lt;/p&gt;
&lt;p&gt;Чтобы показать, что не каждая разработка с ллмкой — вайб-кодинг, давайте я попробую описать противоположный полюс. Я бы назвал это LLM assisted development.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Много изначального планирования. К началу первого промта есть достаточно подробный PRD, есть какие-то макеты, схемы взаимодействия, есть выбор технологий, примерная архитектура и схемы данных. Хоть как-то продуманы краевые и хитрые сценарии. Возможно, на отдельные технологические части сделаны прототипы.&lt;/li&gt;
&lt;li&gt;Реализация и приемка по частям: планомерная реализация модуля за модулем, планирование именно этого модуля, разработка, приемка, тесты, фиксация. После этого переход к следующему.&lt;/li&gt;
&lt;li&gt;Написание части кода самостоятельно или значительное ревью написанного.&lt;/li&gt;
&lt;li&gt;Общее ощущение, что ведет человек, ллмка — лишь инструмент. Очень мощный, местами самостоятельный, но инструмент.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Вайб-кодингом в силу понятных причин чаще заняты люди, кто сами не умеет программировать, а те, кто умеет, чаще склонны ко второму.&lt;/p&gt;
&lt;p class="loud"&gt;— Где уже тема поста, Лебовски! Я уже полторы страницы прочитал&lt;/p&gt;
&lt;h2&gt;Где здесь слот-машина&lt;/h2&gt;
&lt;p&gt;Вот мы подошли к главному. Я осознал, что вайб-кодинг обладает всеми теми же вещами, которые подсаживают слот-машины на дофамин. Я не биолог, проверяйте эту часть.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Негарантированная награда&lt;/b&gt;&lt;br /&gt;
Дофамин же вырабатывается не от самой награды, а от предвкушения награды. Если награда будет всегда, организму такое не нравится. Ему нравится, когда &lt;i&gt;иногда да&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Вайб-кодинг в чистом виде такой. Иногда промт сработает, иногда нет. Иногда ллмка уйдет в полную галюцинацию, но потом тем же самым промтом та же самая модель с очищенным и немного расширенным контекстом все за собой же починит.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Сверхкороткий цикл&lt;/b&gt;&lt;br /&gt;
Цикл действие-реакция (промт-результат) очень короткий, поэтому за несколько минут можно пройти несколько таких циклов. Это очень высокая плотность событий, редко что может создать такой мощный стимул. Именно поэтому слот-машина больше затягивает, чем покер. Покерная партия длится существенно дольше.&lt;/p&gt;
&lt;p&gt;Вайб-дебагинг 5 промтов в минуту и копипаст ошибок из консоли — предел такого короткого цикла.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Эффект почти-попадания (near-miss effect)&lt;/b&gt;&lt;br /&gt;
Бывает, что проект совсем не заводится, сыпется на комплияции, а интерфейс взрывается. Но бывает и то, что называется near-miss effect — ну вот-вот, уже почти. Вроде работает, но как-то хитро глючит. В целом ок, но криво сверстано.&lt;/p&gt;
&lt;p&gt;Прямо как в слот машине — не все три слота разные, а «ну вот же, две вишенки совпали, а третья не докрутилась всего на один шажок». Конечно, после почти-попадания желание продолжить значительно выше.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Всплеск нейромедиаторов при победе&lt;/b&gt;&lt;br /&gt;
Когда все в итоге завелось, приложение ЗА-РА-БО-ТА-ЛО вырабатывается огромное количество нейромедиаторов (как и при джекпоте). От адреналина аж пульс может подскочить.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Некоторые эмоциональные качели&lt;/b&gt;&lt;br /&gt;
Иногда ты сделаешь большую штуку за десять минут, а потом два часа будешь пытаться исправить досадный баг. В итоге качаешься между «Я молодец, ллм — лучшее, что есть в программировании» и «Я тупой, ллм ничего не может, зря я все это затеял».&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Сюрпризы и бонус&lt;/b&gt;&lt;br /&gt;
Иногда ллмка доставляет и просто бонусы — хоба и отломала те части, которые раньше работали. Это тоже сильные эмоции и некоторые эмоциональные качели: ах ты сволочь ←→ о, я починил.&lt;/p&gt;
&lt;p&gt;Могу сказать по себе, что программирование в стиле вайб-кодинга невероятно затягивает. Особенно когда вот-вот уже почти. На это вот-вот уже почти можно сжечь огромное количество времени. Ой, может другая модель сможет. Ой, а давай переформулирую.&lt;/p&gt;
&lt;p&gt;Если кодить близко к полюсу максимального вайб-кодинга, то прямо физически начинает ощущаться вот это состояние ажитации — вероятно, именно его чувствуют люди перед слот-машиной.&lt;/p&gt;
&lt;p&gt;В целом, не этом все.&lt;/p&gt;
&lt;h2&gt;Как же быть&lt;/h2&gt;
&lt;p&gt;&lt;aside class="aside-margin-right"&gt;&lt;span class="related-excerpt"&gt;Я не специалист в такой химии. Я мог бы с умным видом копипастнуть разбор Грока про норадреналин и анандамид. Но не буду. Спросите у ллмок&lt;/span&gt;&lt;/aside&gt;&lt;/p&gt;
&lt;p&gt;Мне кажется, что выход — программировать так близко к классическому програмированию, как можете. В программировании — состояние потока, фокус, длинные сессии, более медленный и стабильный темп. Уверен, что там совсем другая биохимия и другие нейромедиаторы.&lt;/p&gt;
&lt;p&gt;&lt;aside class="aside-margin-right"&gt;&lt;span class="related-excerpt"&gt;«Станьте ежиками» — это из анекдота&lt;/span&gt;&lt;/aside&gt;&lt;/p&gt;
&lt;p&gt;Ну а как быть, если кто-то не умеет программировать. Что за «станьте ~ежиками~ программистами» такое. Я понимаю, что легко сказать «читайте написанный ллмкой код», но все умеют. Но так или иначе, у меня есть гипотеза, что если двигаться максимально близко к варианту LLM assisted development, то будет лучше.&lt;/p&gt;
&lt;p&gt;Что я бы попробовал:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Начинайте с большого плана — на пару страниц даже для небольшого проекта.&lt;br /&gt;
Соберите в голове визуальный дизайн, подумайте про краевые случаи, заранее продумайте деплой. Соберите примеры кода, компонентов, референсы, ссылки на документацию. Опишите те вещи, которые обычно не описываете — адаптив или хоткеи. Вам все равно придется принимать все эти решения. &lt;i&gt;Вы можете принять их спокойно в начале или потом — в ажитации и перед слот-машиной.&lt;/i&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Разрабатывайте по частям. Держите в голове общий план, общую картинку, но делайте по этапам, не позволяя ллмке унести вас в сторону лишь потому, что она предложила «Нужло ли адаптивровать для очков виртуальной реальности?». Не так важны сами этапы, сколько нужно ощущение, что вы контролируете ллмку, а не она вас.&lt;/li&gt;
&lt;/ol&gt;
&lt;ol start="3"&gt;
&lt;li&gt;Возможно через шаблоны ответов лучше убрать вот эти «Отличный вопрос!» и другие восхваления искусственного интеллекта.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Способ с большим предварительным планом был единственным доступным еще пару лет назад. Ллмки не умели так хорошо следовать длинному плану, не умели так успешно вызывать тулы для обогащения своего контекста и не умели выполнять действия. Мы были &lt;i&gt;вынуждены&lt;/i&gt; проектировать сами и могли лишь просить ллмки написать отдельные модули или даже вовсе отдельные функции. А сейчас болт, реплит, лавабл и фигмамейк продвигают идею «Готовое приложение за одно предложение».&lt;/p&gt;
&lt;p class="loud"&gt;Вместо вывода. Ллмки позволяют нам делать вещи, которые мы бы не смогли без них. Но не разтеребите ими себе мозг, как это делает тикток. Уверен, ничего хорошего в этом не будет.&lt;/p&gt;
</description>
</item>

<item>
<title>Сайд-бай-сайб 0.2.0</title>
<guid isPermaLink="false">208</guid>
<link>https://mikeozornin.ru/blog/all/side-by-side-0-2-0/</link>
<pubDate>Sun, 30 Nov 2025 19:50:02 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/side-by-side-0-2-0/</comments>
<description>
&lt;p&gt;В &lt;a href="https://mikeozornin.ru/blog/all/hello-side-by-side/"&gt;сайд-бай-сайде&lt;/a&gt; вышла следующая версия&lt;/p&gt;
&lt;p&gt;Изменения:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Человекочитаемые URL для голосований&lt;br /&gt;
Было: /v/06b95c10-7688-4106-8e75-762035290c67/&lt;br /&gt;
Стало: /v/HairyParrotsPursueRudely/&lt;/li&gt;
&lt;/ol&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Улучшение интеграции с Mattermost:&lt;br /&gt;
Сайд-бай-сайд сгенерирует превьюшки к уведомлениям в чате.&lt;br /&gt;
По окончании голосованию в чате будет итог голосования.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Было:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/side-by-side-0.2.0-1@2x.png" width="390" height="112" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Стало:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/side-by-side-0.2.0-2@2x.png" width="688" height="472" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Мелочи:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Кликабельные ссылки в описаниях. Ссылки в комментарии станут кликабельными.&lt;/li&gt;
&lt;li&gt;На странице голосования теперь тоже показывается количество проголосовавших.&lt;/li&gt;
&lt;li&gt;На странице голосований можно прокручивать картинки перетаскиванием мыши&lt;/li&gt;
&lt;li&gt;Белый список доменов эл. почты. Можно указать домены, вход с которых будет разрешен.&lt;/li&gt;
&lt;li&gt;Драг-н-дропать файлы можно на всю страницу, даже на главную.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="loud"&gt;&lt;a href="https://github.com/mikeozornin/side-by-side"&gt;https://github.com/mikeozornin/side-by-side&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Recipe scaler: релиз 2</title>
<guid isPermaLink="false">206</guid>
<link>https://mikeozornin.ru/blog/all/recipe-scaler-release-2/</link>
<pubDate>Tue, 23 Sep 2025 04:14:38 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/recipe-scaler-release-2/</comments>
<description>
&lt;p class="lead"&gt;Вышел второй релиз Recipe scaler, про который &lt;a href="https://mikeozornin.ru/blog/all/hello-recipe-scaler/"&gt;я писал раньше&lt;/a&gt;. Фичи — огонь.&lt;/p&gt;
&lt;p&gt;Я доделал некоторые штуки, которых не хватало мне. Может быть, они помогут кому-то еще.&lt;/p&gt;
&lt;h2&gt;1. Импорт рецептов&lt;/h2&gt;
&lt;p&gt;Импортировать рецепты с любимого сайта сейчас стало сильно проще: вставляем ссылку, приложение сделает все остальное. Сходит на сайт, заберет веб-страницу, распарсит, вытащит текст рецепта и с помощью ИИ вытащит рецепт и разметит его. Я проверял на нескольких сайтах, в целом работает, но тут ИИ, парсинг, все может пойти не так. Если что, пишите.&lt;br /&gt;
&lt;video src="https://cdn-std.droplr.net/files/acc_383168/de10sr" style="width: 100%; height: 100%;" preload="auto" controls="" controlslist="download loop="loop"&gt;&lt;/video&gt;&lt;/p&gt;
&lt;h2&gt;2. Таймеры&lt;/h2&gt;
&lt;p&gt;Сейчас в рецепте можно разметить не только ингредиенты, но и таймеры: выстояться тесту, запечься овощам, свариться бульону. Кликнул на таймер в рецепте, он запустился. Как закончится — пропищит и даже кинет пуш-уведомление, даже в телефон (PWA).&lt;/p&gt;
&lt;p&gt;Таймеры автоматически синхронизируются, поэтому запустить можно и не бегая к телефону, который остался на кухне. При импорте и автоматическое ЛЛМ-разметке разметятся и таймеры.&lt;br /&gt;
&lt;video src="https://cdn-std.droplr.net/files/acc_383168/nyJX36" style="width: 100%; height: 100%;" preload="auto" controls="" controlslist="download loop="loop"&gt;&lt;/video&gt;&lt;/p&gt;
&lt;h2&gt;3. Always-on-режим экрана&lt;/h2&gt;
&lt;p&gt;Чтобы экран телефона не тух, когда вы с него готовите, можно включить «не гасить экран», пока опция включена, телефон не потушит экран. Да, оказывается в веб-апи есть и такое.&lt;/p&gt;
&lt;h2&gt;4. Режим редактирования и просмотра&lt;/h2&gt;
&lt;p&gt;Казалось бы, режимы — вредная штука, а здесь я отмечаю режим как улучшение. Обычно редактировать рецепт   нужно редко — записал, а дальше готовишь, готовишь и готовишь. Каждый день редактирование мешает — можно случайно что-то изменить и потом не заметишь. Сейчас есть просмотр, есть редактирование, случайно ничего не поменяешь.&lt;/p&gt;
&lt;h2&gt;5. Новый формат синхронизации&lt;/h2&gt;
&lt;p&gt;Под капотом переписана формат синхронизации, он стал более корректный с точки зрения CRDT и должен меньше ошибаться. Старый никто не забирает, не хотите, не мигрируйте.&lt;/p&gt;
&lt;p&gt;Попробуйте, если еще нет:&lt;/p&gt;
&lt;p class="loud"&gt;&lt;a href="https://recipe-scaler.ru"&gt;recipe-scaler.ru&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Если будут мысли, пишите: &lt;a href="mike.ozornin@gmail.com"&gt;mike.ozornin@gmail.com&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Анонс: Сайд-бай-сайд</title>
<guid isPermaLink="false">204</guid>
<link>https://mikeozornin.ru/blog/all/hello-side-by-side/</link>
<pubDate>Wed, 10 Sep 2025 22:06:37 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/hello-side-by-side/</comments>
<description>
&lt;p class="lead"&gt;Анонс еще одного продукта, на этот раз для работы&lt;/p&gt;
&lt;p&gt;Это приложение для голосовалок по картинкам (или видосам). Бывает, что нужно показать несколько вариантов и провести, так сказать, юикс ресерч. Знаю, как это решаю сам: почта, телеграм, эмодзи под сообщениями в чате. Собирать гуглдок не будешь, а без него агрегировать результаты — пытка. Я сделал сервис.&lt;/p&gt;
&lt;p&gt;Что можно:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Закинуть несколько картинок или видео в голосовалку.&lt;/li&gt;
&lt;li&gt;Дать людям проголосовать и через некоторое время посмотреть результаты.&lt;/li&gt;
&lt;li&gt;Есть &lt;a href="https://www.figma.com/community/plugin/1545946464465075859/side-by-side-voting"&gt;плагин для фигмы&lt;/a&gt;, чтобы загружать картинки прямиком из фигмы.&lt;/li&gt;
&lt;li&gt;Если хотите, можно не публиковать голосовалку ленту, доступ будет только по прямой ссылке.&lt;/li&gt;
&lt;li&gt;Можно включить уведомления в чат (пока поддерживается только маттермост, может сделаю телеграм) или пуши в браузере.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Как выглядит:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/side-by-side-1@2x.png" width="1310" height="1007" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Главная&lt;/div&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/side-by-side-2@2x.png" width="1310" height="1007" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Голосовалка&lt;/div&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/side-by-side-4@2x.png" width="1310" height="1007" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Создание&lt;/div&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/side-by-side-5@2x.png" width="1357" height="1111" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Результаты&lt;/div&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/side-by-side-6@2x.png" width="1310" height="1007" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Профиль и подключение плагина&lt;/div&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/side-by-side-7@2x.png" width="1113" height="695" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Плагин для Фигмы&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;В плане входа есть два варианта:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Все пользователи — с анонимным доступом, защиты голосовалки почти никакой нет и можно её просто инкогнито-режимом. Удалить голосование тоже не получится, сервис не знает, кто вы.&lt;/li&gt;
&lt;li&gt;Есть вариант с логином по магической ссылке, тогда для голосования тоже нужно будет войти. Вмест с ним появится удаление, досрочное завершение и даже браузерные пуши.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Понятно, что есть дарк-мод, автоматическое определение ретиновости картинок, вставка в область прямо из буфера и какая-никакая работа на телефоне.&lt;/p&gt;
&lt;p&gt;Я рассчитываю, что вы поднимите сервис где-то у себя. Во-первых, многие не будут готовы своим НДА-макеты куда-то выложить. Во-вторых, я не хочу разбираться с недопустимыми картинками у себя в хостинге. Поэтому опенсорс, там в целом не очень сложно, написали конфиг и запустили ансибл.&lt;/p&gt;
&lt;p class="loud"&gt;&lt;a href="https://github.com/mikeozornin/side-by-side"&gt;github.com/mikeozornin/side-by-side&lt;/a&gt;&lt;/p&gt;
&lt;p class="loud"&gt;&lt;a href="https://www.figma.com/community/plugin/1545946464465075859/side-by-side-voting"&gt;figma.com/community/plugin/1545946464465075859/side-by-side-voting&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Будут мысли, пишите: &lt;a href="mailto:mike.ozornin@gmail.com"&gt;mike.ozornin@gmail.com&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Курсор для … — это Курсор</title>
<guid isPermaLink="false">205</guid>
<link>https://mikeozornin.ru/blog/all/cursor-for-everybody/</link>
<pubDate>Sun, 07 Sep 2025 17:38:28 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/cursor-for-everybody/</comments>
<description>
&lt;p&gt;Я вижу много хайпа в попытках сделать более специализированное решение для дизайнеров, дата-саентистов, писателей, фронтов, бекендеров. Не ходите туда.&lt;/p&gt;
&lt;p&gt;На днях увидел про курсор для дизайнеров, &lt;a href="https://www.onlook.com"&gt;onlook.com&lt;/a&gt;. Несколько часов оно провисело на промте и потом сломалось. Ну окей.&lt;/p&gt;
&lt;p&gt;На первый взгляд специлизированные тулы выглядят перспективно, они  удобнее, лучше учитывают задачи конкретно вас. Возьмем тот же Фигма Мейк, болт, лавабл, реплит. Ощущение, когда ты написал промт и получил не кусок кода, а живой сервис — магическое. Первый раз это поражает. Я на 100% с вами согласен. Но потом инструмент начнет очень-очень жать. Захотите чуть отойти в сторону — все начнет ломаться и жать.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Захотите написать не на реакте, а на своей дизайн-системе (которая только на ангуляре), не выйдет. Фигма мейк умеет только в реакт и вы с ним ничего не сделаете.&lt;/li&gt;
&lt;li&gt;Захотите чуть быстрее бекенд и написать его на гоу, не получится, потому что инструмент умеет только в некст.жс.&lt;/li&gt;
&lt;li&gt;Будете делать какую-то штуку, для которой нужно иметь одинаковый рантайм в клиенте и сервере, окажется, что нельзя.&lt;/li&gt;
&lt;li&gt;Захотите сделать мобильное приложение или плагин фигмы, вам не дадут настроить КОРС и ничего не заработает.&lt;/li&gt;
&lt;li&gt;Захотите встроиться в поддомен сайта, не выйдет, потому что деплой так не умеет.&lt;/li&gt;
&lt;li&gt;Захотите забрать с собой код, окажется, что там все сильно завендорлочено и работать вне инфраструктуры не способно.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Потратьте чуть больше времени, изучите более общий инструмент, он даст выгоду в будущем. То самое волшебное ощущение можно попытаться вернуть шаблонами и рулами. Развернуть сайт на верцеле не принципиально сложнее, чем в фигма-мейке. До сих пор сложнее, но не настолько, чтобы это имело смысл.&lt;/p&gt;
&lt;p&gt;Закончу аналогией. На озоне продается много всяких агрегатов для хитрой нарезки чего-нибудь, но если посмотреть на повара, то он в целом обходится ножами. Почему? Потому что они универсальны, надежны и стабильны. А очередная нарезалка для узбекских помидоров не сможет нарезать дагестанский.&lt;/p&gt;
&lt;p&gt;Курсор для … — это Курсор&lt;/p&gt;
</description>
</item>

<item>
<title>Анонс Recipe scaler</title>
<guid isPermaLink="false">203</guid>
<link>https://mikeozornin.ru/blog/all/hello-recipe-scaler/</link>
<pubDate>Fri, 29 Aug 2025 09:04:03 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/hello-recipe-scaler/</comments>
<description>
&lt;p class="lead"&gt;Навайбкодил себе проект, вдруг кому будет полезен&lt;/p&gt;
&lt;p&gt;&lt;video src="https://cdn-std.droplr.net/files/acc_383168/1nwwVt" style="width: 100%; height: 100%;" preload="auto" controls="" controlslist="download loop="loop"&gt;&lt;/video&gt;&lt;/p&gt;
&lt;h2&gt;Зачем нужен&lt;/h2&gt;
&lt;p&gt;В рецептах обычно указывают количество ингредиентов на Х порций, а приготовить нужно на Y. В этих случаях приходится пересчитывать все ингредиенты рецепта, сохраняя пропорции.&lt;/p&gt;
&lt;p&gt;Для этого дизайн-директор Злых Марсиан Рома Шамин написал приложение Recipe scaler. Отлично приложение, долго им пользуюсь. Мне не хватало в нем текста описания, чтобы вставить сам рецепт, а ждать обновлений как будто не приходится. Я написал для себя свое другое.&lt;/p&gt;
&lt;p class="loud"&gt;&lt;a href="https://recipe-scaler.ru"&gt;recipe-scaler.ru&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Что я посчитал нужным добавить:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;Текст описания&lt;/i&gt;. Если в нем разметить ингредиенты, то будет актуальный рецепт на нужные пропорции&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Десктоп-версию&lt;/i&gt;. Бывает, что удобнее записать рецепт с компьютера, особенно если нужно скопировать рецепт с сайта, убрать лишнее, переписать.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Синхронизацию устройств&lt;/i&gt;. Можно написать рецепт на компьютере, а потом готовить по телефону.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Шаринг рецептов&lt;/i&gt;. Когда кто-то спросит «ой, а поделись рецептом», у вас будет ответ. В целом можно готовить прямо по пошаренному рецепту, их тоже можно пересчитать.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;ИИ&lt;/i&gt;. Куда же сейчас без него. Начните с рецепта и нажмите волшебную палочку. ИИ попробует распознать и разметить ингредиенты за вас, придется лишь чуть-чуть его поправить.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Мобильный:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/hello-recipe-scaler-2@2x.png" width="400" height="865.5" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Десктоп:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://mikeozornin.ru/blog/pictures/hello-recipe-scaler@2x.png" width="898" height="653" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Как работает&lt;/h2&gt;
&lt;p&gt;Рецепты хранятся у вас в браузере и синхронизируются на сервер. Можно писать в оффлайне, как выйдете в оффлайн, все синканется. Изменения можно делать даже в одном рецепте, конфликтов быть не должно (в теории), не каждый коммерческий продукт так умеет.&lt;/p&gt;
&lt;p&gt;Сервер не знает о вас ничего, кроме рецептов, — ни почты, ни телефона, ни аккаунта, даже айпи-адрес. Чтобы залогиниться на другое устройство, используются сид-фразы, как в криптокошельках, не потеряйте ее или сессию на любом из устройств.&lt;/p&gt;
&lt;p&gt;Приложение можно сохранить как PWA и на десктопе, и на телефоне. При добавлении сайта как PWA очищаются все локальные сторы, поэтому по умолчанию ваших рецептов там не будет. Зайдите в PWA как в новый девайс через сид-фразу.&lt;/p&gt;
&lt;p&gt;Неочевидные штуки:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Если ввести две и более черточки, то вставится разделитель, а если ввести название и не указывать ингредиенты, добавится заголовок.&lt;/li&gt;
&lt;li&gt;Если мыслите категориями порций, сделайте ингредиент «порции» и введите туда количество, можно будет пересчитывать по порциям.&lt;/li&gt;
&lt;li&gt;На тачпаде тоже работают свайпы для удаления.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Что под капотом&lt;/h2&gt;
&lt;p&gt;Если кому интересно, что внутри, то вот ключевые слова:&lt;br /&gt;
React, Tailwind (не берите, гадость), CRDT, YJS, Websockets, Express.js, Supabase, Openrouter, Gemini Flash.&lt;/p&gt;
&lt;p&gt;Предложения можно писать на &lt;a href="mike.ozornin@gmail.com"&gt;mike.ozornin@gmail.com&lt;/a&gt;.&lt;/p&gt;
</description>
</item>

<item>
<title>Странный юмор</title>
<guid isPermaLink="false">201</guid>
<link>https://mikeozornin.ru/blog/all/strange-humor/</link>
<pubDate>Wed, 25 Jun 2025 01:53:17 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/strange-humor/</comments>
<description>
&lt;p&gt;Собрал заметки с тегом «странный юмор». Есть удачные, есть не очень. Можно посмотреть, что было актуальным в то время — эдакая хронология в шутках.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.04.04&lt;/i&gt;&lt;br /&gt;
Хмели сумели&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.04.04&lt;/i&gt;&lt;br /&gt;
Общий объем информации, хранящейся на всех компьютерах Земли — 1 террабайт.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.04.04&lt;/i&gt;&lt;br /&gt;
Масса обеда хипстера — 1-2 инстаграмма.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.04.04&lt;/i&gt;&lt;br /&gt;
Парные и не парные копытные.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.04.04&lt;/i&gt;&lt;br /&gt;
Мимимикупер&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.04.26&lt;/i&gt;&lt;br /&gt;
Случай в Краснодаре:&lt;br /&gt;
— Пойдем посмотрим морского котика&lt;br /&gt;
— Тю, лень&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.04.27&lt;/i&gt;&lt;br /&gt;
Дактилескопия, ямбоскопия, хореескопия&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.05.14&lt;/i&gt;&lt;br /&gt;
1000 Пикачу — 1 Наночу&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.06.17&lt;/i&gt;&lt;br /&gt;
У скрам-коуча вечером аджайли телефон.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.07.07&lt;/i&gt;&lt;br /&gt;
Пользователи, роли и трава доступа&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.07.24&lt;/i&gt;&lt;br /&gt;
Скоро объявления о сдаче квартиры: Светлая однушка около метро, сделан спокойный ремонт, есть вся техника. Из квартиры ловится покемон gym.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.07.24&lt;/i&gt;&lt;br /&gt;
Если бы у меня жил дома тигр, назвал бы его «Евфрат».&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.08.12&lt;/i&gt;&lt;br /&gt;
Айфон 3жс для обычных людей и айфон д3.жс для @datalaboratory&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.08.15&lt;/i&gt;&lt;br /&gt;
Книги по выживанию: «Над пропастью не ржи» и вторая часть «Над пропастью не жри».&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.08.23&lt;/i&gt;&lt;br /&gt;
Бегемот-автомеханик: Сижу, никого не трогаю, починяю Приус&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.08.23&lt;/i&gt;&lt;br /&gt;
Аномалии всех стран, соединяйтесь.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.08.23&lt;/i&gt;&lt;br /&gt;
Ведущий инженер-погромист.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.08.25&lt;/i&gt;&lt;br /&gt;
Во всем мире «Мобайл фёст», а в Питере «Мобайл нева».&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.09.08&lt;/i&gt;&lt;br /&gt;
В кое-веки — ну наконец&lt;br /&gt;
В кои-8-веке — давно&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.09.17&lt;/i&gt;&lt;br /&gt;
Вейп-двигатель&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.10.10&lt;/i&gt;&lt;br /&gt;
Как на Андрюшины именины принесли мы Караваджо,&lt;br /&gt;
Вот такоооооой ширины,&lt;br /&gt;
Вот такоооооой вышины.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.10.10&lt;/i&gt;&lt;br /&gt;
Современный грузинский художник Ай Вайвай.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.10.16&lt;/i&gt;&lt;br /&gt;
Концепт по заявкам&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.10.29&lt;/i&gt;&lt;br /&gt;
Agile (террористическая организация, запрещенная на территории России)&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.10.29&lt;/i&gt;&lt;br /&gt;
Все выходят вот из зоны комфорта, не боитесь, что последний, кто там останется, закроется изнутри?&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.10.29&lt;/i&gt;&lt;br /&gt;
— Как идет ваше внедрение эджайла?&lt;br /&gt;
— Стыд и скрам&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.11.01&lt;/i&gt;&lt;br /&gt;
Шутка для датабазников и физиков: кажется тут какого-то поля не хватает.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.11.17&lt;/i&gt;&lt;br /&gt;
Айтана, айда за аймаком.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.11.20&lt;/i&gt;&lt;br /&gt;
— Интересует вакансия сис. админа&lt;br /&gt;
— Откликайтесь на вакансию в Линкедине&lt;br /&gt;
— Он заблокирован же&lt;br /&gt;
— Спасибо, вы нам не подходите&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.12.05&lt;/i&gt;&lt;br /&gt;
Московский театр сатиры Мхахахат&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.12.06&lt;/i&gt;&lt;br /&gt;
— Выйди из зоны комфорта и войди как положено.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.12.07&lt;/i&gt;&lt;br /&gt;
OS X El Capitan Obvious&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.12.08&lt;/i&gt;&lt;br /&gt;
В советское время все эти фразы имели смысл:&lt;br /&gt;
Купили часы с боем&lt;br /&gt;
С боем купили часы&lt;br /&gt;
С боем купили часы с боем&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.12.13&lt;/i&gt;&lt;br /&gt;
Первое правила Веганского Клуба: всегда упоминать о Веганском Клубе.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2016.12.15&lt;/i&gt;&lt;br /&gt;
Фасилитировали-фасилитировали,&lt;br /&gt;
да не выфасилитировали,&lt;br /&gt;
стали перефасилитировать —&lt;br /&gt;
зафасилитировались.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.01.13&lt;/i&gt;&lt;br /&gt;
Она хотела бы жить на Манхеттене&lt;br /&gt;
Ведь у неё дома в Омске щас света нет.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.01.22&lt;/i&gt;&lt;br /&gt;
Он был в гадлежащем состоянии.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.01.26&lt;/i&gt;&lt;br /&gt;
Шутка про ВИМ: выйди и зайди как положено.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.01.27&lt;/i&gt;&lt;br /&gt;
Дядя Федор и макбук:&lt;br /&gt;
Чтобы подключить к ноутбуку что-нибудь нужное, надо сначала отключить что-нибудь ненужное, а у меня усб-портов нет.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.02.01&lt;/i&gt;&lt;br /&gt;
Узник замка Иф&lt;br /&gt;
Узник замка Фор&lt;br /&gt;
Узник замка Гоуту&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.02.07&lt;/i&gt;&lt;br /&gt;
Фильмы для фронтендеров:&lt;br /&gt;
— Приключения Паддингтона&lt;br /&gt;
— Приключения Марджинтона&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.02.11&lt;/i&gt;&lt;br /&gt;
Фронтендер сделал в боулинге &amp;lt;strike&gt;.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.02.12&lt;/i&gt;&lt;br /&gt;
Любви все возрасты — попкорны.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.02.19&lt;/i&gt;&lt;br /&gt;
Сержант полиции Иванов задержал дыхание на 14 суток.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.02.27&lt;/i&gt;&lt;br /&gt;
Всех учат кнутом и пряником, а программистов — кнутом и фаулером.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.03.01&lt;/i&gt;&lt;br /&gt;
Лучше быть бедным и здоровым, чем поддатым и больным.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.03.01&lt;/i&gt;&lt;br /&gt;
Не до джиры, быть бы живу.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.03.24&lt;/i&gt;&lt;br /&gt;
Cancelярия мэрии Москвы.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.04.11&lt;/i&gt;&lt;br /&gt;
Московская коллегия адекватных&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.04.20&lt;/i&gt;&lt;br /&gt;
Автобомбиль&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.05.11&lt;/i&gt;&lt;br /&gt;
Люди ходят в тренажёрный зал, когда переусерствовали в нажорном.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.05.12&lt;/i&gt;&lt;br /&gt;
Всероссийская перекись населения&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.05.22&lt;/i&gt;&lt;br /&gt;
Старательная резинка&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.05.26&lt;/i&gt;&lt;br /&gt;
Бранденбургские болота&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.05.26&lt;/i&gt;&lt;br /&gt;
Заключение под спаржу как мера пресечения правонарушений&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.06.24&lt;/i&gt;&lt;br /&gt;
Кубок конфигураций&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.08.07&lt;/i&gt;&lt;br /&gt;
Жена мужу:&lt;br /&gt;
— Почему не помыл вот и кастрюлю тоже?&lt;br /&gt;
— На это есть отдельная юзерстори.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.08.30&lt;/i&gt;&lt;br /&gt;
CIEO: Chief Internet Explorer Officer&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.09.09&lt;/i&gt;&lt;br /&gt;
Пикачу — это глагол&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.09.12&lt;/i&gt;&lt;br /&gt;
Парк Замкадье&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.10.09&lt;/i&gt;&lt;br /&gt;
— Где площадь Навона?&lt;br /&gt;
— Да вон она&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.10.12&lt;/i&gt;&lt;br /&gt;
Сосиска в тексте&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.10.23&lt;/i&gt;&lt;br /&gt;
Карл у коалы украл кораллы, а коала у Карла украла кларнет.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.11.02&lt;/i&gt;&lt;br /&gt;
Совершить тяжкий grep&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.12.05&lt;/i&gt;&lt;br /&gt;
Волхв и семеро козлят&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.12.13&lt;/i&gt;&lt;br /&gt;
Жить в эпоху репостмодернизма&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2017.12.20&lt;/i&gt;&lt;br /&gt;
Any key Skywalker&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.01.11&lt;/i&gt;&lt;br /&gt;
Западное Бирюлёво и Бирюлёво Славянофилов&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.01.26&lt;/i&gt;&lt;br /&gt;
Путь из френдленты во френдзону&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.02.01&lt;/i&gt;&lt;br /&gt;
Почему-то арт-хаус часто становится арт-хаосом&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.02.01&lt;/i&gt;&lt;br /&gt;
Когда падает снег все радуются и выкладывают сторис в инстаграм, а когда падает сервер — нет&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.02.09&lt;/i&gt;&lt;br /&gt;
А когда в объявлении написано «Строго славяням» можно откликаться если ты из древлян? А полянам и северянам?&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.02.26&lt;/i&gt;&lt;br /&gt;
Что общего у физика, специалиста по базам данным и агронома?&lt;br /&gt;
Им бы лишь бы поле добавить.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.02.27&lt;/i&gt;&lt;br /&gt;
BigData — это когда данные не влезают в Excel, а HighLoad — когда VPS за 10 долларов недостаточно.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.02.28&lt;/i&gt;&lt;br /&gt;
Значительная часть проблем в мире возникает от того, что «ответственные лица» безответственные.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.03.16&lt;/i&gt;&lt;br /&gt;
Людвиг ван Биткоин&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.04.16&lt;/i&gt;&lt;br /&gt;
Что-то вы на подзабилити на юзабилити&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.04.17&lt;/i&gt;&lt;br /&gt;
Придумал рекламную компанию инфостиля:&lt;br /&gt;
Детям в Африке не хватает воды, потому что она твоем тексте. Используй инфостиль.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.05.03&lt;/i&gt;&lt;br /&gt;
Цвет настроения #0059FF&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.06.04&lt;/i&gt;&lt;br /&gt;
Пир-ту-пир во время чумы&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.06.25&lt;/i&gt;&lt;br /&gt;
Веганы плакали, кололись, но продолжали есть кактус.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.07.06&lt;/i&gt;&lt;br /&gt;
Партия рыбаков:&lt;br /&gt;
Каждому рыбаку — леща!&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.10.12&lt;/i&gt;&lt;br /&gt;
Пришел, увидел, заверстал&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.10.22&lt;/i&gt;&lt;br /&gt;
Ошалел — купил коттедж в Альпах&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.10.24&lt;/i&gt;&lt;br /&gt;
—Знаю людей как vim.&lt;br /&gt;
—??&lt;br /&gt;
—Умеют только пищать и все портить.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2018.11.12&lt;/i&gt;&lt;br /&gt;
— Я учусь в Южно-Уральском государственном коллежде возведения средств физической защиты периметра.&lt;br /&gt;
— Что?&lt;br /&gt;
— В заборостроительном техникуме.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2019.02.14&lt;/i&gt;&lt;br /&gt;
Чары эйчара&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2019.04.08&lt;/i&gt;&lt;br /&gt;
Мумерованный и наркированный список&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2019.05.13&lt;/i&gt;&lt;br /&gt;
Я не смотрю Games of thrones, но судя по тому, что слышу вокруг:&lt;br /&gt;
Положительный герой — убивает отрицательных&lt;br /&gt;
Отрицательный герой — убивает положительных&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2019.05.28&lt;/i&gt;&lt;br /&gt;
Яндекс.флешка это такой Яндекс.диск, только меньше объемом.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2019.06.19&lt;/i&gt;&lt;br /&gt;
Жду когда-нибудь копирайтер напишет незабвенное:&lt;br /&gt;
Все, что вы хотели знать о фобиях, но боялись спросить.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;2024.02.05&lt;/i&gt;&lt;br /&gt;
Либертарианцам Хавьер всех Милей&lt;/p&gt;
</description>
</item>

<item>
<title>ИИ-браузер vs нормальный браузер</title>
<guid isPermaLink="false">200</guid>
<link>https://mikeozornin.ru/blog/all/ai-browser-vs-just-ok-browser/</link>
<pubDate>Tue, 27 May 2025 14:43:36 +0300</pubDate>
<author>Михаил Озорнин</author>
<comments>https://mikeozornin.ru/blog/all/ai-browser-vs-just-ok-browser/</comments>
<description>
&lt;p&gt;Тут Браузер кампани, которая делала Арк, анонсировала &lt;a href="http://diabrowser.com"&gt;новый браузер Диа с ИИ&lt;/a&gt;. А мне хочется не браузер с ИИ, а просто нормальный браузер. Хочу браузер, который встает на сторону пользователя. Не на сторону сайта, не на сторону рекламодателя, не на сторону государства, а на мою. В идеале в 100% случаев, но я готов потерпеть и поменьше.&lt;/p&gt;
&lt;p&gt;Нормальный это какой? Вот такой:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;С поддержкой расширений и из хрома, и из фф, — откуда угодно. У вас и там, и там есть WebExtensions API, браузеры уже сейчас поддерживают и Манифест V2, и V3. Дак к чему эти различия в расширениях, сделайте поддержку всех сторов и форматов.&lt;/li&gt;
&lt;li&gt;Разрешающий сохранить картинку, даже если она вставлена хитро: через background-image, blob или как-то еще. Сохранять картину из веб-страницы это прямо базовая штука.&lt;/li&gt;
&lt;li&gt;Провокационный пункт: разрешающий скачать видео. Любое видео в интернете все все равно можно через yt-dlp скачать. Только сейчас нужно запустить консольное приложение, а мог бы и сам браузер скачать, ему же даже легче.&lt;/li&gt;
&lt;li&gt;Разрешающий выделить текст на странице. Всегда. Без вот этих «копирайт, поэтому выделить нельзя».&lt;/li&gt;
&lt;li&gt;С нормальным адблоком. В сафари нормального адблока нет уже много лет, скоро нормальный пропадет из хромов. Я бы бы рад браузеру, где нормальный адблок сохранился.&lt;br /&gt;
Хотите прикрутить куда-то ИИ? Встройте ИИ в адблок, чтобы мне проще было указать где реклама. Это же абсурд, что человеческий глаз выделяет её за 50 миллисекунд, а браузерный адблок «ой, тут сложные цсс-классы, не могу понять где баннер».&lt;/li&gt;
&lt;li&gt;Блокирующий трекинг фейсбука и гугла.&lt;/li&gt;
&lt;li&gt;Режим не беспокоить по умолчанию, чтобы сайтам было сложнее начать играть какой-то видос или музыку, пиликать и блюмкать.&lt;/li&gt;
&lt;li&gt;Восстановление вкладок при падении или перезапуске. Не как сейчас, когда в 2% случаев может все потеряться. У вас диск пишет со скоростью 2 гигабайта в секунду, а читает 5, вы можете дампить вкладки раз в секунду так, что никто не заметит.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Под некоторые пункты тут подходит &lt;a href="https://kagi.com/orion/"&gt;Орион&lt;/a&gt;, но у него нет синхронизации истории с телефоном.&lt;/p&gt;
&lt;p&gt;Понятно, что такой браузер будут банить все сервисы: ютуб, маркетплейсы, все новостные сайты. Ну вы технари, придумайте, как сделать так, чтобы не банили.&lt;/p&gt;
&lt;p&gt;А фичи этого ИИ браузера в виде «возьми товары из этой заметки и добавь их все в корзину» — ну не знаю...&lt;/p&gt;
</description>
</item>


</channel>
</rss>