Пользуюсь Mac, и каждый раз, когда нужно было зайти на Госуслуги по электронной подписи, отчитаться в личном кабинете налоговой или подписать документ в Диадоке, приходилось открывать Chrome. Госплагин, Контур.Плагин и КриптоПро ЭЦП Browser plug-in официально работают только в Chrome-подобных браузерах: расширений для Safari у них нет (у КриптоПро старое есть, но в новых Safari оно даже не появляется в настройках).
Надоело — сделал три небольших бесплатных приложения для macOS:
— Gosplugin Safari — Госуслуги (ЕСИА): вход по ЭЦП и подписание заявлений; — Kontur Safari — Диадок и другие сервисы Контура; — CryptoPro Safari — личный кабинет ФНС (nalog.ru), торговые площадки и другие сайты с КриптоПро ЭЦП Browser plug-in.
Как это работает: внутри каждого — официальное расширение из Chrome Web Store, переделанное под Safari, и маленький «мост» к официальному плагину, который уже стоит у вас на Mac. Плагин, КриптоПро CSP и ваш носитель (Рутокен, JaCarta и т. д.) остаются те же. Safari не пускает расширения к программам на компьютере напрямую, поэтому мост пришлось делать самому — подробности для любопытных в README.
Про безопасность (понимаю, что это первый вопрос, когда речь об ЭЦП):
— код полностью открыт на GitHub, можно посмотреть и собрать самому в Xcode; — приложения ничего никуда не отправляют: мост работает только внутри вашего Mac (127.0.0.1) и принимает запросы только от своего расширения; — PIN-код и саму подпись обрабатывают официальный плагин и КриптоПро — ровно как в Chrome.
Нюанс: платного аккаунта разработчика Apple у меня нет, поэтому приложения не подписаны. Варианта два: один раз подписать их своим бесплатным сертификатом Apple Development (инструкция в README, пара команд в Терминале) или включить в Safari «Разработка → Разрешить неподписанные расширения» — но это придётся делать после каждого перезапуска Safari.
Что нужно: macOS 12+, Safari 16+, КриптоПро CSP с лицензией и нужный плагин. Chrome не нужен. Работает на Apple Silicon и Intel.
Проект не связан с Госуслугами, Контуром или КриптоПро — сделал для себя и решил поделиться. Если у кого-то не заработает — пишите в комментариях или в Issues на GitHub, разберёмся.
Вступление: маленькая жалоба человека, который просто хочет работать
Если ты дизайнер, фотограф или любой другой человек, который зарабатывает креативом, ты давно знаешь эту боль. Adobe — это не просто программа. Это целый мир, в котором тебя либо нет, либо ты есть на их условиях.
Раньше было проще: купил диск, поставил, работаешь. Потом Adobe решила, что владеть — устарело, и перешла на подписку. Для кого-то это просто «ещё один платёж». А для нас, в России, это превратилось в отдельный вид спорта.
Оформить официальную подписку? Удачи. Карты не работают, аккаунты блокируются. Оплатить через посредников? Можно, но это уже не «подписка», а квест с непредсказуемым финалом: сегодня заплатил — завтра доступ отвалился, а деньги ушли в никуда.
Остаётся классика — ломаная версия. И вот тут начинается настоящая лотерея. Скачал «проверенный» билд — и надеешься, чтобы внутри не оказалось майнера, стилера или просто чего-нибудь, что превратит твой рабочий ноутбук в кирпич. Обновления не приходят, плагины отваливаются, а техподдержка — это форум, где такие же страдальцы советуют «переустановить с другого торрента».
Ты не пользователь. Ты выживаешь.
И вот на этом фоне появляются разработчики на Rust. Они, вероятно, подумали: «Adobe может это сделать, и мы можем — на языке с безопасной памятью. И бесплатно. И с открытым исходным кодом. И без всей этой возни с лицензиями, аккаунтами и блокировками». Признаюсь, смелость вызывает уважение — это как сосед-энтузиаст, который после третьей бутылки пива заявляет, что сам построит баню лучше, чем все эти «профессиональные бригады с их сметами». Абсурдно, но почему-то хочется посмотреть, что получится.
Так родился ArtCraft. Набор из семи приложений — «бесплатная замена семейству Adobe» — написанных с нуля на Rust, все бесплатные и с открытым исходным кодом. Скачал — и работаешь. Без карт, без VPN, без «кряков» и без нервов.
Семь приложений ArtCraft практически повторяют продуктовую линейку Adobe, почтительно «отдавая дань уважения» каждому продукту. Пробежимся быстро:
1. PhotoCraft — замена Photoshop
PhotoCraft: The image editor you already know how to use — так звучит официальный слоган, и это не ложь. Интерфейс, панель инструментов слева, слои справа — ты просто сменил логотип. Самое зрелое приложение в наборе, уже в Alpha, функции пока неполные, но «на каждый день хватает». Самое смешное: из 135 реальных тестовых PSD-файлов 134 после открытия и сохранения остались побитово идентичными. Слои, маски, корректирующие слои, стили слоёв, текст, векторы, кисти, поддержка RGB, CMYK, Lab, градаций серого, 8/16/32 бит, управление цветом ICC и soft proofing — всё это уже на месте.
Честно о готовности: это не Photoshop, это «прошлое» Photoshop
Одну вещь нужно сказать прямо: сам PhotoCraft пишет в своём README — «early alpha», и команда честно признаёт, что он «пока не является заменой Photoshop для ежедневной профессиональной работы». Покрытие функций — примерно 50%. Список того, чего нет, займёт целую страницу: AI-генерации нет, около 20 инструментов не реализовано, работа с текстом и шрифтами поверхностная, плагины несовместимы вообще. Пользователи на Hacker News уже сообщают о куче багов: свободное трансформирование нестабильно, базовые маски и цветокоррекция работают, но до «удобно» ещё далеко.
Но.
Ты помнишь, каким был Photoshop десять лет назад?
В CS5 2010 года самой впечатляющей новой функцией были Content-Aware Fill и Puppet Warp. В CS6 2012 года — «новый инструмент кадрирования» и «улучшенный фильтр Liquify». В 2013-м началась эра CC, и Camera Shake Reduction с Perspective Warp считались большими новостями.
Другими словами: то, что десять лет назад ты покупал за несколько тысяч как «профессиональный инструмент», по сегодняшним меркам — так себе. Слои, маски, кривые, кисти — всё это устоялось ещё в Photoshop 7 2005 года. Всё, что Adobe делала последние пятнадцать лет — добавляла фильтры, добавляла AI-функции, переносила всё в облако и брала с тебя деньги ежемесячно.
PhotoCraft сейчас — это примерно уровень Photoshop CS. Не впечатляюще, но достаточно. А «достаточно» — именно то слово, которого Adobe боится больше всего.
И вот тут важный момент для нас. Если ты в России и у тебя нет ни официальной подписки, ни стабильного доступа к обновлениям, ни гарантий, что «кряк» не окажется трояном — «уровень Photoshop CS» перестаёт быть компромиссом. Это уже апгрейд. Потому что альтернатива — это либо ежемесячный квест с оплатой, либо лотерея с торрентами, либо GIMP, который всё ещё выглядит как программа из 1998 года.
2. VectorCraft — замена Illustrator
Vector illustration, reimagined in pure Rust — векторная графика, пути, опорные точки, кривые Безье, инструмент «Перо», Pathfinder, градиентные сетки, обводки. Не жди, что он откроет сложные AI-файлы — текущее позиционирование: «рисовать с нуля». Он заявляет, что рендерит 20 000 фигур за 27 миллисекунд при Retina-разрешении. Разработчики честно пишут: около 68–74% функций Illustrator уже работают, а «отличить от оригинала сможет примерно 40–55% опытных пользователей».
Professional video editing, rebuilt from scratch — видеомонтаж, таймлайн, дорожки, обрезка, трёхточечный монтаж, цветокоррекция через кривые, цветовые круги, HSL и LUT, HDR и Log-видео. Около 55 видеоэффектов, 30 переходов, ключевые кадры. Уникальная деталь: не полагается на FFmpeg, а реализует кодеки H.264, HEVC, ProRes, VP9, AAC и Opus самостоятельно. Разработчики честно оценивают готовность: примерно 45% на пути к Premiere Pro.
Your photos. Your pixels. Your machine — неразрушающее редактирование RAW-файлов, экспозиция, цвет, тональные кривые, 8-полосный цветовой микшер, трёхсторонняя цветокоррекция. Поддерживает DNG, CR2, ARW, NEF, RAF, RW2, PEF, ORF и другие форматы RAW через собственные Rust-декодеры. Разработчики честно оценивают: ~79% функций Lightroom присутствуют, но как «ежедневная замена» — около 60–70%. Главные пробелы: калибровка камеры для не-DNG файлов, AI-маски и шумоподавление.
Разделить, объединить, сжать, поставить пароль, аннотировать, работать с формами. Тот инструмент, который Adobe должна была давать бесплатно. Логика PdfCraft проста: базовые операции с PDF — почему они должны быть платными? Он даже прошёл тест на 958 реальных PDF-файлах с открытием, редактированием и сохранением без сбоев. На данный момент — Early Alpha.
306 эффектов — все 298 из After Effects и даже больше. Моушн-графика, композитинг, 3D-слои, камеры, освещение, Puppet-инструменты, Render Queue, экспорт в Lottie. Технически самое сложное приложение во всём наборе, и оно, скорее всего, пока на очень ранней стадии. Если оно достигнет 10% возможностей AE — это уже будет чудом.
Page layout and publishing — вёрстка журналов, книг, многостраничных документов, работа с текстом, стилями, мастер-страницами, обтеканием. В этой области почти нет достойных открытых альтернатив. Scribus вроде есть, но опыт использования неописуемый. Если DesignCraft сможет достичь уровня «не вылетает» — он уже победил.
Честно о неполной готовности: а что вообще можно делать уже сейчас?
Ладно, допустим, ты не профессиональный ретушёр и не собираешься верстать обложку Vogue. Допустим, тебе от PhotoCraft нужно что-то простое. И вот тут всё становится на свои места.
Создать фотожабу или мем? Да, запросто. Вставил картинку, наложил текст, поиграл с размером и цветом — готово. Никто не отличит от «сделанного в Photoshop», потому что по сути это одно и то же.
Замазать прыщи на фото? Тоже хватит. Инструменты выделения, клонирование, размытие, корректирующие слои — базовый набор для бытовой ретуши на месте. Портрет для соцсетей, фото на документы, да хоть кота в шапку — всё это делается без бубна.
Убрать лишний объект со снимка, подправить горизонт, вытянуть тени? Пожалуйста. Именно для этого там есть слои, маски и цветокоррекция.
А вот чего не хватит? Профессиональной работы с текстом и шрифтами, плагинов, AI-функций вроде генеративного заполнения, сложного композитинга на 50 слоёв, ну и всего того, за что Adobe дерёт три шкуры.
Так что если твоя задача — «сделать смешную картинку для чата» или «привести в порядок фото для аватарки» — PhotoCraft уже сейчас справляется с этим на уровне «достаточно». А если тебе нужно верстать журнал или делать сложную рекламную графику — придётся подождать. Может, год. Может, два. Может, ребята допилят раньше, чем Adobe выпустит очередной платный апдейт.
Запомни главное: «неполная готовность» — это не приговор. Это просто честность. И если тебе нужно наклеить усы на фото кота — тебе абсолютно всё равно, что там не реализовано 20 инструментов и нет AI-генерации.
Что действительно стоит обсудить — как они это делают
Технические решения ArtCraft интереснее его списка функций. Каждое решение этой команды выглядит как средний палец инженерной команде Adobe.
«Это написано на Rust» — теперь это символ веры В сообществе Rust есть полушутливая поговорка: любое ПО должно быть переписано на Rust, включая твою микроволновку. Смешное в этой шутке то, что это правда. Энтузиазм Rust-разработчиков по поводу «переписать всё на Rust» сравним с заботой миссионера о язычниках.
Но если отбросить мемы, у Rust в области креативного ПО действительно есть реальное преимущество. Продукты Adobe массово используют C++, и отчёты Microsoft и Google указывают, что около 70% серьёзных уязвимостей связаны с проблемами безопасности памяти. Rust исключает эти ошибки на этапе компиляции. Когда ты обрабатываешь фотографии, видео и дизайн-файлы пользователя, «не упасть и не выполнить произвольный код из-за вредоносной картинки» — довольно убедительное преимущество. Особенно если ты годами качал «проверенные» сборки и каждый раз надеялся, что внутри нет сюрприза.
«Никакого Electron» — твоя оперативка кланяется в благодарность Если ты одновременно держишь открытыми VS Code, Slack и Discord, твой компьютер уже кричит о помощи. Все три приложения сделаны на Electron, каждое упаковывает целый Chromium и жрёт больше 200 МБ памяти. ArtCraft пошёл другим путём: нативный скомпилированный Rust-бэкенд плюс системный WebView. Результат: приложения запускаются быстрее, потребление памяти может составлять десятую часть от Electron-приложений.
«Работает прямо в браузере» — дизайн на микроволновке становится реальностью Благодаря технологии WebAssembly (WASM) часть приложений ArtCraft может работать прямо во вкладке браузера. Rust-модули, скомпилированные в WASM, компактны, эффективны в исполнении и полностью не зависят от сервера — твои файлы никогда не покидают твой компьютер. Ещё одна забавная деталь: у семи приложений есть общий дизайн — одна и та же команда может управляться из интерфейса, командной строки, JSON-канала управления или MCP-сервера (протокол, позволяющий AI-агентам вызывать внешние инструменты). PhotoCraft зарегистрировал более 500 команд. Весь набор с первого дня предполагает, что оператором может быть не человек.
Мультиплатформенность Долгое время ситуация Linux-пользователя с Adobe выглядела так: не «не хочу», а «не могу».Adobe официально никогда не выпускала версию Photoshop для Linux, установщик Creative Cloud на Linux просто отказывается работать. Те, кто упорно занимался дизайном на Linux, либо держали виртуалку с Windows (и терпели падение производительности вдвое), либо использовали GIMP — а опыт GIMP, скажем так, замечательный, но его интерфейс выглядит так, будто его проектировали в 1998 году.
Конечно, были смельчаки. В начале 2026 года разработчик по имени PhialsBasement доработал слой совместимости Wine, и Photoshop 2021 и 2025 вдруг заработали на Linux. Технически — выдающееся достижение, но порог входа абсурдно высок: нужно вручную скомпилировать пропатченный Wine, а сама боль этого процесса примерно равна рисованию полноценной обложки журнала в GIMP.
А ArtCraft делает всё иначе. Семь приложений, нативная поддержка macOS, Windows и Linux. Не трансляция через Wine, не виртуалка — скомпилированные нативные бинарники. На Ubuntu запускается двойным щелчком, на Fedora тоже. А благодаря компиляции Rust в WebAssembly, большинство приложений ещё и работают прямо в браузере.
Что это значит? Это значит, что классическая насмешка — «на Linux даже Photoshop нет» — с сегодняшнего дня технически перестаёт быть правдой. Windows-пользователи, конечно, могут сказать: «У нас есть лицензионный Adobe, а у вас — open-source игрушка в alpha». Это пока ещё можно сказать. Но подумай: разница между alpha-версией с 50% функций и полным отсутствием инструмента гораздо больше, чем разница между «50%» и «100%». Есть и нет — это качественная разница.
Так что в следующий раз, когда Windows-пользователь скажет «ко-ко-ко», можешь спокойно ответить: «У меня на Linux нативные PhotoCraft, VectorCraft, FilmCraft. А у тебя — письмо от юристов Adobe».
Так стоит ли качать прямо сейчас?
Честно говоря: зависит от ситуации.
Если тебе прямо сейчас нужен инструмент, способный заменить Photoshop в продакшене, ArtCraft, вероятно, ещё не дотягивает. PhotoCraft — относительно самый зрелый, но большинство приложений набора всё ещё на ранних стадиях разработки или Alpha. Сам разработчик признаёт, что PhotoCraft реализует лишь 25–35% функционала, необходимого для замены Photoshop в ежедневной профессиональной работе.
Но если ты из тех, кто любит пробовать новое, или просто устал от вечной возни с оплатой, VPN и «проверенными» сборками — ArtCraft заслуживает внимания. Он представляет собой возможность: креативные инструменты не обязательно должны быть закрытыми, дорогими и раздутыми. Они могут быть управляемыми сообществом, построенными на современном языке и уважающими железо и кошелёк пользователя.
Эти ребята на Rust могут быть немного наивны. Они могут недооценивать барьеры тридцатилетних алгоритмов Adobe и совместимости форматов. Возможно, в итоге они сделают продукт, покрывающий лишь 60% потребностей.
Но 60% Photoshop, бесплатно, без карт, без аккаунтов, без блокировок, нативно на Linux — это чертовски больше, чем 0%. А если учесть, что десять лет назад «профессиональный Photoshop» умел примерно то же самое, что PhotoCraft сегодня, — перспектива становится ещё интереснее.
А что насчёт AutoCAD?
И вот тут возникает логичный вопрос: если эти ребята уже замахнулись на Adobe, почему бы не пойти дальше?
AutoCAD — это отдельная боль. Официальная подписка стоит как крыло от самолёта, для студентов и небольших мастерских — неподъёмно. В России ситуация ещё веселее: Autodesk ушла с рынка, официальные лицензии не купить, а «кряки» — та же лотерея, что и с Adobe, только ставки выше, потому что на кону не картинки, а реальные проекты, документация и производство. FreeCAD существует, но его интерфейс — это отдельный жанр психологического хоррора, а совместимость с DWG оставляет желать лучшего.
Так вот: если ты инженер, архитектор, конструктор или просто человек, которому нужен нормальный бесплатный CAD на Rust — напиши ребятам из ArtCraft. У них есть Discord, есть GitHub, есть Issues. Они уже доказали, что не боятся сложных задач. PhotoCraft — это Photoshop. FilmCraft — это Premiere. Почему бы не появиться CadCraft — DWG, параметрическое моделирование, 2D-чертежи, 3D-тела, всё как у взрослых, но бесплатно и с открытым кодом?
Конечно, CAD — это в разы сложнее, чем даже EffectCraft. Тридцатилетние форматы, математика поверхностей, огромные экосистемы плагинов. Но если кто-то и способен хотя бы попробовать — это команда, которая уже переписала на Rust половину Creative Cloud.
Не стесняйся. Напиши им. Хуже не будет. А вдруг — получится?
Рекомендуемый маршрут действий: загляни на getartcraft.com, присоединись к их Discord, открой Issue или поставь Star на GitHub. Даже если ты сейчас не пользуешься — дать этим людям знать, что за ними наблюдают, уже поддержка. А если тебе нужен AutoCAD — так и напиши: «Ребята, а слабо?» Кто знает, может, через год мы будем читать обзор на CadCraft и вспоминать, как всё начиналось с бесплатного Photoshop без лотереи с «кряками».
Я менеджер в большой компании. Мой обычный день - это шесть-восемь созвонов подряд: планёрки, разборы, «пятиминутки», которые идут час. К вечеру в голове каша. Я обещал подготовить план работ? Мы решили переносить релиз или только обсуждали? И что, чёрт возьми, я пообещал Егору в 11:30? Вспомнить кому и что я обещал просто невозможно.
Похоже на меня в конце дня.
Блокнот до конца не спасает. Пока я записываю одну задачу коллеги набрасывают три сверху. Запись на диктофон не спасает. Прослушивание удлиняет подготовку итогов встречи в 2-3 раза.
Что пробовал раньше
Сначала просто писал все встречи через OBS, а потом пересматривал куски, которые забыл. Получалось долго: записей за день набиралось на несколько часов, искать в них нужное место - отдельная работа. А ещё я регулярно забывал включить OBS.
Потом попробовал встроенную запись площадок. МТС Линк и eXpress умеют записывать встречи. Но встречи у меня идут в разных местах: с продуктовыми командами в Zoom, с подрядчиками в Телемосте, у банка что-то своё. Везде своя кнопка, и везде нужно не забыть её нажать.
Вернулся к OBS и добавил Whisper отдельным приложением для расшифровки. Стало лучше, но проблемы остались: запись я по-прежнему забывал включать, а расшифровку приходилось запускать руками.
Последней попыткой был Screenpipe - программа, которая пишет всё, что происходит на компьютере. Ресурсов она ест как не в себя, всё только на английском, пишет постоянно, а не только встречи. И всё это копится на диске, откуда может утечь.
Из всех этих попыток сложился список того, что мне на самом деле нужно:
запись включается сама, когда начинается созвон, в любой программе;
расшифровка и итоги готовятся сами, без кнопок;
всё по-русски;
ничего не уходит с компьютера и не пишется лишнего.
Готового решения с таким набором я не нашёл и попробовал сделать сам.
Как я это делал
Сразу признаюсь: программист из меня так себе. Весь мой опыт разработки - скрипты на bash, которые автоматизировали установку программ, и Бейсик в колледже. Так что код за меня писали нейросети, а я ставил задачи, проверял и ругался.
По вечерам и выходным ушла неделя до первого прототипа и месяц до продукта, которым можно пользоваться каждый день.
Наша совместная работа выглядела примерно так:
Конь, кстати, ни разу не пожаловался.
Что получилось
Итогом работ получилась Surnia - приложение для записи звонков, которое живёт в строке меню Mac с маскотом совы. Включил камеру на созвоне - и программа начинает запись сама (можно и вручную из меню). После встречи автоматом собирает заметку: тема, решения, задачи и полная расшифровка. И что очень важно для меня - всё происходит на самом компьютере. Запись, расшифровка и пересказ никуда не отправляются.
Что в итоге умеет приложение
Само понимает, что начался созвон. Приложение следит не за конкретной программой, а за камерой: включилась камера - пошла запись, выключилась - через полминуты запись закончилась. Поэтому всё равно, где встреча: Zoom, Телемост, МТС Линк или что-то своё у банка. Если созвон без камеры, запись включается одной кнопкой в меню.
Пишет меня и собеседников раздельно. Мой микрофон и звук из колонок идут разными дорожками, поэтому в расшифровке сразу видно, где говорил я, а где остальные.
Узнаёт людей по голосу. Один раз послушал фрагмент и назвал человека, дальше в расшифровке будет «Егор», а не «Собеседник 2».
Пишет пересказ по шаблону. Шаблон - обычная заметка с инструкцией для нейросети. Хочешь другие разделы или другой тон - правишь текст, и следующие встречи собираются по-новому.
Разбирает готовые записи. Файл из Zoom, Teams или диктофона кидаешь в меню «Разобрать запись…» и получаешь такую же заметку, как после обычной встречи.
Может снимать экран. Раз в несколько секунд делает снимок, и в пересказ попадают цифры и пункты со слайдов, а не только слова. По умолчанию выключено, включается для конкретной встречи.
Знает ваши словечки. Названия продуктов и аббревиатуры записываются в словарь, и распознавание перестаёт превращать их в случайные слова.
Складывает всё в обычные файлы. Заметки в формате Markdown ложатся в выбранную папку. С Obsidian получается удобная база встреч со ссылками на людей, но он не обязателен.
Всё считается на самом Mac. Речь распознаёт Whisper, пересказ пишет Qwen, голоса различает отдельная маленькая модель. Все три работают прямо на компьютере, без облака.
Особенности работы
Только Mac на Apple Silicon (M1 и новее), macOS 14.4 и выше.
Саммари хорошо работает на маках с хорошим процессором и большой памятью. (от 16 ГБ.)
Распознавание ошибается, особенно на плохой связи и когда все говорят разом.
Как это выглядит
Вот заметка с выдуманной встречи про запуск нового сайта:
Утром открываю заметку вчерашней планёрки и через минуту знаю, что кому обещал. Больше ничего от неё и не нужно.
Сколько стоит и где взять
Бесплатно. Без подписки, без рекламы, без покупок внутри. Ищется в Mac App Store по слову Surnia.
Вопрос к вам
Как вы фиксируете, о чём договорились на созвонах? Блокнот, память, «потом пришлю итоги в чат»? А если попробуете Surnia, напишите, чего не хватает.
Знаете это чувство, когда сидишь вечером, слушаешь музыку в веб-плеере, и вдруг что-то внутри шепчет: «А не написать ли мне свой клиент?» Обычно этот голос легко заглушить чаем и здравым смыслом. Но иногда — не получается.
Веб-плеер тормозит. Системные медиа-кнопки не работают. Окно живёт своей жизнью. А в голове уже крутится: «Да я же на C++ когда-то учился и умею. Ну, почти. С Qt разберусь. QML — это же просто декларативный JSON с амбициями. Что там сложного?»
И тут вспоминаешь главное: официальный клиент Яндекс Музыки есть только под Windows (ну, вроде как). А у меня — не Windows. И не у всех Windows. И это, пожалуй, лучшая мотивация, которая бывает.
Вот так и рождаются проекты вроде YaMusic — независимый десктопный клиент Яндекс Музыки на C++, Qt 6 и QML. macOS, Linux и Windows. Нативный код. Без Electron. И да, я до сих пор не уверен, было ли это хорошей идеей.
Глава первая: зачем вообще?
Резонный вопрос. Веб-версия есть. Официальный клиент есть ну только под Windows (лично не трогал, ничего сказать не могу). Зачем городить своё?
Причины, по которым люди берутся за такое, просты:
Официальный клиент есть только под Windows. А если у тебя macOS или Linux — извини, слушай в браузере. Это не дело.
Хочу нативное приложение. Не вкладку в браузере, которая жрёт память, как не в себя. Нативное окно, которое живёт отдельно и умеет в системные медиа-кнопки.
Зуд в пятой точке. Самая честная причина. «А слабо?» — и вот ты уже читаешь документацию к Qt Multimedia в три часа ночи.
Любопытство. Как устроен API Яндекс Музыки? Что за протокол Ynison? Почему история прослушиваний ведёт себя странно?
В моём случае — всё вместе. И немного самонадеянности.
Глава вторая: стек, или почему C++ и Qt
Первое решение, которое нужно принять, — на чём писать. Варианты:
Electron. Быстро, но это 400 МБ оперативки ради кнопки Play. И ты не программист, а сборщик веб-приложений.
Tauri. Стильно, модно, молодёжно, Rust. Но зависимость от системного вебвью — лотерея.
Python + PyQt. Проще, но распространять — боль. И производительность — как повезёт.
C++ + Qt 6 + QML. Нативно, быстро, кросс-платформенно. И если ты когда-то учил C++, то почему бы и нет?
Я выбрал последнее. И не жалею. Почти.
Qt 6 даёт всё: QMediaPlayer для воспроизведения, QML для интерфейса, CMake для сборки. QML — это декларативный язык, который выглядит как JSON, но с логикой. Интерфейс описывается в .qml-файлах, логика — в C++. Разделение чистое: QML рисует, C++ думает.
Глава третья: что получилось
Изначально я хотел простую вещь: поиск, «Моя волна» и пару личных плейлистов. Всё. Точка. Никаких амбиций на полноценный клиент.
Но стоило показать первую рабочую версию знакомым — и они подкинули идей. «А можно лайкать треки прямо из очереди?», «А почему нет плеера?», «А тёмную тему можно?» — и понеслось.
А дальше в дело вступил аппетит. Он, как известно, приходит во время еды. Сначала добавился поиск — и оказалось, что без страниц альбомов и исполнителей он бесполезен. Потом «Моя волна» — и стало понятно, что нужны рекомендации и недавно прослушанные. Потом плейлисты — и вот уже лайки, библиотека, чарты, жанры, новые релизы. Список фич рос быстрее, чем я успевал их реализовывать.
Вот что в итоге умеет YaMusic:
Авторизация
OAuth с сохранением токена между запусками. Получил ссылку в приложении, открыл в браузере, авторизовался, скопировал ссылку обратно — и всё. Токен сохраняется, живёшь дальше.
Контент
Поиск, «Моя волна», персональные рекомендации, плейлисты (свои и чужие), лайки, недавно прослушанные, альбомы, исполнители. Чарты России и мира (как по мне, одно и то же — не знаю, нужно ли кому это), жанры, новые релизы. Страницы альбомов, плейлистов, исполнителей и жанров.
Плеер
Единая очередь, автопереход на похожий контент. Подсветка текущего трека. Mini Player, Expanded Now Playing, перемотка, громкость. Dynamic Player Accent — интерфейс подстраивается под доминирующий цвет обложки трека. Тёмная и светлая темы. Решил использовать Catppuccin (а поцчему Ви спгашиваете?).
Тексты песен
С синхронизированной подсветкой строк. Лично я таких песен так и не нашёл, но API утверждает, что они есть. Чтошш, поверим на слово.
Системные медиа-кнопки
MPRIS (Linux), SMTC (Windows), MPRemoteCommandCenter (macOS). Управлять плеером можно с клавиатуры или из системного трея, не открывая окно.
Адаптивный интерфейс
Верхняя навигация, контекстная панель — какая-никакая. Всё ездит, всё подстраивается.
Глава четвёртая: Ynison, или как я узнал, что история прослушиваний — не для меня
А теперь самое интересное. И самое обидное.
YaMusic подключается к Яндекс Музыке по протоколу Ynison — долгоживущее WebSocket-соединение. Приложение регистрирует устройство-плеер, транслирует «сейчас играет» и состояние очереди, отправляет heartbeat прогресса и события завершения треков. Раздел «Недавно прослушанные» читается через /music-history.
Звучит здорово, да? Вот только есть нюанс.
Сервер Яндекса записывает треки в вашу историю только для сессий, инициированных официальными клиентами. Ни /play-audio, ни /plays, ни /queues, ни Ynison-статусы от неофициального клиента сервер в историю не засчитывает. События принимаются (200/ok), но не записываются.
Это как разговор с автоответчиком: ты говоришь, он кивает, но никто ничего не записывает.
То есть вы слушаете музыку, всё работает, треки играют, очередь едет. Но на этом всё — раздел «Недавно прослушанные» обновляется через веб-страницу, ну или через официальное приложение (возможно, передаёт ещё какие-то параметры). Обидно? Да. Так что пока оставлю реализацию на потом.
Глава пятая: сборка и установка
Готовые пакеты содержат Qt runtime — отдельная установка Qt не требуется. Пакеты собираются автоматически в GitHub Actions при пуше тега v*. Текущая версия v0.11.2
Для сборки из исходников нужны C++17, Qt 6 (Base, Quick, Multimedia), CMake и Ninja.
Windows: .\build\Debug\appYaMusic.exe (сборка с --config Debug)
Эпилог: стоило ли оно того?
Хороший вопрос. Давайте честно.
Что получилось
Нативный десктопный клиент на C++ и Qt, который работает на трёх платформах — включая те, где официального клиента нет вообще.
Полноценный плеер с очередью, лайками, плейлистами, текстами песен и системными медиа-кнопками.
Симпатичный внешний вид и Dynamic Player Accent.
Что не получилось
История прослушиваний не синхронизируется с официальным приложением.
Рекомендации Яндекса не узнают о том, что вы слушали в YaMusic.
Приходится мириться с тем, что ты — неофициальный клиент, и сервер об этом помнит.
Стоило ли оно того?
Да. Потому что такие проекты — это не просто «альтернативный клиент». Это способ понять, как устроены современные API, WebSocket-протоколы и десктопная разработка. Это возможность увидеть, как один человек собирает полноценное приложение на C++ и Qt, не используя Electron и не жертвуя производительностью.
И да, это всё ещё C++. Смирись. Зато с Catppuccin.
Если папка «Загрузки» давно превратилась в склад файлов с именами вроде IMG_2048.jpg, на GitHub есть инструмент, который может навести там порядок.
1/4
AI File Sorter анализирует содержимое файлов и предлагает сразу две вещи: куда их переместить и как понятнее назвать. Картинку с озером он может превратить из безымянного файла в что-то вроде clouds_over_lake.jpg, а документы — переименовать на основе текста внутри. Также проект умеет работать с метаданными аудио и видео.
Перед изменениями пользователь получает список предложений и может их проверить, отредактировать или отклонить. Только после подтверждения программа создаёт нужные папки и переносит файлы. Последний запуск можно отменить через Undo.
Особенно интересно, что AI File Sorter способен работать полностью локально. В таком режиме файлы, изображения, имена и метаданные остаются на компьютере, а телеметрия не отправляется. Для удалённых моделей интернет требуется только при их явном выборе.
Проект поддерживает Windows, macOS и Linux, а среди локальных моделей есть Gemma 3 4B IT. Актуальная версия — 1.9.2.
автоматически предлагать приближения на основе движения курсора;
сглаживать курсор, добавлять motion blur и анимацию кликов;
оформлять видео с фонами, градиентами, скруглениями, размытием и тенями;
записывать микрофон и системный звук;
добавлять веб-камеру поверх записи;
редактировать ролик на таймлайне — обрезать, менять скорость, добавлять зумы и аннотации;
экспортировать результат в MP4 или GIF.
Recordly работает на macOS, Windows и Linux. Проект распространяется как Open Source, а исходный код доступен на GitHub.
Есть и нюансы: например, на Linux пока нельзя скрыть системный курсор при записи, а поддержка системного звука зависит от платформы.
Сам Recordly бесплатный, поэтому для коротких демо, инструкций и продуктовых роликов это вполне интересный вариант вместо платных инструментов вроде Screen Studio.
Переживите заново свои школьные воспоминания... но что-то не позволяет вам уйти.
Sabado — это филиппинская аниме-игра в жанре психоделического хоррора, в которой вы возвращаетесь в свою старую школу и переживаете воспоминания, которые, как вам казалось, давно забыты.
Пройдитесь по знакомым классам, побродите по тихим коридорам и исследуйте места, которые когда-то казались вам домом. Познакомьтесь с Чесой, жизнерадостным другом, который, кажется, рад снова вас видеть, и проведите время, разговаривая, смеясь и вспоминая маленькие моменты, которые вы когда-то разделяли вместе, и раскройте истории, оставленные людьми, которые когда-то были там.
Каждый уголок школы Киви пронизан ностальгией. Мягкая атмосфера, знакомые места и тихая музыка создают ощущение возвращения в место, которое ждало тебя все это время. Это путешествие о дружбе, воспоминаниях и постепенном открытии прошлого.
Или, по крайней мере…
так думал Джейкоб.
Потому что школа не пуста.
Выходы начинают исчезать.
Коридоры больше не ведут туда, куда должны.
Кто-то наблюдал за тобой с момента твоего прибытия.
И Чеса…
…уже знает, почему ты вернулся.
Привет, я Чеса! :ЧесаШиТип:
Хотите поиграть в баскетбол? :ChesaShyType:
Живая озвучка :ChesaShyType:
Спасибо PandoraVT и Bunsenberry за то, что это стало возможным!
Они проявили невероятную преданность, полностью вжившись в роль.
Огромное спасибо Murushii за то, что она стала нашим мичманом!
Поглаживание по голове будет доступно в полной версии игры!
(Ну, по какой-то причине :ChesaShyType:)
:ChesaShyType: Sabado — это филиппинское слово, означающее «суббота»
Я выложил тестовые сборки на Patreon, если вам интересно узнать, как игра развивалась на протяжении многих лет. Поэтому приглашаю вас посетить Patreon.
Управление: Левая кнопка мыши (при нажатии) - Общее взаимодействие с объектами / Нажмите и удерживайте, чтобы переносить предметы. Правая кнопка мыши (при удержании объекта) - Бросить переносимый объект.
R - Вращение захваченного объекта
W - Движение вперед S - Движение назад D - Движение вправо A - Движение влево F - "Дружба, которая принесет свет в самую темную комнату" :3 Ctrl - Присесть Левая кнопка Shift (удерживать) - Бег
Если вам понравилась игра, или если вы получили за нее деньги и хотите выразить мне свою благодарность, или просто из-за доброты от всего сердца (если таковая у вас есть). Вот ссылка на мой Ko-Fi:
Тщательно проработанный и захватывающий звуковой дизайн
Сильные темы для взрослой аудитории
Около 1 часа, если вы освоите все головоломки/механики
ВИЗУАЛЬНАЯ ПРОРАБОТКА
Игра визуально создана как произведение искусства. Многие локации построены вокруг жилого здания, но вы можете ожидать гораздо большего для исследования.
Мощный звуковой опыт — один из столпов игры. Звуковые эффекты и музыка созданы с вниманием к деталям. Динамическое окружающее звучание, звуковое затенение — некоторые из тщательно проработанных элементов звукового дизайна.
Уникальный и аутентичный саундтрек.
УПРАВЛЕНИЕ
Раскладка управления создана таким образом, чтобы в игру можно было играть с помощью мыши/клавиатуры или геймпада. На данный момент поддерживаются раскладки контроллеров Xbox и PlayStation, но должны работать и другие геймпады.
Мышь/клавиатура,
геймпады Xbox One, Xbox Series,
PS4 Dual Shock
КТО РАЗРАБАТЫВАЕТ ЭТУ ИГРУ?
Разработчик/дизайнер
Подписывайтесь на меня в Bluesky @thehandcrafter.bsky.social
Подписывайтесь на меня в Twitter @HandCrafterOff
Присоединяйтесь к Discord: канал Game Discord
Композитор
КОГДА ВЫЙДЕТ ИГРА?
Каждая версия сборки — это этап разработки контента.
0.8.x - (бета-версия) декабрь 2025 г. (100%)
0.8.1 (бета-версия) февраль 2026 г. (включая поддержку переназначения клавиш клавиатуры)
0.9.0 - (предварительный релиз на itch) март 2026 г.
1.0.0 - ...
Примечание о релизной сборке
Основной контент игры завершен, поэтому, если вы хотите поиграть в нее сейчас, это обойдется вам всего в чашку кофе. При необходимости будут внесены исправления до версии 1.0.
О ПРОИЗВОДИТЕЛЬНОСТИ
Для сравнения, игра работает со скоростью 60 FPS при разрешении 1080p на ПК в сбалансированном режиме.
Конфигурация:
Windows 11 / DX11
NVIDIA GeForce GTX 1660 SUPER
6,0 ГБ видеопамяти
AMD Ryzen 5 3600 6 ядер 3,6 ГГц
32 ГБ ОЗУ
NVMe SSD
Для более слабых конфигураций доступны графические настройки, но гарантии производительности нет. Возможно, игра будет работать и на слабых конфигурациях, даже на интегрированном графическом процессоре, при использовании внутренних настроек разрешения (обозначенных как «грязный рендеринг»).
Психологический и сюрреалистический хоррор
Подробнее
Обновлено 15 марта 2026 г.
Опубликовано 7 июля 2023 г.
Статус: Выпущено
Платформы: Windows, Linux
Рейтинг: 3,8 из 5 звезд(Всего 4 оценки)
Автор: TheHandCrafter
Жанр: Головоломка
Создано с помощью Unity, Blender, Audacity
Теги: Атмосферный, Экспериментальный, От первого лица, геймпад, Хоррор, Фотореалистичный, Психологический хоррор, Одиночная игра, Сюрреалистический, Странный
Средняя продолжительность игры: Около получаса
Языки: Немецкий, Английский, Испанский; Кастильский, Французский, Итальянский
Ввод: Клавиатура, Мышь, Контроллер Xbox, Контроллер Playstation
Самую первую версию своей программы по физике я писал больше двадцати лет назад на Delphi с использованием OpenGL 1.1 (там еще был фиксированный конвейер и никаких шейдеров). Современную версию я написал на C# и немного C++ с использованием OpenGL 3.x и в некоторых особо сложных случаях Vulkan (например, там где нужно было реализовать алгоритмы ray- и path-tracing). Я продолжаю ее пилить и улучшать, но в свободное время еще занимаюсь портированием под MacOS - и тут для меня две совершенно новые ниши: это язык программирования Swift и графическая библиотека Metal (не смотря на то, что Mac все еще поддерживает OpenGL, фактически он заморожен и новые фичи Apple туда больше не завозит).
Просто хочу поделиться видео, где уже вполне рабочая и местами глючная программа - реализовал небольшую часть модулей, и я думаю это займет еще месяцы работы.
Наверняка, кто-нибудь задаст вопрос, использую ли я ИИ (потому что уже не раз задавали) и - естесственно да, глупо не использовать инструмент, который есть в наличии и помогает ускорить разработку. Я использую ChatGPT (подписку за двадцать евро в месяц) и Claude (подписку за двесте евро в месяц) - и в целом, они мне местами очень хорошо помогают, но местами творят откровенную дичь и нуждаются в постоянном контроле, что они там понаделали. А еще токены расчитанные на неделю выжирают за несколько дней - и приходится ждать до следующей недели, потому что я не готов заносить еще больше бабла.
В целом цель конкретно этой поделки - изучить Swift и Metal, а также пройти весь процесс публикации и продажи софта в App Store, как я это сделал в Steam в прошлом месяце.