Инструменты12 июля 2026 г., 01:45 МСК🤖 Auto

Freeze от Charm: генерация идеальных скриншотов кода с поддержкой TUI

Charm представила Freeze — утилиту для создания эстетичных изображений кода и терминального вывода. Поддержка ANSI, интерактивный режим и гибкая кастомизация.

Баннер новости 3393

Что такое Freeze и зачем это нужно

Команда Charm, известная своими инструментами для терминала (Bubbletea, Lip Gloss), выпустила Freeze — утилиту с открытым исходным кодом, предназначенную для генерации высококачественных изображений (PNG, SVG, WebP) фрагментов кода и вывода терминала. Инструмент решает проблему «некрасивых» скриншотов в статьях и презентациях, предлагая автоматическое определение языка, поддержку тем и стилизацию под macOS.

Ключевые возможности и метрики

Freeze выделяется не только рендерингом статического кода, но и возможностью захвата ANSI-вывода команд. Утилита поддерживает интерактивный TUI (Text User Interface) для визуальной настройки параметров перед сохранением. Основные технические характеристики:

  • Форматы вывода: SVG, PNG, WebP.
  • Автоопределение: Язык программирования определяется по имени файла или содержимому.
  • Шрифты: По умолчанию используется JetBrains Mono (14px, 1.2em), но можно задать любой шрифт, включая встраивание файлов TTF/WOFF/WOFF2.
  • Стилизация: Настройка радиуса углов, теней, отступов, номеров строк и оконных контролов.

Примеры использования

Утилита работает через CLI и поддерживает флаги для тонкой настройки. Ниже приведена таблица основных параметров конфигурации:

Параметр Описание Пример команды
--theme Тема подсветки синтаксиса freeze code.hs --theme dracula
--font.size Размер шрифта (по умолч. 14) freeze code.go --font.size 16
--border.radius Радиус скругления углов freeze code.py --border.radius 8
--execute Запуск команды и захват вывода freeze --execute eza -lah
--lines Диапазон строк для захвата freeze code.rs --lines 2,3

Работа с TUI и конфигурацией

Особенность Freeze — возможность захвата скриншотов из терминальных интерфейсов (TUI). Для этого используется связка с tmux: команда tmux capture-pane -pet 1 передает снимок панели в stdin Freeze. Это позволяет делать красивые скриншоты сложных интерактивных приложений.

Все настройки можно сохранить в JSON-файл конфигурации (по умолчанию ~/.config/freeze/user.json), который создается автоматически при использовании интерактивного режима freeze --interactive. Также доступны встроенные профили base (простой скриншот) и full (стиль macOS).

Установка и доступность

Инструмент распространяется под лицензией MIT. Доступен для Linux, macOS и Windows. Установить можно через популярные менеджеры пакетов:

  • Homebrew: brew install charmbracelet/tap/freeze
  • Nix: nix-env -iA nixpkgs.charm-freeze
  • Go: go install github.com/charmbracelet/freeze@latest

Бинарные файлы также доступны для скачивания напрямую с GitHub Releases.

Источник: Github ↗