terminal-notifier — маленькая утилита для macOS, которая показывает системное уведомление из шелла: собралась сборка, упали тесты, доехал деплой. 23 августа вышла версия 3.0.0 — первый релиз за девять лет.
Всё переписано на Apple UserNotifications: старый NSUserNotification объявлен устаревшим ещё в macOS 11 и с тех пор ломался по частям. Бинарник универсальный, минимальная версия системы — 10.14; для более старых остаётся ветка 2.0.0.
🔘 Вернулись
🔘
🔘 Коды возврата со 2 по 6 различают неверный аргумент, проблему с разрешениями, таймаут и отказ сервиса.
🔘 Уведомления без
🔘 Флаги
Штатный
7,3 тысячи звёзд на 26 августа. Язык: Objective-C. Лицензия: MIT.
@prog_tools
Всё переписано на Apple UserNotifications: старый NSUserNotification объявлен устаревшим ещё в macOS 11 и с тех пор ломался по частям. Бинарник универсальный, минимальная версия системы — 10.14; для более старых остаётся ветка 2.0.0.
-action TITLE и -reply, которые убрали в 2.0.0 из-за приватного API. Они ждут человека и печатают ответ в stdout, так что скрипт может ветвиться по нажатой кнопке; ожидание ограничивается флагом -timeout.-diagnose объясняет, почему уведомления не видно: разрешения, стиль баннера, звук, Фокусирование, сводка по расписанию, запущен ли Центр уведомлений.-group перестали затирать друг друга, -remove действительно удаляет доставленные, а -contentImage больше не удаляет переданный ему файл.-sender, -appIcon и -ignoreDnD теперь только печатают предупреждение и ничего не делают — старые скрипты не падают, но и эффекта нет.Штатный
osascript -e 'display notification ...' уже стоит в системе и ничего ставить не нужно — для одноразового «готово» этого хватает. terminal-notifier берёт своё там, где нужны группировка, удаление, звук, коды возврата и ответ пользователя.7,3 тысячи звёзд на 26 августа. Язык: Objective-C. Лицензия: MIT.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
Hister индексирует полное содержимое страниц, которые вы открывали, и локальных файлов, а потом ищет по ним — из веб-интерфейса, терминала, командной строки или по MCP. Это ответ на ситуацию «я это точно читал, но не помню где»: история браузера хранит только заголовки и адреса. 23 августа вышла версия 0.18.0.
🔘 Строка поиска подсказывает запросы из истории, алиасы, поля, сортировки и значения фасетов с числом результатов. Сортировки задаются прямо в запросе:
🔘 Появились извлекатели для Twitter, Bluesky, Reddit и Discourse: сохраняются авторы, даты, реакции и структура тредов, а ленты и треды можно разложить на отдельные документы.
🔘
🔘 Инкрементальный импорт из Linkding, Readeck и wallabag, а команда
🔘 При обновлении с 0.17.0 придётся один раз заново войти в веб-интерфейс и расширение; токены доступа не затронуты.
3 тысячи звёзд на 26 августа. Язык: Go. Лицензия: AGPL-3.0.
@prog_tools
sort:date, sort:visits, sort:domain, минус перед значением разворачивает порядок.hister import file принимает PDF, DOCX, Markdown, Org mode и обычный UTF-8 — файлами или целыми каталогами. Разбор идёт в процессе командной строки, поэтому серверу доступ к исходным файлам не нужен.hister update меняет владельца, метку, заголовок или язык у всего, что нашлось по запросу, с пробным прогоном и подтверждением.ripgrep и Recoll проще, быстрее и не требуют сервера, и для поиска по локальным файлам их достаточно. Hister нужен там, где искать надо разом по прочитанному в браузере, сохранённым закладкам и файлам.3 тысячи звёзд на 26 августа. Язык: Go. Лицензия: AGPL-3.0.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
Tailcat — это netcat, у которого канал уже зашифрован. Tailscale открыла его исходники в августе на своей конференции TailscaleUp: одна машина запускает сервер и печатает короткий токен, вторая подключается по этому токену, трафик идёт через WireGuard.
Аккаунт Tailscale при этом не нужен — утилита берёт сетевой слой продукта, но не его control plane. Соединение сначала поднимается через ретрансляторы DERP, а потом пытается перейти в прямой UDP-канал между машинами.
Root тоже не нужен, и это главное отличие от обычного VPN: всё живёт в user space, без tun-интерфейса, без правки таблиц маршрутизации и без настройки DNS.
Что умеет, кроме передачи потока: пробросить локальный порт на удалённую машину, поднять на Linux и macOS встроенный SSH-сервер, когда системного sshd на той стороне нет, и работать прокси по SOCKS5.
Оговорка от авторов: формат токенов, CLI и Go-API пока без гарантий совместимости — в скрипты, которые потом никто не будет чинить, ставить рано.
@prog_tools
Аккаунт Tailscale при этом не нужен — утилита берёт сетевой слой продукта, но не его control plane. Соединение сначала поднимается через ретрансляторы DERP, а потом пытается перейти в прямой UDP-канал между машинами.
Root тоже не нужен, и это главное отличие от обычного VPN: всё живёт в user space, без tun-интерфейса, без правки таблиц маршрутизации и без настройки DNS.
Что умеет, кроме передачи потока: пробросить локальный порт на удалённую машину, поднять на Linux и macOS встроенный SSH-сервер, когда системного sshd на той стороне нет, и работать прокси по SOCKS5.
Оговорка от авторов: формат токенов, CLI и Go-API пока без гарантий совместимости — в скрипты, которые потом никто не будет чинить, ставить рано.
@prog_tools
This media is not supported in your browser
VIEW IN TELEGRAM
cliamp — музыкальный плеер для терминала, сделанный по мотивам Winamp. Плейлист, параметрический эквалайзер и спектроанализатор рисуются прямо в текстовом окне, а играть он умеет локальные файлы, потоки, подкасты и то, что лежит в YouTube, SoundCloud, Bandcamp, Spotify, Navidrome, Plex, Jellyfin и Audiobookshelf.
Ветка 2.0 пока в предрелизе: 26 августа вышел
Очевидная альтернатива —
Ставится через
@prog_tools
Ветка 2.0 пока в предрелизе: 26 августа вышел
v2.0.0-rc.2 с зеркальным спектроанализатором, режимом 60 кадров в секунду и упрощённым режимом воспроизведения. Стабильной остаётся 1.63.2 от 13 августа. Звёзд у репозитория 3751 на 27 августа.Очевидная альтернатива —
cmus: он легче и старше, и если задача — управлять локальной фонотекой с клавиатуры, брать стоит его. cliamp берёт числом источников и картинкой, но для AAC, ALAC, Opus и WMA ему нужен ffmpeg, а для YouTube, SoundCloud и Bandcamp — yt-dlp.Ставится через
brew install bjarneo/cliamp/cliamp, есть пакет в AUR и запуск одной командой nix run github:bjarneo/cliamp.@prog_tools
Firewall, IDS или балансировщик ведут себя странно только на настоящем трафике, а настоящий трафик приходит в неудобное время и не повторяется.
🔘 Набор состоит из нескольких утилит:
🔘 В версии 4.6.0 переработали быстрый путь через AF_XDP: на обычной карте e1000 отправка выросла примерно с 13 тысяч пакетов в секунду до 305 тысяч, это 941 Мбит/с. Режим
🔘 Тогда же починили давнюю ошибку с jumbo-кадрами: кадр больше MTU, которому не хватало одной страницы кольцевого буфера, молча обрезался до 4096 байт.
🔘 Версия 4.6.1 вышла 15 августа и посвящена прежде всего безопасности и укреплению кода. Проект завёл три цели фаззинга — на разбор
Очевидная альтернатива — Ostinato: у него есть графический интерфейс, и конструировать пакеты руками в нём удобнее. Но если сценарий уже записан в дамп, воспроизводимый прогон и автоматизация из терминала — это про
@prog_tools
tcpreplay решает это в лоб: берёт записанный pcap и проигрывает его в сетевой интерфейс с нужной скоростью, сколько угодно раз подряд.tcpprep делит дамп на клиентскую и серверную стороны, tcprewrite переписывает адреса и заголовки второго, третьего и четвёртого уровней, tcpreplay отправляет результат в один интерфейс или в два сразу.--io-uring шлёт пакеты пачками вместо системного вызова на каждый и тратит примерно на 11 процентов меньше процессора.pcap, на правила fragroute и на парсер --services — и отдал их в OSS-Fuzz. За первые дни работы нашлось девять дефектов, от записи за границей кучи до зависания на исчерпании ресурсов; все исправлены в релизе вместе с тремя отдельно сообщёнными уязвимостями, две из которых с оценкой 7,0 и выше.Очевидная альтернатива — Ostinato: у него есть графический интерфейс, и конструировать пакеты руками в нём удобнее. Но если сценарий уже записан в дамп, воспроизводимый прогон и автоматизация из терминала — это про
tcpreplay. Звёзд у репозитория 1344 на 27 августа.@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
xenarch-guard: песочница для команд ИИ-агента без Docker и без прав администратора
Агент с доступом к командной строке удобен ровно до того момента, когда вызывает инструмент, лезущий не туда. Docker проблему закрывает, но тащить демон и права администратора ради одного вызова — перебор.
xenarch-guard запускается как обёртка:
Очевидная альтернатива —
В нашем канале Tproger разобрали подробнее.
@prog_tools
Агент с доступом к командной строке удобен ровно до того момента, когда вызывает инструмент, лезущий не туда. Docker проблему закрывает, но тащить демон и права администратора ради одного вызова — перебор.
xenarch-guard запускается как обёртка:
xenarch-guard --allow-write ./workspace python script.py — и python видит только ./workspace, а опасные системные вызовы отрезаны. Внутри Landlock ограничивает пути, seccomp-bpf фильтрует системные вызовы; оба механизма ядра Linux работают без привилегий. Обёртка не форкает процесс, а заменяет себя на команду через execve(), так что родителя, к которому можно обратиться, не остаётся.Очевидная альтернатива —
bubblewrap: он старше, гибче и умеет полноценные пространства имён с монтированием. Но и настраивать его дольше, а тут одна строка перед командой. Сравнивать с Docker честнее по цене входа: демона и root-прав здесь нет вовсе.В нашем канале Tproger разобрали подробнее.
@prog_tools
age шифрует файлы коротким ключом и работает в shell-пайпах
age — небольшая утилита Филиппо Вальсорды для шифрования файлов. Она нужна, чтобы закрыть бэкап или архив перед загрузкой в чужое хранилище, а также зашифровать поток прямо в юниксовом конвейере.
У age один короткий ключ, без брелоков, серверов ключей и сетей доверия. Установка на macOS:
В версии 1.3.2 усилили проверки входных данных. Утилита отвергает заголовки больше 2 МБ, файлы с более чем 1024 получателями и некорректные ключи SSH. Открытый текст не в UTF-8 больше не выводится в терминал сам собой: принудительно это включается через
GnuPG выигрывает, когда нужна вся экосистема OpenPGP: подписи, сети доверия, совместимость с чужими инструментами и почтой. age выигрывает простотой для обычного шифрования файлов и юниксовых конвейеров.
К 30 августа репозиторий age собрал 23 400 звёзд на GitHub.
@prog_tools
age — небольшая утилита Филиппо Вальсорды для шифрования файлов. Она нужна, чтобы закрыть бэкап или архив перед загрузкой в чужое хранилище, а также зашифровать поток прямо в юниксовом конвейере.
У age один короткий ключ, без брелоков, серверов ключей и сетей доверия. Установка на macOS:
brew install age. На Linux: apt install age.В версии 1.3.2 усилили проверки входных данных. Утилита отвергает заголовки больше 2 МБ, файлы с более чем 1024 получателями и некорректные ключи SSH. Открытый текст не в UTF-8 больше не выводится в терминал сам собой: принудительно это включается через
-o -. Для релиза подготовили сборки под Windows ARM64 и macOS на Intel.GnuPG выигрывает, когда нужна вся экосистема OpenPGP: подписи, сети доверия, совместимость с чужими инструментами и почтой. age выигрывает простотой для обычного шифрования файлов и юниксовых конвейеров.
К 30 августа репозиторий age собрал 23 400 звёзд на GitHub.
@prog_tools
👍1
Перегнать логотип из PNG в SVG прямо в браузере, без загрузки на чужой сервер
Векторизация растрового логотипа — задача, которая кажется мелочью, пока за неё не возьмёшься: автор Vectron описывает свой опыт так: онлайн-сервисы просят по $10 за картинку или подписку, а результат бесплатных выглядит так, будто логотип обводили во время землетрясения.
Vectron закрывает этот случай. Под ним лежит VTracer — открытый движок трассировки на Rust, у которого отличный алгоритм и интерфейс командной строки вместо интерфейса. Автор собрал VTracer в WebAssembly и запустил в Web Worker, поэтому работа идёт целиком на вашей машине: файл никуда не уходит, картинки небольшого размера обрабатываются почти мгновенно.
Что важно знать до того, как открывать:
— внутри обычная детекция краёв и подгонка кривых, без нейросети, поэтому один и тот же файл всегда даёт один и тот же результат;
— лучше всего получается на чистой графике: логотипы, иконки, линейные рисунки. Фотографию инструмент тоже попробует, но результат напомнит, почему это трудная задача;
— проблемный участок можно выделить рамкой и подкрутить фильтры отдельно для него, не трогая остальное.
Если нужен пакетный прогон или тонкая настройка параметров, тот же VTracer работает как обычная консольная утилита — сборки и исходники лежат на GitHub.
@prog_tools
Векторизация растрового логотипа — задача, которая кажется мелочью, пока за неё не возьмёшься: автор Vectron описывает свой опыт так: онлайн-сервисы просят по $10 за картинку или подписку, а результат бесплатных выглядит так, будто логотип обводили во время землетрясения.
Vectron закрывает этот случай. Под ним лежит VTracer — открытый движок трассировки на Rust, у которого отличный алгоритм и интерфейс командной строки вместо интерфейса. Автор собрал VTracer в WebAssembly и запустил в Web Worker, поэтому работа идёт целиком на вашей машине: файл никуда не уходит, картинки небольшого размера обрабатываются почти мгновенно.
Что важно знать до того, как открывать:
— внутри обычная детекция краёв и подгонка кривых, без нейросети, поэтому один и тот же файл всегда даёт один и тот же результат;
— лучше всего получается на чистой графике: логотипы, иконки, линейные рисунки. Фотографию инструмент тоже попробует, но результат напомнит, почему это трудная задача;
— проблемный участок можно выделить рамкой и подкрутить фильтры отдельно для него, не трогая остальное.
Если нужен пакетный прогон или тонкая настройка параметров, тот же VTracer работает как обычная консольная утилита — сборки и исходники лежат на GitHub.
@prog_tools
Один сценарий сразу по нескольким базам: локальный SQL-клиент DataZen
DataZen — настольный клиент для баз данных. Он нужен, чтобы писать SQL, смотреть схему и план
Поддерживаются PostgreSQL, MySQL, MariaDB, SQLite и Redis. Приложение написано на Tauri v2, Rust и React и работает локально.
Версию 0.1.0 выпустили как первый публичный preview. На Linux пакет ставится командой
DBeaver зрелее, проверен годами и знает намного больше источников данных. DataZen пока берёт компактностью и сценариями между разными базами. Это версия 0.1.0, ждать стабильности рано.
@prog_tools
DataZen — настольный клиент для баз данных. Он нужен, чтобы писать SQL, смотреть схему и план
EXPLAIN, импортировать и экспортировать данные, строить графики по результатам запросов и связывать несколько баз одним сценарием.Поддерживаются PostgreSQL, MySQL, MariaDB, SQLite и Redis. Приложение написано на Tauri v2, Rust и React и работает локально.
Версию 0.1.0 выпустили как первый публичный preview. На Linux пакет ставится командой
sudo apt install ./DataZen-*-linux-x64.deb; доступны также AppImage и сборки для macOS и Windows.DBeaver зрелее, проверен годами и знает намного больше источников данных. DataZen пока берёт компактностью и сценариями между разными базами. Это версия 0.1.0, ждать стабильности рано.
@prog_tools
❤1🔥1
StemDeck раскладывает трек на шесть дорожек у вас на машине — бесплатно и без облака
Вокал, барабаны, бас, гитара, пианино и всё остальное: StemDeck разделяет аудио на стемы открытой моделью Demucs и раскладывает их в микшер, как в DAW, — mute и solo по дорожкам, лупы по фрагменту, экспорт отдельных стемов или собственного микса.
Принимает MP3, WAV, FLAC, OGG, M4A и ссылки на YouTube. Модель весит около 170 МБ и качается один раз; на видеокартах NVIDIA и Apple Silicon разделение быстрое, на процессоре медленно, но работает. Аудио не покидает машину.
Это открытая альтернатива облачным Moises и LALAL.AI: без аккаунта, квот и подписки. Код под Apache 2.0, у проекта 3,4 тыс. звёзд.
github.com/stemdeckapp/stemdeck
@prog_tools
Вокал, барабаны, бас, гитара, пианино и всё остальное: StemDeck разделяет аудио на стемы открытой моделью Demucs и раскладывает их в микшер, как в DAW, — mute и solo по дорожкам, лупы по фрагменту, экспорт отдельных стемов или собственного микса.
Принимает MP3, WAV, FLAC, OGG, M4A и ссылки на YouTube. Модель весит около 170 МБ и качается один раз; на видеокартах NVIDIA и Apple Silicon разделение быстрое, на процессоре медленно, но работает. Аудио не покидает машину.
Это открытая альтернатива облачным Moises и LALAL.AI: без аккаунта, квот и подписки. Код под Apache 2.0, у проекта 3,4 тыс. звёзд.
github.com/stemdeckapp/stemdeck
@prog_tools
✍4⚡1
OpenClaw — открытый персональный ИИ-агент: ставится на свою машину, подключается к мессенджерам и почте и выполняет задачи вроде «следи за письмами из школы и пересылай важное в Telegram». Установка начинается с того, что уже есть на компьютере: подписки ChatGPT и Claude, API-ключи, локальные модели. Вышла версия 2.0, крупнейший релиз в истории проекта: больше 16 000 пул-реквестов от 933 контрибьюторов, примерно половина всех пул-реквестов проекта за всё время.
Что внутри:
🔘 установка упростилась, часть настроек убрали, а остальное делается уже в диалоге с агентом;
🔘 браузерное приложение пересобрано заново и стало полноценным интерфейсом;
🔘 общие облачные сессии: задачу агента можно передать коллеге вместе со всем накопленным контекстом;
🔘 релиз затронул память, скиллы, автоматизации, плагины и безопасность.
В отличие от облачных агентов, OpenClaw не привязан к одной компании: код открыт, провайдера модели можно выбирать и менять. Плата за это — установка и ответственность за безопасность на вашей стороне.
@prog_tools
Что внутри:
В отличие от облачных агентов, OpenClaw не привязан к одной компании: код открыт, провайдера модели можно выбирать и менять. Плата за это — установка и ответственность за безопасность на вашей стороне.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣3❤2👾1
tailcat соединяет две машины за NAT без аккаунта и без сети: адрес машины — её ключ
Tailscale открыла CLI и Go-пакет, который делает то, что netcat делал в локальной сети, только через интернет. На одной машине запускаете
Адрес здесь не IP, а публичный ключ WireGuard плюс сведения о релее DERP, через который машину можно найти, если прямой путь через NAT не пробьётся. Поэтому не нужны ни аккаунт, ни tailnet, ни root, ни TUN-интерфейс.
🔘 Установка:
🔘 Годится для разового доступа: забрать файл с домашней машины, пустить коллегу на стенд
🔘 Не годится как постоянная сеть: нет списка устройств, ACL и DNS, а стабильность CLI авторы не обещают
Честное сравнение: для постоянной сети между серверами обычный Tailscale или WireGuard-конфиг остаются удобнее, а ngrok выставляет порт в публичный интернет, чего tailcat как раз не делает. Автор, Брэд Фицпатрик, написал прототип ещё в 2023 году и рассказал, зачем он нужен.
@prog_tools
Tailscale открыла CLI и Go-пакет, который делает то, что netcat делал в локальной сети, только через интернет. На одной машине запускаете
tailcat в режиме ожидания и получаете адрес, на другой передаёте этот адрес, и между ними появляется шифрованный канал. Поверх можно пустить SSH, передачу файлов или проброс порта.Адрес здесь не IP, а публичный ключ WireGuard плюс сведения о релее DERP, через который машину можно найти, если прямой путь через NAT не пробьётся. Поэтому не нужны ни аккаунт, ни tailnet, ни root, ни TUN-интерфейс.
go install github.com/tailscale/tailcat/cmd/tailcat@latest, лицензия BSD-3-ClauseЧестное сравнение: для постоянной сети между серверами обычный Tailscale или WireGuard-конфиг остаются удобнее, а ngrok выставляет порт в публичный интернет, чего tailcat как раз не делает. Автор, Брэд Фицпатрик, написал прототип ещё в 2023 году и рассказал, зачем он нужен.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Запускайте программы для macOS прямо в Linux с помощью Darling
Darling позволяет запускать программы для macOS на Linux. Он выполняет для macOS ту же роль, что Wine для Windows: переводит системные вызовы и предоставляет приложению знакомое окружение. Название проекта составлено из слов Darwin и Linux.
Аппаратная эмуляция не используется, поэтому программы исполняются напрямую. Darling реализует среду Darwin — ядро и базовую систему macOS и iOS, включая Mach,
Проект открыт, распространяется по GNU GPL 3 и использует свободные исходники Darwin, опубликованные Apple. По словам разработчиков, такой подход соответствует EULA Apple. Базовая экспериментальная поддержка простых графических приложений уже есть.
Darling работает и в Windows через WSL 2. В дальнейших планах — запуск приложений iOS на ARM-устройствах; для этого команде потребуется собственная реализация UIKit, системы интерфейсов iOS.
Darling позволяет запускать программы для macOS на Linux. Он выполняет для macOS ту же роль, что Wine для Windows: переводит системные вызовы и предоставляет приложению знакомое окружение. Название проекта составлено из слов Darwin и Linux.
Аппаратная эмуляция не используется, поэтому программы исполняются напрямую. Darling реализует среду Darwin — ядро и базовую систему macOS и iOS, включая Mach,
dyld и launchd. В обычном Linux-шелле uname возвращает Linux, а после darling shell показывает Darwin.Проект открыт, распространяется по GNU GPL 3 и использует свободные исходники Darwin, опубликованные Apple. По словам разработчиков, такой подход соответствует EULA Apple. Базовая экспериментальная поддержка простых графических приложений уже есть.
Darling работает и в Windows через WSL 2. В дальнейших планах — запуск приложений iOS на ARM-устройствах; для этого команде потребуется собственная реализация UIKit, системы интерфейсов iOS.
❤🔥2
Держите версии Node, Python, Go и Terraform в одном файле, и пусть ставятся при первом вызове
В версии 2026.9.0, вышедшей 1 сентября, появилась ленивая установка: у инструмента в конфиге ставится
🔘 зачем: в монорепе с десятком инструментов новый человек получает рабочее окружение за секунды, а редкие утилиты не тянутся, пока не понадобятся
🔘 против
@prog_tools
mise это менеджер версий инструментов на Rust: один файл mise․toml в проекте описывает, какие версии языков и CLI нужны, а при входе в каталог они подхватываются автоматически. Замена nvm, pyenv и asdf разом, у репозитория 33 тысячи звёзд.В версии 2026.9.0, вышедшей 1 сентября, появилась ленивая установка: у инструмента в конфиге ставится
lazy = true, и mise создаёт для него заглушку-шим. Сам бинарник скачивается только при первом запуске команды. mise install такие инструменты пропускает, mise install --include-lazy ставит всё заранее.asdf: тот же формат плагинов, но mise быстрее на старте шелла и умеет ещё задачи и переменные окружения; asdf проще и старше@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
Приложите скриншот к issue одной командой, не открывая браузер
GitHub CLI, официальный терминальный клиент GitHub, до сих пор умел работать только с текстом: картинку к багрепорту приходилось тащить через веб. В версии 2.99.0 появился флаг
🔘
🔘 работает в
🔘 alt-текст после решётки:
🔘 локальная ссылка
🔘 форматы PNG, JPEG, GIF, WebP, SVG, MP4, MOV, WebM; лимит 10 МБ на картинку, видео до 100 МБ на платных планах.
Нужен OAuth-токен от
@prog_tools
GitHub CLI, официальный терминальный клиент GitHub, до сих пор умел работать только с текстом: картинку к багрепорту приходилось тащить через веб. В версии 2.99.0 появился флаг
--attach.gh issue comment --attach ./screenshot.png загружает файл в комментарий;gh issue и gh pr для create, edit и comment, флаг можно повторять;--attach './login.png#The login error state'; в Markdown переписывается на загруженный файл;Нужен OAuth-токен от
gh auth login или classic PAT и право записи в репозиторий. GitHub Enterprise Server пока мимо. Веб-интерфейс всё ещё удобнее для перетаскивания десятка файлов, но для CI и скриптов альтернативы у него нет. Как встроить в пайплайн, разобрали на сайте.@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Утилиты, которые показывают, где именно вы опечатались в команде
uutils coreutils, переписанные на Rust
🔘 работает в 28 утилитах, включая
🔘 в пайпах и скриптах остаётся однострочное сообщение, парсеры stderr не сломаются;
🔘
🔘 попробовать можно в песочнице в браузере без установки;
🔘 бонусом PGO-сборки до 31% быстрее и
Против GNU Coreutils: тесты совместимости проходят на 653 из 685, оставшиеся расхождения касаются редких флагов, и в старых скриптах они могут всплыть. Ставить стоит рядом с системными утилитами, а не вместо них. Подробности релиза на сайте.
@prog_tools
uutils coreutils, переписанные на Rust
ls, cp, sort и остальные базовые утилиты Linux, в версии 0.11.0 получили диагностику как у компилятора: под командой печатается сама строка, под ней каретка на неверном символе и подсказка с правильным синтаксисом.cut, chmod, sort, tr;UUTILS_DIAG=always|never|auto переключает режим;cp быстрее на 32,93%.Против GNU Coreutils: тесты совместимости проходят на 653 из 685, оставшиеся расхождения касаются редких флагов, и в старых скриптах они могут всплыть. Ставить стоит рядом с системными утилитами, а не вместо них. Подробности релиза на сайте.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
WebLLM запускает языковую модель прямо во вкладке браузера, сервер не нужен
npm-библиотека от команды MLC AI: модель скачивается один раз, кэшируется в браузере и считает на видеокарте пользователя через WebGPU. API совместим с OpenAI. 18,8 тыс. звёзд на GitHub, Apache-2.0.
🔘
🔘
🔘 Web Worker и Service Worker, чтобы не вешать интерфейс; JSON-режим реализован в WASM-части;
🔘 на графике, сколько видеопамяти просят предсобранные модели: от 0,7 ГБ у gemma3-1b до 6,4 ГБ у Qwen3.5-9B.
Против серверного API: промпты не уходят с устройства и инференс бесплатен, но первый запуск ждёт скачивания весов, а на слабом ноутбуке модель не поместится. Попробовать без кода: chat.webllm.ai. Разбор с кодом, замерами и FAQ на сайте.
@prog_tools
npm-библиотека от команды MLC AI: модель скачивается один раз, кэшируется в браузере и считает на видеокарте пользователя через WebGPU. API совместим с OpenAI. 18,8 тыс. звёзд на GitHub, Apache-2.0.
npm install @mlc-ai/web-llm или импорт с CDN https://esm.run/@mlc-ai/web-llm;CreateMLCEngine("Llama-3.2-1B-Instruct-q4f32_1-MLC", { initProgressCallback }), дальше engine.chat.completions.create({ messages, stream: true });Против серверного API: промпты не уходят с устройства и инференс бесплатен, но первый запуск ждёт скачивания весов, а на слабом ноутбуке модель не поместится. Попробовать без кода: chat.webllm.ai. Разбор с кодом, замерами и FAQ на сайте.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
VS Code 1.136: агент сам доводит ваш pull request до зелёных проверок
Agent Merge в новом VS Code берёт открытый PR и крутит цикл: читает замечания ревью, правит код, перезапускает упавшие проверки, разрешает конфликты, пока ветку не станет можно сливать. Функция в Preview.
🔘 включение:
🔘 агенты Copilot и Claude экспериментально работают с multi-root workspace (
🔘 дерево сессий со статусами и ожидающими подтверждениями, уведомления, когда агенту нужен ввод;
🔘 терминальные расширения больше не ждут до 5 секунд при запуске.
Против ручного цикла «прочитал комментарий, поправил, запушил» выигрыш очевиден на быстром CI; на медленных пайплайнах каждая итерация агента стоит минут и токенов, а сколько именно, Microsoft не пишет. Без подписки Copilot остаются Compact layout, ускорение запуска терминальных расширений и мелкие правки редактора и доступности. Подробнее на сайте.
@prog_tools
Agent Merge в новом VS Code берёт открытый PR и крутит цикл: читает замечания ревью, правит код, перезапускает упавшие проверки, разрешает конфликты, пока ветку не станет можно сливать. Функция в Preview.
chat.agentMerge.enabled, запуск из окна Agents;chat.agentHost.copilotAgent.multiRootEnabled, chat.agentHost.claudeAgent.multiRootEnabled), хуки пока в пределах одной папки;Против ручного цикла «прочитал комментарий, поправил, запушил» выигрыш очевиден на быстром CI; на медленных пайплайнах каждая итерация агента стоит минут и токенов, а сколько именно, Microsoft не пишет. Без подписки Copilot остаются Compact layout, ускорение запуска терминальных расширений и мелкие правки редактора и доступности. Подробнее на сайте.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
Zed 1.18 вспоминает файлы прошлой сессии и показывает значения переменных в C и C++ прямо в коде
Zed это нативный редактор от авторов Atom, ставка на скорость и встроенную совместную работу; экосистема расширений у VS Code по-прежнему шире. В 1.18.0 117 коммитов, из заметного:
🔘 File Finder показывает недавно открытые файлы из предыдущих сессий, а не только текущей;
🔘 отладчик через CodeLLDB и GDB рисует inline-значения для C и C++, Continue Program и Continue Thread разведены;
🔘
🔘 сломанное подключение внешнего агента перезагружается без рестарта редактора; задержка inline-подсказок настраивается через
🔘 терминал понимает
Установка на Linux и macOS:
@prog_tools
Zed это нативный редактор от авторов Atom, ставка на скорость и встроенную совместную работу; экосистема расширений у VS Code по-прежнему шире. В 1.18.0 117 коммитов, из заметного:
git: toggle diff base переключает базу диффа между HEAD и веткой по умолчанию;edit_predictions.<provider>.prediction_debounce;ctrl-alt-<буква>, на Linux кэшируются шрифты и глифы.Установка на Linux и macOS:
curl -f https://zed.dev/install.sh | sh, для Windows отдельная сборка на сайте.@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
Mantis: Google выложила гайд по своему ИИ-конвейеру для поиска и починки уязвимостей
Mantis это набор скиллов для кодинг-агента, которым Google проверяет собственные репозитории: 16 последовательных стадий плюс вспомогательные скиллы, от
▪️ Установка:
▪️ Агент любой: Google проверяла с Gemini CLI, Antigravity CLI и ADK; модель приносите свою.
▪️ Запуск: открыть агента и написать «I would like to use Mantis framework in path/to/mantis to review my code in path/to/your/code, can you help me get started?».
▪️ Песочница обязательна: gVisor с
▪️ Каждую находку подтверждает человек: README запрещает массово слать непроверенные ИИ-отчёты мейнтейнерам.
Как устроены стадии и что Mantis не обещает, разобрали на сайте.
Mantis это набор скиллов для кодинг-агента, которым Google проверяет собственные репозитории: 16 последовательных стадий плюс вспомогательные скиллы, от
/mantis-history (учится на прошлых security-фиксах в истории коммитов) до /mantis-reproduce (воспроизводит уязвимость в контейнере без сети) и /mantis-patch. Репозиторий google/mantis открыт с июня под Apache-2.0, а 2 сентября Google опубликовала инструкцию по запуску, где представила скилл mantis-advise из репозитория, который подсказывает агенту безопасные решения ещё до правок.▪️ Установка:
git clone https://github.com/google/mantis.git или npx skills add google/mantis.▪️ Агент любой: Google проверяла с Gemini CLI, Antigravity CLI и ADK; модель приносите свою.
▪️ Запуск: открыть агента и написать «I would like to use Mantis framework in path/to/mantis to review my code in path/to/your/code, can you help me get started?».
▪️ Песочница обязательна: gVisor с
--network=none, microsandbox или отдельная VM; флаги вроде --yolo авторы прямо запрещают.▪️ Каждую находку подтверждает человек: README запрещает массово слать непроверенные ИИ-отчёты мейнтейнерам.
Как устроены стадии и что Mantis не обещает, разобрали на сайте.