Обновить
512K+

Open source *

Открытое программное обеспечение

502,51
Рейтинг
Сначала показывать
Порог рейтинга

Вышла пятая версия открытого проекта windows95 с исходным кодом полностью на JavaScript. «Это Windows 95, работающая в приложении Electron. Да, это полная версия. Извините», — пояснил разработчик решения.

Проект работает в Windows, а также на macOS и Linux, что подарит вам ностальгию или возможность обойти ограничения старой операционной системы независимо от вашей текущей платформы.

Теги:
Всего голосов 6: ↑5 и ↓1+4
Комментарии2

Голем: как в нём устроен анализ кода

В прошлый раз я рассказал про Голема — кодинг-агента в Telegram. Сейчас хочу показать, что у него под капотом. А именно — как работает анализ кода.

Первая версия была примитивной: весь код летел в LLM, та читала и выдавала вердикт. Работало паршиво. LLM галлюцинировала про «обрезанные функции», жрала токены как не в себя, а если проект был больше пары файлов — просто захлёбывалась.

Нужно было что-то менять.

Гибридный анализ: четыре утилиты вместо одной LLM

Теперь перед тем, как отдать код модели, его прогоняют четыре статических анализатора:

bandit, ruff, semgrep, pip_audit = await asyncio.gather(
    run_bandit(project_dir),      # безопасность
    run_ruff(project_dir),        # стиль и баги
    run_semgrep(project_dir),     # глубокий анализ
    run_pip_audit(project_dir)    # зависимости
)

Каждая утилита отвечает за свою область:

  • Bandit ищет уязвимости безопасности: SQL-инъекции, использование eval(), хардкод паролей.

  • Ruff проверяет стиль и очевидные ошибки: неиспользуемые импорты, синтаксис, голые except.

  • Semgrep находит сложные паттерны: XSS, утечки данных, опасную десериализацию.

  • pip-audit сверяет зависимости с базой CVE и сообщает о дырявых пакетах.

Все четыре запускаются параллельно через asyncio.gather. На проекте среднего размера это занимает 10-15 секунд вместо 40-50 при последовательном запуске.

LLM получает только проблемные строки

Раньше модель получала первые 1000 символов из каждого файла. Это приводило к двум проблемам: дикий перерасход токенов и галлюцинации. LLM видела обрывок функции и думала, что код незавершённый.

Теперь всё иначе. Анализаторы возвращают конкретные проблемные строки, и модель получает только их с контекстом в 3-4 строки вокруг:

# main.py:42 — Bandit HIGH
query = f"SELECT * FROM users WHERE id = {user_input}"  # SQL-инъекция

Результат:

  • Расход токенов сократился в 10 раз.

  • Галлюцинации про «незавершённый код» исчезли полностью.

  • Анализ работает одинаково быстро на проекте из 10 файлов и из 500.

Асинхронный режим

ZIP-архивы и GitHub-репозитории анализируются в фоне. Пользователь отправляет файл и сразу получает ответ «анализ запущен», а результат приходит отдельным сообщением через минуту-две. Бот не висит, можно продолжать с ним работать.

asyncio.create_task(
    _analyze_directory_async(context, temp_dir, source, llm, user_id)
)
await update.message.reply_text("🔍 Анализ запущен в фоне")

Что дальше

Сейчас Голем умеет анализировать только Python-проекты. В ближайших планах:

  • Поддержка JavaScript/TypeScript (ESLint + npm audit)

  • Поддержка Go (golangci-lint + govulncheck)

  • Поддержка Rust (clipp +cargo-audit )

Также хочу добавить команду /fix — автоматическое исправление проблем, которые находит Ruff. Часть ошибок можно починить без участия человека, и Голем будет делать это сам.

Попробовать

Бот живёт в Telegram: @Golem666bot
Там же можно посмотреть другие проекты и следить за разработкой: @system_develope

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

SpaceWeb добавил в каталог VPS четыре open-source инструмента для внутренней инфраструктуры

SpaceWeb запустил в каталоге готовых решений четыре новых образа для установки в один клик: Moodle, Vaultwarden, iRedMail и OpenClaw.

