Freeze Download

CLI tool to generate beautiful, customizable images of code snippets and terminal output for documentation and sharing.

⭐ 4,222 stars on GitHub
Latest Release: v0.2.2

About Software

Freeze is a command-line utility and terminal user interface (TUI) tool that generates high-quality images (PNG, SVG, WebP) of code and terminal output. It allows developers to create visually appealing screenshots for documentation, social media, and presentations, offering extensive customization options for fonts, themes, borders, and shadows.

The tool can auto-detect languages for syntax highlighting and supports capturing ANSI output from commands. It features an interactive mode for real-time adjustments and can be scripted for automated workflows, making it a versatile tool for showcasing code and CLI tools.

Use Cases:

  • Create beautiful images of code snippets for presentations
  • Capture terminal output as high-quality images
  • Customize screenshots with themes, fonts, and window styles
  • Automate screenshot generation in CI/CD pipelines
  • Interactive configuration for perfect visual output

Downloads

v0.2.2 April 01, 2025
freeze_0.2.2_aarch64.apkapk
freeze_0.2.2_amd64.debdeb
freeze_0.2.2_arm64.debdeb
freeze_0.2.2_armhf.debdeb
freeze_0.2.2_armv7.apkapk
freeze_0.2.2_i386.debdeb
freeze_0.2.2_x86.apkapk
freeze_0.2.2_x86_64.apkapk
v0.2.1 April 01, 2025
freeze_0.2.1_aarch64.apkapk
freeze_0.2.1_amd64.debdeb
freeze_0.2.1_arm64.debdeb
freeze_0.2.1_armhf.debdeb
freeze_0.2.1_armv7.apkapk
freeze_0.2.1_i386.debdeb
freeze_0.2.1_x86.apkapk
freeze_0.2.1_x86_64.apkapk
v0.2.0 March 24, 2025
freeze_0.2.0_aarch64.apkapk
freeze_0.2.0_amd64.debdeb
freeze_0.2.0_arm64.debdeb
freeze_0.2.0_armhf.debdeb
freeze_0.2.0_armv7.apkapk
freeze_0.2.0_i386.debdeb
freeze_0.2.0_x86.apkapk
freeze_0.2.0_x86_64.apkapk
v0.1.6 April 02, 2024
freeze_0.1.6_aarch64.apkapk
freeze_0.1.6_amd64.debdeb
freeze_0.1.6_arm64.debdeb
freeze_0.1.6_armhf.debdeb
freeze_0.1.6_armv7.apkapk
freeze_0.1.6_i386.debdeb
freeze_0.1.6_x86.apkapk
freeze_0.1.6_x86_64.apkapk
v0.1.4 March 26, 2024
freeze_0.1.4_aarch64.apkapk
freeze_0.1.4_amd64.debdeb
freeze_0.1.4_arm64.debdeb
freeze_0.1.4_armhf.debdeb
freeze_0.1.4_armv7.apkapk
freeze_0.1.4_i386.debdeb
freeze_0.1.4_x86.apkapk
freeze_0.1.4_x86_64.apkapk
v0.1.3 March 26, 2024
freeze_0.1.3_aarch64.apkapk
freeze_0.1.3_amd64.debdeb
freeze_0.1.3_arm64.debdeb
freeze_0.1.3_armhf.debdeb
freeze_0.1.3_armv7.apkapk
freeze_0.1.3_i386.debdeb
freeze_0.1.3_x86.apkapk
freeze_0.1.3_x86_64.apkapk

Package Info

Last Updated
Apr 01, 2025
Latest Version
v0.2.2
License
MIT
Total Versions
6

README

Freeze

Generate images of code and terminal output.

Examples

Freeze generates PNGs, SVGs, and WebPs of code and terminal output alike.

Generate an image of code

freeze artichoke.hs -o artichoke.png

Generate an image of terminal output

You can use freeze to capture ANSI output of a terminal command with the --execute flag.

freeze --execute "eza -lah"

Freeze is also super customizable and ships with an interactive TUI.

Installation

# macOS or Linux
brew install charmbracelet/tap/freeze

# Arch Linux (btw)
yay -S freeze

# Nix
nix-env -iA nixpkgs.charm-freeze

Or, download it:

  • Packages are available in Debian and RPM formats
  • Binaries are available for Linux, macOS, and Windows

Or, just install it with go:

go install github.com/charmbracelet/freeze@latest

Customization

Interactive mode

Freeze features a fully interactive mode for easy customization.

freeze --interactive

Settings are written to $XDG_CONFIG/freeze/user.json and can be accessed with freeze --config user.

Flags

Screenshots can be customized with --flags or Configuration files.

[!NOTE] You can view all freeze customization with freeze --help.

  • -b, --background: Apply a background fill.
  • -c, --config: Base configuration file or template.
  • -l, --language: Language to apply to code
  • -m, --margin: Apply margin to the window.
  • -o, --output: Output location for .svg, .png, .jpg.
  • -p, --padding: Apply padding to the code.
  • -r, --border.radius: Corner radius of window.
  • -t, --theme: Theme to use for syntax highlighting.
  • -w, --window: Display window controls.
  • -H, --height: Height of terminal window.
  • --border.width: Border width thickness.
  • --border.color: Border color.
  • --shadow.blur: Shadow Gaussian Blur.
  • --shadow.x: Shadow offset x coordinate.
  • --shadow.y: Shadow offset y coordinate.
  • --font.family: Font family to use for code.
  • --font.ligatures: Use ligatures in the font.
  • --font.size: Font size to use for code.
  • --font.file: File path to the font to use (embedded in the SVG).
  • --line-height: Line height relative to font size.
  • --show-line-numbers: Show line numbers.
  • --lines: Lines to capture (start,end).

Language

If possible, freeze auto-detects the language from the file name or analyzing the file contents. Override this inference with the --language flag.

cat artichoke.hs | freeze --language haskell

Theme

Change the color theme.

freeze artichoke.hs --theme dracula

Output

Change the output file location, defaults to out.svg or stdout if piped. This value supports .svg, .png, .webp.

freeze main.go --output out.svg
freeze main.go --output out.png
freeze main.go --output out.webp

# or all of the above
freeze main.go --output out.{svg,png,webp}

Font

Specify the font family, font size, and font line height of the output image. Defaults to JetBrains Mono, 14(px), 1.2(em).

freeze artichoke.hs \
  --font.family "SF Mono" \
  --font.size 16 \
  --line-height 1.4

You can also embed a font file (in TTF, WOFF, or WOFF2 format) using the --font.file flag.

To use ligatures in the font, you can apply the --font.ligatures flag.

See full README on repository.