Представлен новый консольный браузер Browsh, примечательный полноценной поддержкой web-технологий и возможностью отображения изображений, видео и WebGL-контента в форме ASCII-анимации. Для обработки контента применяется движок Firefox. Код Browsh написан на языках Go и JavaScript, и распространяется под лицензией GPLv3. Готовые сборки подготовлены для Linux, FreeBSD, macOS и Windows (для работы дополнительно должен быть установлен Firefox новее выпуска 56).

В качестве основной области применения Browsh называется работа в условиях экономии трафика или при низкой пропускной способности. Например, при наличии канала связи порядка 3kbps (при подключении через телефон с GPRS) можно соединиться по SSH с сервером и запустить на нём Browsh. В отличие от таких консольных браузеров, как elinks и lynx, в Browsh имеется полноценная поддержка JavaScript и HTML5. Для обработки web-контента используется браузер Firefox, запускаемый в режиме без вывода на экран (“-headless”).

В запускаемый в режиме headless экземпляр Firefox устанавливается специальное дополнение, которое принимает от консольной утилиты запросы, обрабатывает их и выполняет трансляцию вывода в текстовое представление с ASCII-графикой. Консольная утилита выполняет роль прослойки для организации взаимодействия пользователя, основная логика реализована на стороне браузерного дополнения.

Browsh можно запускать через терминал или использовать в виде web-сервиса, предоставляющего упрощённый вариант страниц для просмотра в web-браузере пользователя. Например, открытие в Browsh сайта, который при обычных условиях требует загрузки 3MB данных и отправляет более 100 HTTP-запросов, потребует загрузки всего 15 KB данных и отправки двух HTTP-запросов (один для содержимого и один для favicon). Режим работы в виде web-сервиса встроен в Browsh и активируется при указании опции “-http-server” (по умолчанию запросы принимаются на 4333 сетевом порту).

Для сокращения требуемой для просмотра в терминале пропускной способности дополнительно может применяться MoSH, кэширующий состояние экрана на стороне клиента и передающий только информацию об изменившихся данных. Browsh также может использоваться для организации доступа в web со слишком маломощных систем, у которых недостаточно ресурсов для запуска полноценного браузера и имеется только возможность обращения к удалённому терминалу, или при нежелании нагружать CPU запуском браузера в условиях жесткой экономии заряда аккумулятора.