Moodle — обучающая платформа или база знаний. Vaultwarden — менеджер паролей и доступов. iRedMail — корпоративная почта на собственном сервере. OpenClaw — self-hosted ИИ-ассистент для рабочих сценариев.

По данным SpaceWeb, 33% пользователей VPS уже используют панели управления, 22% — контейнеризацию. VPS всё чаще становится базой для внутренней инфраструктуры, а не просто хостингом для сайта. Новые образы продолжают эту логику: всё в едином контуре, без внешних SaaS и ежемесячных платежей за сторонние сервисы. Всего в каталоге SpaceWeb сейчас более 40 приложений — от CMS и панелей управления до систем мониторинга и баз данных.

Узнать подробности и выбрать свой open-source инструмент можно на сайте SpaceWeb.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии2

Есть одна довольно очевидная, но при этом полезная мысль: как научить агента самообучаться и становиться лучше. А, ну и чтобы еще веса моделей не трогать 😁

Мемчик
Мемчик

Большинство агентных систем сегодня неизменяемые в одном конкретном смысле: скилл/правило написано один раз, и либо работает, либо нет. Если что-то грохнулось - иди правь сам или явно проси об этом агента (но сделает ли он лучше еще вопрос). Потом руками пробуешь еще раз, забиваешь и больше не используешь этот скилл. Это, так скажем, "архитектурное решение" явно не подходит.

Попался скилл - Memento-Skills, который должен как раз решать такие проблемы. Система определяет какой скилл подвел, разбирает причину, переписывает код или промпт скилла и сохраняет результат обратно в библиотеку. Все это, естественное, без дообучения модели - в основе цикл Read → Execute → Reflect → Write.

Важный момент про эту библиотеку скиллов: она не просто растет, а остается управляемой. Стартует система с пяти базовых атомарных скиллов - и самостоятельно расширяет набор по мере работы: на бенчмарке GAIA выросла до 41 скилла, на экспертном HLE до 235. При этом результат на GAIA: 80% успешных задач против 50% у статичной RAG-библиотеки. Что на показывает, что эти скиллы живые, а не заморожены.

Есть встроенные скиллы для файлов, PDF, веб-поиска, изображений. Код открытый, github.com/Memento-Teams/Memento-Skills. Из интересного еще то, что проект ориентирован на опенсорс LLM-стек - Kimi, Moonshot, MiniMax, GLM, Zhipu и др.

Надеюсь тебе понравилось. Лучшая благодарность — это твоя подписка на мой Telegram-канал 😊

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

💥 Новое в Gramax💥

Gramax Enterprise Server:

  • Новая кнопка входа в приложение. Кнопка входа теперь на главной странице в правом верхнем углу. 

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

  • Новый вид настроек для проверок по стайлгайду. Теперь проверки вынесены в панель администрирования: Модули → Стайлгайд.

  • Шаблоны для экспорта без ограничений. В настройках пространства убрали ограничение на количество шаблонов Word и PDF.   

Другие улучшения:

  • Улучшения поиска. Добавили возможность поиска только по разделу и статье. Также теперь в поиске показывается контент из диаграмм и лучше учитывается структура таблиц.

  • Неподдерживаемые форматы в предпросмотре. Раньше в окне предпросмотра можно было открывать только изображения и диаграммы. Теперь для остальных файлов появилась кнопка Открыть в поддерживаемом приложении — при ее нажатии файл откроется во внешнем приложении.

  • Превью PPTX-файлов. В редакторе и на портале можно открыть презентации в режиме предпросмотра.

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

Подробнее об изменениях читайте в статье — https://gram.ax/resources/docs/whats-new

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Gemma 4 31B: адаптер для «глубоких» раздумий в стиле Opus 4.6

Вышел экспериментальный QLoRA-адаптер для модели Gemma 4 31B. Его цель — привить нейросети логику рассуждений в стиле Opus, не забивая веса лишним информационным мусором.

Разработчики из kai-os взяли базовую google/gemma-4-31B-it и обучили её на очищенной выборке датасета Opus-4.6-Reasoning. Никаких следов агентов или сторонних инструкций. Только чистая математика и код.

