The terminal of the future 🔥 Горячее
Современные терминалы ограничены решениями, принятыми ещё в 1980-х, и состоят из четырёх компонентов: эмулятора терминала, псевдотерминала (PTY), оболочки (shell) и запускаемых программ. Автор отмечает, что внутренняя структура терминалов — это "куча", где многие решения невозможно изменить из-за исторического наследия. В качестве примера приводится цитата Джулии Эванс: "Внутренности терминалов — это беспорядок. Большая часть этого именно такая, потому что так кто-то решил в 80-х, и теперь это невозможно изменить".
В качестве альтернативы традиционному терминалу автор предлагает использовать Jupyter Notebook как модель для будущего терминала, предлагающую такие возможности, как высококачественное рендеринг изображений, функцию "перезапустить с начала" и возможность редактирования представлений кода и вывода. Статья описывает четыре этапа создания такого терминала: транзакционную семантику, постоянные сессии, структурированный RPC и интерфейс, похожий на Jupyter.
Комментарии (146)
- Обсуждение охватывает широкий спектр тем: от философских вопросов о том, что такое терминал и каким он должен быть, до конкретных технических деталей, таких как поддержка изображений, буферов и сессий.
- Участники обсуждают, какие функции действительно необходимы, и какие являются излишеством, и как они могли бы быть реализованы без нарушения обратной совместимости.
- Обсуждаются такие темы как встроенная поддержка редактора, возможность встроенной поддержки графики и мультимедиа, и как эти функции могли бы быть реализованы без нарушения существующих стандартов.
- Участники также обсуждают, какие функции могли бы быть реализованы в будущем, и какие из них уже реализованы в других системах, таких как Jupyter и Emacs.
- Обсуждается, какие функции могли бы быть реализованы в будущем, и какие из них уже реализованы в других системах, таких как Jupyter и Emacs.
Комментарии (77)
- Windows Terminal development focuses on improving throughput and performance, with recent updates significantly boosting speed.
- Users compare terminal performance across platforms, noting macOS's Terminal.app and alternatives like Ghostty, with some pointing to benchmarks showing macOS may lag.
- Feature requests include serial communication support (e.g., Serial/RS232) and better integration with tools like Tera Term, alongside discussions on handling output buffering.
- Some users highlight Windows Terminal's advantages, like WSL integration, while others note limitations compared to Linux/macOS terminals.
- Discussions acknowledge Windows as a multi-purpose OS, not just for gaming, with many developers using it daily for development, especially with WSL.
Ratatui – App Showcase 🔥 Горячее 💬 Длинная дискуссия
Ratatui — библиотека для создания терминальных интерфейсов (TUI) на Rust, предлагающая инструменты для построения интерактивных консольных приложений. Она предоставляет богатый набор виджетов (таблицы, графики, календари, списки), гибкие системы компоновки и стилизации, а также поддержку различных архитектурных подходов, включая The Elm Architecture, Component и Flux. Библиотека работает с несколькими бэкендами, поддерживает обработку событий, работу с сырым режимом терминала и захват мыши.
Документация структурирована по разделам: от базовой установки и флагов возможностей до подробных туториалов (создание счётчика, JSON-редактора), примеров приложений и концепций. Особое внимание уделено рецептам решения конкретных задач: компоновка интерфейсов, рендеринг, кастомизация виджетов, тестирование и разработка приложений. Проект активно развивается, с активным сообществом в Discord, Matrix и других платформах.
Комментарии (189)
- Rust-разработчики выбирают TUI, потому что в Rust нет приемлемого GUI-решения, а Ratatui «просто работает».
- Сообщество в основном согласно, что Qt в Rust нет и не предвидится, и что это не проблема, которую можно решить внешним крейтом.
- Терминальные приложения в Rust-экосистеме в основном используют Ratatui, потому что он «просто работает» и не требует сложной настройки.
- Несколько участников поделились ссылками на свои проекты, в которых используется Ratatui, включая игру Rebels in the Sky и чат-клиент termchat.
- Обсуждение также коснулось того, что TUI-инструменты в Rust-экосистеме в основном используют Ratatui, потому что он «просто работает» и не требует сложной настройки.
Bat v0.26.0
К сожалению, в предоставленном тексте нет информации о содержимом релиза bat v0.26.0. Виден только заголовок страницы релиза, но отсутствует описание изменений, новых функций или исправлений, которые обычно публикуются в таких анонсах.
Чтобы предоставить точный пересказ, необходима информация о том, что нового в этой версии bat. Обычно такие релизы включают обновления подсветки синтаксиса для новых языков программирования, исправления ошибок или новые возможности утилиты.
Комментарии (50)
bat— улучшенныйcat, который подсвечивает синтаксис, показывает git-изменения и имеет встроенный пейджер.- Пользователи отмечают, что
batделает чтение кода и логов в терминале более удобным и приятным. - Некоторые вспоминают, что
bat— это единственный инструмент, который они устанавливают в первую очередь в новой системе. - Несколько человек вспомнили, что когда-то использовали
catи были удивлены, чтоbat— это не просто переработкаcat, а полностью новый инструмент.
Run interactive commands in Gemini CLI
В предоставленном фрагменте содержится только навигационная структура сайта Google Developers Blog и заголовок статьи "Say hello to a new level of interactivity in Gemini CLI", но отсутствует основной текст публикации.
Заголовок указывает на анонс обновлений для Gemini CLI, повышающих уровень интерактивности, но конкретные детали, функции или улучшения в тексте не раскрыты. Статья доступна на нескольких языках, включая английский, испанский, индонезийский, японский, корейский, португальский и китайский.
Для создания точного пересказа требуется полный текст статьи с описанием новых возможностей Gemini CLI.
Комментарии (69)
- Пользователи жалуются на ненадёжность Gemini CLI: модель часто отказывается читать файлы вне проекта, путает
\nи\n\n, а иногда и вовсе не может запустить интерактивную оболочку без дополнительного убеждения. - Сообщество отмечает, что в отсутствии нормального MCP-протокола Gemini CLI уступает не только в UX, но и в надёжности: «по факту ты просто запускаешь процесс в псевдотерминале и смотришь стрим — без TUI-модели и без встроенного логгера снимков состояния».
- Несколько участников подтверждают, что даже базовые сценарии вроде
git logилиgit diffзаставляют модель «залипать» и требуют ручного перезапуска. - Наблюдается общее чувство, что Google недооценивает как саму модель, так и экосистему вокруг неё: «Почему до сих пор нет нормального логгера, нормального MCP-сервера, нормального линтера или хотя бы нормального линтера?»
- Наконец, вопрос о лицензии: «кто владеет "сериализованными" терминальными сессиями, которые Google выгружает в облако?»
Libghostty is coming 🔥 Горячее 💬 Длинная дискуссия
Разработчик Mitchell Hashimoto анонсировал libghostty — библиотеку для встраивания полнофункционального терминала в любые приложения. Первым компонентом станет libghostty-vt: легковесная библиотека без зависимостей (включая libc) для парсинга терминальных последовательностей и управления состоянием терминала. Она извлечена из ядра Ghostty и предлагает оптимизированную обработку Unicode, поддержку SIMD и совместимость с продвинутыми протоколами вроде Kitty Graphics.
Проблема в том, что многие проекты (редакторы, веб-консоли, хостинги) реализуют эмуляцию терминала с нуля, часто с ошибками и неполной функциональностью. Libghostty-vt устраняет эту избыточность, предоставляя единое корректное и быстрое решение. Библиотека будет портирована на macOS, Linux, Windows, embedded-устройства и WASM, что шире, чем охват самого Ghostty.
Комментарии (239)
- Пользователи высоко оценивают Ghostty за его производительность, минималистичный дизайн и поддержку Zig, но отмечают отсутствие некоторых ключевых функций, таких как поиск (Cmd+F) и проблемы с рендерингом шрифтов.
- Многие выражают восхищение разработчиком Mitchell Hashimoto, его предыдущими проектами (Vagrant) и его подходом к созданию простых и эффективных систем.
- Анонс библиотеки libghostty вызвал интерес для использования в embedded-сценариях (игры, кастомные приложения, веб-терминалы) и как потенциальная замена существующим библиотекам.
- Некоторые пользователи столкнулись с проблемами совместимости, особенно с tmux и графическими протоколами, что мешает им полностью перейти с iTerm2 или других терминалов.
- Обсуждаются технические детали, такие как лицензирование (MIT vs LGPL), поддержка Unicode и сравнение с другими терминалами (Kitty, Alacritty, WezTerm).
iTerm2 Web Browser
iTerm2 расширяет возможности терминала, добавляя встроенный веб-браузер, который интегрируется в стандартную иерархию окон, вкладок и разделённых панелей. Для активации нужно установить плагин и создать профиль с типом «Web Browser». Навигация и управление окнами работают аналогично терминальным сессиям, включая горячие клавиши, но с особенностями: например, ⌘-[ и ⌘-] выполняют навигацию «назад/вперёд», а не переключение панелей.
Браузер поддерживает умное выделение текста, режим копирования, поиск с регулярными выражениями, интеграцию с ИИ для обсуждения страниц и приватный режим /dev/null. Есть блокировка рекламы, поддержка прокси и менеджеров паролей. Дополнительные функции включают закладки, запись сессий, глобальный поиск и автоматизацию через триггеры и сниппеты. Это позволяет работать с веб-контентом прямо в терминале, сохраняя привычный интерфейс.
Комментарии (75)
- Пользователи обсуждают новую функцию веб-браузера в iTerm2, отмечая её необычность и потенциальную полезность для интеграции терминала и браузера.
- Некоторые выражают скепсис, задаваясь вопросом о необходимости функции и предпочитая традиционные текстовые браузеры (например, lynx).
- Поднимаются вопросы технической реализации, ограничений Apple (например, отсутствие поддержки passkeys) и проблем с настройкой/отображением функции.
- Высказывается благодарность разработчику iTerm2 за качественный продукт и постоянные инновации, несмотря на наличие экстравагантных функций.
- Обсуждаются корпоративные сценарии использования, вопросы безопасности и потенциальные угрозы от запуска браузера внутри терминала.
MapSCII – World map in terminal
MapSCII — это инструмент для отображения карт мира прямо в терминале с использованием символов ASCII и Брайля. Для подключения на Mac и Linux достаточно выполнить команду telnet mapscii.me, предварительно установив telnet (например, через brew install telnet), а на Windows — использовать PuTTY.
Проект демонстрирует, как можно творчески подойти к визуализации данных в консоли, превращая географическую информацию в доступный и стильный текстовый формат. Это не только практично для быстрого просмотра карт без графического интерфейса, но и служит напоминанием о гибкости командной строки.
Комментарии (20)
- Обсуждение технических аспектов работы карты в различных терминалах и через Telnet, включая проблемы с отображением и поддержкой мыши.
- Упоминание о возрасте проекта (более 8 лет) и его доступности для vintage-компьютеров через Telnet.
- Сравнение проекта с другими известными работами, такими как Google Maps для NES и ежедневной игрой FoodGuessr.
- Восторженные отзывы о визуальной реализации и использовании OpenStreetMap для детализации до уровня улиц.
- Несколько комментаторов изначально спутали проект с чем-то связанным со StarCraft II из-за аббревиатуры SCII.
Oq: Terminal OpenAPI Spec Viewer
oq — консольный просмотрщик OpenAPI-спецификаций.
Быстро открывает swagger.json|yaml в терминале, показывает эндпоинты, параметры, примеры ответов.
Установка: go install github.com/plutov/oq@latest.
Использование: oq spec.yaml.
Комментарии (12)
- Утилита «oq» — терминальный просмотрщик OpenAPI-спецификаций, упрощающий навигацию по большим YAML/JSON.
- Пользователи практикуют spec-driven development: спецификация = единый источник правды, из неё генерируют типизированный клиент и сервер.
- Название «oq» уже занято другим проектом (homebrew-установка ставит не тот пакет); автор пока не переименовывает, предлагает брать бинарь с GitHub-релизов.
- Поддержка OpenAPI 3.1 заявлена, но реализована поверх библиотеки kin-openapi, которая 3.1 пока не умеет; для простого листинга маршрутов и компонентов это работает.
- В планах — добавить возможность делать реальные HTTP-запросы прямо из viewer.
Jiratui – A Textual UI for interacting with Atlassian Jira from your shell 🔥 Горячее
JiraTUI — терминальный клиент Jira: ищи, создавай, обновляй задачи не отрываясь от кода.
Возможности
- Поиск: быстрый фильтр по статусу, исполнителю, приоритету; продвинутый JQL с сохранением выражений.
- Создание: новая задача из консоли — заголовок, описание, приоритет за секунды.
- Обновление: статус, исполнитель, метки, дедлайн — всё правится командой.
- Комментарии: добавляй/удаляй прямо из терминала.
- Связи: линкуй/отвязывай подзадачи и зависимости без GUI.
Плюсы
- Конфигурируем: хоткеи и настройки под себя.
- Прост: команды понятны без мануала.
- Быстр: действия выполняются мгновенно.
- Удобен: минимум кликов, максимум фокуса.
Комментарии (68)
- Пользователи в восторге от Jira-TUI: быстрый поиск, красивый интерфейс, спасение от тормозов веб-версии.
- Просят аналоги для GitHub, Linear, Asana, Slack; ищут TUI-библиотеки Rust/Go такого же уровня.
- Хотят кликабельные ссылки из почты/Slack сразу в TUI, но это требует кастомного URI-обработчика.
- Кто-то просит CLI-версию для массового импорта задач, кто-то — классический Kanban-доску.
- Поднимаются вопросы безопасности (API-ключ в стороннем проекте) и поддержки on-prem Jira API v2 (не поддерживается).
Show HN: Term.everything – Run any GUI app in the terminal 🔥 Горячее
**term.everything** — запускай любые GUI-программы прямо в терминале.
Проект на GitHub: mmulet/term.everything
**term.everything** — запускай любые GUI-программы прямо в терминале.
Проект на GitHub: mmulet/term.everything
Комментарии (137)
- Проект запускает полноценные GUI-приложения (Wayland) прямо в терминале через escape-коды, чем восхищает и удивляет большинство комментаторов.
- Некоторые сравнивают с устаревшими трюками вроде Xvfb + sixel или вспоминают заброшенный Chromium-в-терминале Carbonyl.
- Находят практическое применение: удалённый доступ к браузеру/Discord при закрытых портах, CI-машины без VNC, аутентификация через Firefox по SSH, запуск VSCode с iPad.
- Вопросы и шутки: «Потребляет ли больше ресурсов?», «Запустит ли DOOM?», «Работает ли под X11?» (нет, только Wayland).
- Общий вердикт: «безумно круто», «бесполезно, но вдохновляет», «держу в закладках на чёрный день».
Forking Chrome to render in a terminal (2023)
-
Рисование
Терминал умеет только моноширинные символы и escape-последовательности. Используем нижний полублок▄, задавая цвет фона (верхний пиксель) и символа (нижний).fn print_pixels_pair(top, bottom, (x, y)) { println!("\x1b[{};{}H\x1b[48;2;{t}m\x1b[38;2;{b}m▄", y+1, x+1, t=top, b=bottom); } -
Текст
СоздаёмTextCaptureDeviceв Skia: перехватываемonDrawGlyphRunList, преобразуем glyph → Unicode, вызываем Rust-функциюdraw_text.
Добавляем очистку текста при заливке прямоугольников:if (paint.getStyle() == kFill_Style && paint.getAlphaf() == 1.0) clear_text(rect); -
Ввод
Читаем stdin, парсим escape-коды клавиш/мыши, передаём их в Chromium через DOM-события. -
Pipe-режим
carbonyl --pipeрисует в stdout, позволяя встраивать браузер в скрипты. -
Mojo
Заменяем GPU-процесс на заглушку, отключая лишние сервисы. -
Layout
Подгоняемdevice_scale_factorиviewportпод размер терминала, чтобы 1 px = ½ клетки. -
LoDPI
На 1×-экранах включаем сглаживание, чтобы символы не «дребезжали». -
Цвет
Палитра 6×6×6 или 24-бит truecolor; приводим цвета к ближайшему доступному. -
Заголовок
ESC-операторы меняют заголовок окна и вкладки tmux. -
Итог
Carbonyl запускает весь веб в терминале без X11/Wayland:cargo install carbonyl.
Комментарии (17)
- Carbonyl — терминальный браузер на движке Chrome, удивительно шустрый и юзабельный, особенно с --zoom=300 --bitmap.
- Пользователи просят добавить Kitty Graphics Protocol, sixel/chafa для нормального вывода картинок без ASCII-арта.
- Проект вдохновлён browsh, но работает быстрее; автору даже помог получить работу.
- Запускается в podman, показывает YouTube «кубиками» и почти справляется с капчей (могут помочь мультимодальные LLM).
- Под капотом — Skia и Mojo из Chromium, что позволяет рендерить всё, включая PDF.
Show HN: Doxx – Terminal .docx viewer inspired by Glow
doxx — утилита для просмотра содержимого .docx прямо в терминале.
Быстро, безопасно, без MS Office.
-
Установка
cargo install doxx -
Использование
- Просмотр:
doxx file.docx - Извлечение текста:
doxx --text file.docx > out.txt - Показ метаданных:
doxx --meta file.docx
- Просмотр:
-
Особенности
- Чистый Rust, нет внешних зависимостей.
- Поддержка кириллицы, таблиц, списков.
- Режим «только чтение» — файлы не изменяются.
Комментарии (57)
- Пользователи высоко оценили скорость и полезность TUI-утилиты для просмотра docx, но почти все согласились: название «doxx» вызывает негативные ассоциации с doxxing и требует смены.
- Ключевое требование — любые «AI-фичи» должны быть полностью опциональными или вынесены в отдельный проект, иначе инструмент запретят в корпоративных и юридических средах.
- Популярные пожелания: Docker-образ, бинарники для Windows, поддержка Track Changes/метаданных, отображение картинок через kitty/sixel, а также возможность «cat+grep» без промежуточных конвертаций.
- Некоторые предложили использовать pandoc, LibreOffice или OOXML-Validator как дополнительные инструменты, а автор подтвердил, что скоро появятся релизы и улучшенная документация.
Show HN: Lue – Terminal eBook Reader with Text-to-Speech
lue — терминальный ридер ePub с TTS.
- Основное: читает ePub, воспроизводит речью, работает в консоли.
- Управление: клавиши Vim-стиля, навигация по главам, закладки.
- Настройка: темы, голоса, скорость, горячие клавиши.
- Установка:
cargo install lueилиbrew install lue. - Системы: Linux, macOS, Windows.
- Лицензия: MIT.
Комментарии (22)
- Пользователи тестируют новый инструмент lue для чтения/озвучки epub в терминале: TTS-часть ценят за «просто закинул и слушай», но чтение в моноширинном шрифте вызывает сомнения.
- Основная боль — внешние зависимости (espeak, antiword) и требование Python ≥ 3.10; автор уже пообещал поднять минимальную версию.
- Прогресс и состояние озвучки сохраняются в системных логах; серверный запуск позволит синхронизировать закладки.
- Сноски, колонтитулы и служебные символы вырезаются, чтобы не мешать TTS; возможно появится опция оставлять их для обычного чтения.
- Автор собрал адаптеры для Kitten TTS, Gemini и др., но пока не опубликовал их, размышляя о выделении отдельного репозитория.
- Вопросы о запуске из Termux/Android и безопасности кода пока без ответа; автор приветствует аудит и обратную связь.
Progress towards universal Copy/Paste shortcuts on Linux
На Linux Ctrl-C/Ctrl-V в терминале не работают, потому что Ctrl нужен для управляющих кодов. Приходится жать Ctrl+Shift+C/V. К 2025 году появится универсальное решение без лишнего ПО: старые коды клавиш Copy и Paste, которые Linux «знает» с древности.
Как это работает
-
Клавиатура
Программируемые клавиатуры (System76 Launch, Framework 16, ZSA Moonlander, Keychron Q10 и др.) позволяют назначить на любую клавишу слой, где C = Copy, V = Paste. Для активации слоя удерживается модификатор (например, «Raise» на моей Corne). -
Прошивка и конфигураторы
Производители дают свои утилиты (System76 Keyboard Configurator), а Vial поддерживает множество моделей. В слое можно вывести Copy/Paste на C/V, стрелки на домашний ряд и прочие удобства. -
ПО Linux
Приложения опираются на GUI-тулкиты GTK и Qt.- GTK добавил поддержку Copy/Paste-кодов в январе 2025.
- Qt внедрит их в версии 6.10 (сентябрь 2025).
Совокупность программируемого «железа» и обновлённых тулкитов даст единые горячие клавиши Copy/Paste во всех приложениях Linux без дополнительных твиков.
Комментарии (135)
- Участники жалуются на разнообразие клипбордов в Linux (X11, Vim, tmux) и их несогласованность.
- В терминалах приходится добавлять Shift к Ctrl-C/Ctrl-V, что ломает мышечную память и вызывает ошибки.
- Apple решает конфликт отдельным Cmd-ключом, но даже там приложения перехватывают сочетания непредсказуемо.
- Многие используют альтернативы: Ctrl/Shift-Insert, выделение + средняя кнопка мыши, ремап клавиш, покупку программируемых клавиатур.
- Единого механизма объявления и настройки шорткатов в Linux нет, поэтому Chrome и другие приложения игнорируют системные привязки.