Удобное управление Steam-активностью и достижениями.
Современный интерфейс, параллельные сессии и изолированный runtime.
Warning
Используйте BoostiFy только со своим Steam-аккаунтом. Автоматизация активности и изменение достижений могут иметь последствия для аккаунта или нарушать правила платформы. Вы используете эти возможности на свой риск.
Главное — программа научилась сама забирать бесплатные раздачи Steam.
- 🎁 Автоматический забор бесплатных раздач. Steam иногда отдаёт платные
игры, дополнения и саундтреки со 100% скидкой — забрал один раз, и они
остаются в аккаунте навсегда. Переключатель «Авто забор раздач» в разделе
«Буст» включает поиск таких позиций, пока идёт сессия, и при нажатии
«Добавить все игры». Программа сама находит их в магазине, просит Steam выдать
лицензию и потом перепроверяет, что она действительно появилась.
Пароли и cookie не нужны: запросы идут к уже авторизованному Steam-клиенту.
- Дополнение или саундтрек без базовой игры бесполезны, поэтому программа сперва проверяет её. Нет на аккаунте — пробует получить и её; если игра платная, вся связка сворачивается.
- Заодно ищет бесплатные дополнения к играм, которые уже есть в библиотеке. Библиотека обходится по кругу небольшими порциями: полный обход тысяч игр занял бы часы, поэтому каждая сессия продвигает его дальше с того места, где остановилась прошлая.
- Забранной раздача считается только после того, как Steam подтвердил выдачу. Если Steam был закрыт, раздача повторится при следующей проверке; ту, что Steam не выдаёт три раза подряд, программа оставляет в покое.
- Магазин опрашивается не чаще раза в полчаса — в том числе в циклическом бусте, где круг может длиться минуту.
- 🔎 Поиск сам добавляет игру на аккаунт, если её отдают даром. Раньше на игру, которой нет в библиотеке, поиск отвечал коротким отказом. Теперь программа сначала смотрит, нельзя ли получить её бесплатно, и если можно — получает и добавляет в список. Это работает и для free-to-play игр, у которых в магазине стоит «Добавить в библиотеку». Платную по-прежнему честно отклоняет, а дополнение без базовой игры не берёт. Пока Steam выдаёт лицензию, список заблокирован — запущенный в эти секунды буст не помешает игре попасть в таблицу.
- 🗂️ Поиск по названию находит и новые игры. Каталог Steam скачивался один раз и дальше лежал на диске без обновления, поэтому всё, что вышло после первого запуска, по названию не находилось вообще никогда. Теперь, если в каталоге игры нет, программа спрашивает магазин напрямую — и подставляет оттуда же настоящее название. А «Добавить все игры» скачивает каталог заново, если ему больше недели, — иначе новинки из библиотеки не добавлялись.
- 🧹 Автоочистка наконец работает по ходу сессии. Настройка обещала чистить таблицу, но список не менялся до самого конца буста. Теперь успешно обработанная игра исчезает из таблицы сразу, как отработала.
- 🛑 Остановка больше не стирает результаты. Нажатие «Остановить» ставило статус «Остановка...» всем играм подряд, затирая и уже полученное «Готово». Из-за этого после отмены посреди цикла автоочистка не находила что убирать, а статистика сеанса показывала ноль успешных — даже если половина списка успела отработать. Итоги теперь сохраняются.
- 🚦 Плавный разгон вместо залпа. Слоты стартовали все разом: «КД начала» —
случайная задержка, но отсчитывали её от одного момента, поэтому при 60 слотах
Steam получал 60 подключений в окне шириной в пару секунд, и
steamwebhelperмог перестать отвечать. Теперь слоты расходятся по одному в секунду: на максимуме разгон занимает около минуты, дальше расписание прежнее. Эту минуту учитывают и «Потребуется», и «Осталось». - 🔁 Циклический буст больше не зацикливается на сбоях. Если за круг ни одна игра не отработала (чаще всего — закрыт Steam), цикл останавливается и объясняет почему, а не перезапускается вечно. И подтверждение разблокировки достижений спрашивается один раз при запуске, а не на каждом круге — цикл больше не встаёт, пока вас нет у компьютера.
- 🖱️ Своё меню по правой кнопке в поле ввода. Стандартное меню Qt было английским, со светлой системной рамкой и чужими иконками — на тёмной плашке оно смотрелось куском чужой программы. Теперь меню в цветах BoostiFy, на русском и с той же скруглённой формой, что у кнопок и панелей.
- ✂️ В меню остались только нужные пункты. «Отменить», «Повторить», «Выделить всё» и «Вырезать» убраны: поле рассчитано на одну короткую строку — AppID или название игры, — и эти пункты занимали большую часть меню впустую. Осталось три: копировать, вставить, удалить.
- 🔔 Закрыть окно обновления — не значит пропустить версию. Раньше крестик и Esc срабатывали как «Пропустить», и о вышедшей версии программа больше не напоминала. Теперь её скрывает только сама кнопка «Пропустить».
- 🔒 Из сборки убраны пути с компьютера разработчика. Модули работы со Steam хранили внутри себя полный путь к отладочным файлам на машине, где их собирали, — с именем пользователя Windows. Теперь отладочная информация в релиз не попадает вовсе.
- ⚡ Окно открывается быстрее. Каталог Steam (~165 тысяч игр) читался при запуске прямо в потоке интерфейса, и окно ждало его — на тестовом ПК около секунды. Теперь каталог загружается в фоне, уже после появления окна.
- 📦 Программа занимает меньше места.
BoostiFy.exeстал меньше: 25,0 МБ вместо 40,4 МБ. Из сборки убраны части Qt, которые программа никогда не загружает (программный OpenGL, модули PDF, SVG и сети, переводы Qt, лишние форматы картинок).- Кэш каталога Steam хранится без отступов: 8,8 МБ вместо 17,6 МБ. Старый файл пересохраняется сам при первом запуске.
- Логи держат одну резервную копию вместо трёх: не больше 10 МБ на лог вместо 20. Лишние старые копии удаляются сами.
Настройки и сохранённые данные остаются прежними — обновляться можно поверх 1.1.2 без каких-либо действий. Забор раздач по умолчанию выключен: пока вы сами не включите его в настройках, программа работает ровно как раньше.
BoostiFy объединяет простой PyQt6-интерфейс и отдельный C# runtime для работы со Steam. Интерфейс остаётся отзывчивым, тяжёлые операции выполняются в фоне, а каждая игра обрабатывается собственным изолированным worker-процессом.
| Возможность | Что получает пользователь |
|---|---|
| Параллельные сессии | Одновременная обработка нескольких игр с настраиваемым количеством слотов. |
| Умная очередь | Скользящий запуск, задержки между задачами и ETA на основе реального расписания слотов. |
| Проверка владения | AppID проверяется через запущенный Steam Client перед добавлением игры. |
| Достижения | Опциональная разблокировка с отдельным предупреждением перед запуском. |
| Надёжное завершение | Windows Job Object останавливает дочерние workers даже при аварийном закрытии GUI. |
| Безопасное хранение | JSON записывается атомарно, ввод нормализуется, пользовательские данные находятся вне каталога программы. |
- 🎮 Добавление игр по AppID или точному названию, с массовым импортом всей библиотеки аккаунта.
- ⚡ До 60 параллельных слотов с отдельными задержками запуска, завершения и между задачами.
- 🏆 Опциональная работа с достижениями с явным подтверждением перед изменением данных Steam.
- 📈 Живой прогресс и статистика: расчёт оставшегося времени, распределение статусов и история сессий.
- 🎁 Автоматический забор бесплатных раздач Steam вместе с дополнениями к играм из библиотеки.
- 🔁 Циклический режим и автоматическая очистка таблицы.
- 🔎 Фильтрация, сортировка и быстрое управление таблицей игр.
- 🛡️ Нормализация конфигурации, AppID и повреждённых данных, а также ротируемые логи для диагностики.
Для работы не нужно устанавливать Python, .NET SDK или собирать проект вручную.
Что потребуется:
- Windows 10 (версия 1903 и новее) или Windows 11 — на них уже есть .NET Framework 4.8, ничего доустанавливать не нужно;
- установленный Steam с выполненным входом в аккаунт.
Порядок запуска:
- Перейдите на страницу последнего релиза.
- Скачайте
BoostiFy.exeиз раздела Assets. - Убедитесь, что Steam запущен и выполнен вход в аккаунт.
- Запустите
BoostiFy.exe.
Note
Программа не подписана цифровым сертификатом, поэтому SmartScreen может предупредить о неизвестном издателе. Сверить скачанный файл можно по контрольной сумме SHA-256, опубликованной в описании релиза.
Все настройки, выбранные игры и статистика сохраняются между обновлениями в
%LOCALAPPDATA%\BoostiFy.
Если BoostiFy оказался полезен — нажмите Star в правом верхнем углу страницы. Это одно нажатие, но оно заметно помогает: проект становится виднее тем, кто ищет похожее решение, а мне как автору — понятнее, что работу стоит продолжать.
Сообщения об ошибках, идеи и pull request приветствуются. Перед отправкой изменений, пожалуйста, запустите unit-тесты, Ruff, smoke-тест, функциональный GUI-прогон и нагрузочные проверки — все они выполняются и в CI.
Если ошибка связана со Steam runtime, приложите версии Windows и Steam, AppID,
последние строки лога и укажите, воспроизводится ли проблема в --self-test.
BoostiFy построен на Python 3.14 и PyQt6, а вся работа со Steam вынесена в отдельный C# runtime на .NET Framework 4.8. GUI и runtime общаются через изолированные worker-процессы: падение одной игры не влияет на интерфейс, а Windows Job Object гарантирует остановку всех дочерних процессов вместе с GUI.
# Запуск из исходников
python -m venv .venv
.venv\Scripts\pip install -r requirements-dev.txt
python BoostiFy/runtime/build.py # собрать изолированный C# runtime
.venv\Scripts\python main.py
# Тесты и проверки качества
.venv\Scripts\pytest
.venv\Scripts\ruff check .
.venv\Scripts\python scripts/smoke_test.py --require-runtime
.venv\Scripts\python scripts/functional_qa.py
.venv\Scripts\python scripts/stress_test.py
# Сборка исполняемого файла
.venv\Scripts\python scripts/package.pyBoostiFy распространяется под лицензией MIT. Вы можете использовать, изменять и распространять проект при условии сохранения уведомления об авторских правах и текста лицензии. Подробности приведены в файле LICENSE.
Разработано с ❤️ под маркой CLC corporation
@deeCaT