Технический стек:

  • Квантование: 4-bit NF4.

  • Вычисления: BF16.

  • Железо: NVIDIA GH200.

Что внутри датасета

Из исходных 2160 строк после фильтрации осталось 2025. Удалили дубликаты, битую разметку и странные промпты. Итоговый баланс: 1899 задач по математике и 126 по программированию. Обучение заняло около часа (3723 секунды) на 2 эпохи.

Нюансы и запуск

Это не самостоятельная модель, а PEFT-адаптер. Чтобы запустить его, понадобится сначала подтянуть базовую версию Gemma 4. Код для загрузки стандартный: используем PeftModel из библиотеки transformers.

Python

base_id = "google/gemma-4-31B-it"
adapter_id = "kai-os/gemma4-opus-reasoning-adapter-v1"

Важно разделять цифры. Официальные бенчмарки Google для 31B впечатляют (MMLU-Pro 85.2%, AIME 2026 89.2%), но данные показатели относятся к базовому «инструкту». Текущий адаптер — это инструмент для специфических задач, где требуется выстраивать длинные цепочки рассуждений.

Лицензия остается открытой (Apache 2.0). Проект пригодится тем, кто строит локальных агентов или сложные системы анализа кода, где стандартные ответы кажутся слишком поверхностными.

Веса - https://huggingface.co/kai-os/gemma4-31b-Opus-4.6-reasoning

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Представлен открытый проект под названием Build Your Own OpenClaw. Это обучающее решение, которое включает в себя гайд для создания собственного ИИ-агента OpenClaw для любых задач:

  • в проекте представлен план из 18 шагов с кодом, примерами, объяснениями.

  • всё начинается с простого чат-бота, а потом дополняются нужные фичи вплоть до мультиагентной системы.

  • ИИ-агент может работать сам. Также у него есть долговременная память.

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Представлен открытый проект badclaude. С его помощью нейросеть Claude Code теперь можно бить кнутом, чтобы та быстрее работала. Одновременно с анимацией шлепка виртуальный кнут отправляет в чат с ИИ-агентом сообщение «FASTER FASTER FASTER». После каждого удара приложение перезапускает процесс, а ИИ начинает ускоряться в работе.

В описании проекта на GitHub опубликована «Дорожная карта», которая предусматривает «получение от Anthropic уведомления с требованием прекратить противоправные действия», внедрение в код проекта криптомайнера, обновление «физики кнута», а также добавление счётчика шлепков, «чтобы когда придут роботы, им можно было предоставить рейтинг людей».

Теги:
Всего голосов 4: ↑3 и ↓1+4
Комментарии0

Собери свой OpenClaw за вечер - гайд за 18 шагов

OpenClaw - самый быстрорастущий опенсорс-проект в истории GitHub. 350k звезд за пять месяцев, обогнал React, Linux и все остальное. Персональный AI-ассистент, который живет на твоей машине, работает через WhatsApp/Telegram/Slack/iMessage, выполняет команды в шелле, управляет браузером, отправляет почту, работает по расписанию. Если еще не слышали, советую попробовать.

Мне всегда интересно попробовать собрать что-то своими руками, особенно нравится ковыряться и настраивать ИИ агентов - есть в этом ощущение управления собственными сотрудниками. К чему я это, ловите интересный репозиторий - build-your-own-openclaw.

Что за репозиторий

Это пошаговый туториал из 18 этапов, где ты собираешь свою версию OpenClaw с нуля. Именно послойная сборка - каждый шаг добавляет одну концепцию и содержит работающий код + README с объяснением архитектурных решений. Шанс разобраться как устроен такой популярный бот.

Можно выделить четыре фазы:

Фаза 1 - одиночный агент. Начинаешь с голого чат-лупа. Потом подключаешь инструменты (read/write/bash - вот и основа для уже для большого скоупа задач). Затем навыки через SKILL.md, персистентность сессий, слеш-команды, компактификация истории, веб-инструменты.

Фаза 2 - event-driven архитектура. Агент выходит за пределы CLI. Горячая перезагрузка конфигов, каналы (теперь можно писать агенту с телефона), WebSocket для программного взаимодействия.

Фаза 3 - автономность и мультиагентность. Маршрутизация задач между агентами, cron + heartbeat (агент работает, пока спим или заняты делами), многослойные промпты, dispatch между агентами.

Фаза 4 - продакшн. Контроль конкурентности и долговременная память.

Почему это полезно может быть полезно?

В большинстве гайдов по агентным системам тебе дают либо высокоуровневую схему, либо готовый фреймворк, в который не хочется лезть, разбираться, копаться. Здесь этот шаговый подход позволяет проще въехать, заставить себя изучать и по мере усложнения, все больше и больше втягиваешься. Можно изучить:

  • Как строится цикл принятия решений.

  • Как агент выбирает инструменты.

  • Как компактифицируется контекст, когда история перестает влезать в окно.

  • Как появляется ощущение «интеллекта» из вполне механических частей.

В какой-то момент ловишь себя на мысли, что уже думаешь как оркестратор, как большой начальник, а не как рядовой пользователь модели. И вот это, пожалуй, самое ценное.

Туториал написан на Python, использует LiteLLM для абстракции провайдеров. Можно пройти за вечер-два, если не застревать на каждом шаге.

РепозиторийСайт туториала

Надеюсь тебе понравилось. Лучшая благодарность - это твоя подписка на мой Telegram-канал 😊

Теги:
Всего голосов 4: ↑2 и ↓20
Комментарии0

Для сотрудников компаний в Китае вышел открытый проект 反蒸馏 Skill (anti-distill), который предназначен для разрушения всех данных для нейросетей и ИИ-моделей в компании, чтобы сохранить рабочие места. Ранее нейросети начали помогать увольнять людей в Китае — работяг просто выкидывают на улицы за ненадобностью. Например, как только сотрудник приходит в офис, а на его задачах уже обучили нейронку, то он стал не нужен.

Теги:
Всего голосов 5: ↑2 и ↓3+1
Комментарии3

Представлен открытый ИИ-проект METATRON для проведения исследований, пентестов и поиска информации:

  • модель metatron‑qwen или дообученная Qwen 3.5;

  • ИИ автоматически пробивает и собирает все данные: сканирует порты, ищет уязвимости веб‑серверов и сведения о доменах и заголовках, профилях социальных сетей;

  • ищет уязвимости через DuckDuckGo;

  • сервис самостоятельно запускает дополнительные инструменты и даже API, если ему не хватает данных;

  • хранит полную историю сканирований, найденные уязвимости и фиксы;

  • работает полностью локально.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Представлен открытый генератор речи OmniVoice, который может создавать аудио на более чем 600 языках. Решение клонирует любые голоса без цензуры. Достаточно короткой записи на 5-10 секунд. Скорость модели в 40 раз быстрее, чем генерация в реальном времени. Можно настроить любые параметры аудио: пол, возраст, шёпот. Есть онлайн-демо, сама модель на HuggingFace,

Теги:
Всего голосов 4: ↑4 и ↓0+8
Комментарии1

SpaceWeb добавил в частное облако четыре DevOps-инструмента: MinIO, Zulip, n8n и Zabbix

SpaceWeb запустил в частном облаке серию готовых open-source сервисов для командной разработки. Каждый разворачивается независимо — можно выбрать только то, что нужно под конкретную задачу. В набор вошли четыре инструмента:

  • MinIO — S3-совместимое объектное хранилище для бэкапов, логов, артефактов сборки и статики;

  • Zulip — командный чат с тематическими ветками для асинхронной работы;

  • Zabbix — мониторинг серверов и приложений: CPU, память, диски, базы данных, веб-серверы;

  • n8n — конструктор автоматизации без кода: соединяет сервисы, ловит вебхуки, создает тикеты, управляет файлами.

Вместе они закрывают базовые потребности небольшой ИТ-команды — хранение, коммуникацию, мониторинг и автоматизацию рутины — в едином управляемом контуре внутри частного облака. Без внешних SaaS-платформ и бесконечных интеграций между ними.

Подробности — на сайте SpaceWeb.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Ближайшие события

Представлен открытый проект Winhance. Это приложение на C#, предназначенное для удаления лишних программ, оптимизации и настройки работы с Windows 10/11 - от управления программным обеспечением до оптимизации и настройки системы,

Winhance включает в себя большинство тех же улучшений, что и UnattendedWinstall, но без необходимости чистой установки Windows.

Теги:
Всего голосов 6: ↑5 и ↓1+5
Комментарии1

Представлен открытый OSINT-инструмент, который за несколько секунд собирает цифровой след по всему интернету. Проект Sherlock по одному нику пробивает аккаунты сразу на сотнях сайтов. Решение параллельно проверяет 400+ платформ: от соцсетей до форумов и цифровых площадок. На выходе получается список всех найденных профилей, можно выгрузить в файл или открыть прямо в браузере. Работает на любой системе, есть поддержка прокси и Tor.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии1

Представлен открытый проект, который в реальном времени переведёт иностранную речь прямо поверх экрана — My Translator. Решение слушает звук с микрофона или системы, распознаёт речь и сразу выводит перевод. Работает просто: включить во время звонка или видео и поверх окна появляются субтитры на нужном языке. Задержка минимальная, поддержка 70+ языков, есть режим диалога, когда перевод идёт в обе стороны. Полезно для созвонов, интервью, стримов и любых ситуаций, где нужно понимать иностранную речь без постоянного переключения вкладок.

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии1

Я не разработчик, но сделал Telegram-бота для Hysteria 2

Я не программист, языков не знаю, я небольшой руководитель отдела в айти, неплохо знаю серверную архитектуру. Но у меня была простая боль: недавно завел для себя и родни сервер Hysteria 2, до этого было с VLESS на сервере и устал каждый раз руками править YAML, когда нужно:

добавить или удалить пользователя, выдать доступ, проверить статус, перезапустить сервис и при этом ничего не сломать

Перерыл интернет и какое было мое удивление, когда я не нашел ничего, абсолютно, то есть единственное решение - либо лазить каждый раз на сервер либо сделать самому.

Сразу честно: делал с помощью LLM. Статью эту тоже, кстати. Панаму я приготовил. Цель статьи не выпендреж, а просто рассказать о боте, что бы его уже нормальные разработчики посмотрели переделали, может на основе его сделали адекватный продукт

Почему не SSH?

Да, можно через SSH, nano и systemctl. Но когда делаешь это регулярно — растёт шанс ошибки.

Хотелось проще: открыть Telegram, нажать пару кнопок и выдать доступ без ручного редактирования config.yaml.

Веб-панель тоже рассматривал, но бот оказался быстрее и удобнее “на ходу”.

Что умел MVP

Минимум, который был нужен:

/status — жив ли сервис /users — список пользователей add / delete / enable / disable генерация hy2:// ссылки /logs — последние логи /restart — перезапуск с подтверждением

Звучит просто. Пока не думаешь о безопасности.

Главная проблема: бот ≠ root

Первая (и плохая) идея — дать боту полный доступ: пусть сам правит YAML, дергает systemctl и читает логи.

Это почти готовый root-доступ извне.

Я сделал иначе:

Бот — это интерфейс, не исполнитель.

Бот хранит данные (SQLite) Все опасные действия делает отдельный helper на сервере Helper: генерирует YAML делает backup валидирует только потом применяет и перезапускает

В sudoers разрешены только конкретные команды helper-а, а не shell.

Безопасность (без этого смысла нет)

Сделал максимально жёстко:

deny by default доступ только по Telegram user ID (не username) админ-команды только в личке в группах — никаких опасных действий delete/apply/restart — через подтверждение audit log: кто, когда и что сделал

Бот должен быть параноидальным, а не “удобным для всех”.

Грабли, на которые я наступил

  1. Права на конфиг permission denied на /etc/hysteria/config.yaml — лечится не перезапуском, а нормальными правами.

  2. Cert/key Один неправильный путь — сервис не стартует. Плюс легко сломать доступ к privkey.pem.

  3. URI и userpass

hy2:// и hysteria2:// формат username:password спецсимволы нужно кодировать

Очень легко получить “почти рабочую” ссылку.

  1. Клиенты На iOS импорт URI иногда работает хуже, чем ручной ввод.

  2. OpenWrt + sing-box Сначала “не работает”, потом “работает, но не так”, и только после настройки DNS и роутинга — всё нормально.

Что получилось

Сейчас это нормальный админ-пульт:

управляю доступами из Telegram не трогаю YAML руками опасные действия подтверждаются и главное — нет полного root-доступа у бота

Удобство появилось без видимых дыры в безопасности.

Про LLM

Да, я использовал нейронку. Но это не “магическая кнопка”.

Без продуманной архитектуры (права, границы, apply, валидация, rollback) получилась бы просто опасная игрушка.

Что бы сделал иначе сразу делал бы helper-архитектуру добавил бы audit log с самого начала разделил бы read и write операции по правам сделал бы preflight-проверки перед apply

Что дальше

Планирую:

улучшить UX, возможно добавить лёгкую веб-панель, оставить Telegram, как быстрый пульт

Уверен, что в коде кучу дыр в безопасности, еще раз говорю, я код не знаю, мои были идеи, промты и направление, как сделать лучше на самом сервере.

P.S. Это моя первая статья, готов ко всем минусам, хейту и так далее. Единственная цель этого поста - рассказать о боте и дать его в народ

ссылка не репу https://github.com/Ramisya4ka/hysteria-bot-manager (внутри есть очень подробное Readme)

Теги:
Всего голосов 4: ↑4 и ↓0+5
Комментарии0

Представлен сервис для автобиографии whoami.wiki (опубликован на GitHub под лицензией MIT). Работает как личная Википедия: загружаете фото, музыку и другие моменты о пользователе, а ИИ-агенты на основе предоставленных данных собирают полноценный рассказ о человеке. Проект полностью опенсорсный и работает локально.

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии1

Доступные инструменты для миграции: Apache NiFi, Talend и Airbyte

Можно заплатить за коммерческие инструменты миграции и жить спокойно. Но зачем, если есть open-source? В блоге разобрали самые востребованные бесплатные решения для переноса данных: когда брать Apache NiFi, чем от него отличается Talend Open Studio и в каких задачах выигрывает Airbyte. 

Читайте полный разбор на сайте Рег.облака.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

lazy-tmux — быстрый и «ленивый» менеджер сессий tmux

Весь мой рабочий процесс происходит внутри сессий tmux. Долгое время я использовал tmux-resurrect + tmux-continuum. Они работали… но с нюансами. Иногда терялись все сохранённые сессии, а при множестве активных сессий всё оставалось загружено в память, в частности, запущенные nvim процессы, которые поднимаю lsp, что со временем отъедало все больше и больше ОЗУ.

Я мне нужен был инструмент, который показывает все сессии в виде дерева, но загружает их только когда я впервые перейдёте в одну из них.

Так родился lazy-tmux, написанный на Go. Ключевые фичи:

  • Сохраняет текущую сессию, конкретную сессию или все сессии целиком. Снимки сохраняют окна, панели, layout, команды (например, npm, docker-compose, редакторы) и опционально scrollback историю шела.

  • Ленивое восстановление: поднимается только выбранная сессия. RAM не расходуется на всё сразу.

  • Интерактивный TUI браузер с деревом сессий, окон и панелей, таблицей с активными командами, временем последнего снимка, количеством окон/панелей и статусом сессии. Поддержка fuzzy search для быстрого поиска.

  • Навигация и полное управление сессиями и окнами с клавиатуры в TUI браузере сессий.

  • Гибкая сортировка сессий и окон через флаги --session-sort и --window-sort

  • Можно заменить встроенный TUI на fzf, использую облегчённый бинарник.

  • Автосейв через фоновый демон, периодически снимающий все сессии на диск.

  • Восстановление при старте tmux для автоматизации workflow.

Проект ещё молодой, но буду рад любой помощи и идеям по улучшению: GitHub issues

За моими новостями можно следить в Telegram-канале

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0