charmbracelet

    charmbracelet/glow

    Render markdown on the CLI, with pizzazz! 💅🏻

    cli
    documentation
    excitement
    hacktoberfest
    markdown
    Go
    MIT
    23.1K stars
    585 forks
    23.1K watching
    Updated 2/27/2026
    View on GitHub
    Backblaze Advertisement

    Loading star history...

    Health Score

    75

    Weekly Growth

    +131

    +0.6% this week

    Contributors

    1

    Total contributors

    Open Issues

    163

    Generated Insights

    About glow

    Glow

    Render markdown on the CLI, with pizzazz!

    Glow Logo Latest Release GoDoc Build Status Go ReportCard

    Glow UI Demo

    What is it?

    Glow is a terminal based markdown reader designed from the ground up to bring out the beauty—and power—of the CLI.

    Use it to discover markdown files, read documentation directly on the command line. Glow will find local markdown files in subdirectories or a local Git repository.

    Installation

    Package Manager

    # macOS or Linux
    brew install glow
    
    # macOS (with MacPorts)
    sudo port install glow
    
    # Arch Linux (btw)
    pacman -S glow
    
    # Void Linux
    xbps-install -S glow
    
    # Nix shell
    nix-shell -p glow --command glow
    
    # FreeBSD
    pkg install glow
    
    # Solus
    eopkg install glow
    
    # Windows (with Chocolatey, Scoop, or Winget)
    choco install glow
    scoop install glow
    winget install charmbracelet.glow
    
    # Android (with termux)
    pkg install glow
    
    # Ubuntu (Snapcraft)
    sudo snap install glow
    
    # Debian/Ubuntu
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
    echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
    sudo apt update && sudo apt install glow
    
    # Fedora/RHEL
    echo '[charm]
    name=Charm
    baseurl=https://repo.charm.sh/yum/
    enabled=1
    gpgcheck=1
    gpgkey=https://repo.charm.sh/yum/gpg.key' | sudo tee /etc/yum.repos.d/charm.repo
    sudo yum install glow
    

    Or download a binary from the releases page. MacOS, Linux, Windows, FreeBSD and OpenBSD binaries are available, as well as Debian, RPM, and Alpine packages. ARM builds are also available for macOS, Linux, FreeBSD and OpenBSD.

    Go

    Or just install it with go:

    go install github.com/charmbracelet/glow@latest
    

    Build (requires Go 1.21+)

    git clone https://github.com/charmbracelet/glow.git
    cd glow
    go build
    

    The TUI

    Simply run glow without arguments to start the textual user interface and browse local. Glow will find local markdown files in the current directory and below or, if you’re in a Git repository, Glow will search the repo.

    Markdown files can be read with Glow's high-performance pager. Most of the keystrokes you know from less are the same, but you can press ? to list the hotkeys.

    The CLI

    In addition to a TUI, Glow has a CLI for working with Markdown. To format a document use a markdown source as the primary argument:

    # Read from file
    glow README.md
    
    # Read from stdin
    echo "[Glow](https://github.com/charmbracelet/glow)" | glow -
    
    # Fetch README from GitHub / GitLab
    glow github.com/charmbracelet/glow
    
    # Fetch markdown from HTTP
    glow https://host.tld/file.md
    

    Word Wrapping

    The -w flag lets you set a maximum width at which the output will be wrapped:

    glow -w 60
    

    Paging

    CLI output can be displayed in your preferred pager with the -p flag. This defaults to the ANSI-aware less -r if $PAGER is not explicitly set.

    Styles

    You can choose a style with the -s flag. When no flag is provided glow tries to detect your terminal's current background color and automatically picks either the dark or the light style for you.

    glow -s [dark|light]
    

    Alternatively you can also supply a custom JSON stylesheet:

    glow -s mystyle.json
    

    For additional usage details see:

    glow --help
    

    Check out the Glamour Style Section to find more styles. Or make your own!

    The Config File

    If you find yourself supplying the same flags to glow all the time, it's probably a good idea to create a config file. Run glow config, which will open it in your favorite $EDITOR. Alternatively you can manually put a file named glow.yml in the default config path of you platform. If you're not sure where that is, please refer to glow --help.

    Here's an example config:

    # style name or JSON path (default "auto")
    style: "light"
    # mouse wheel support (TUI-mode only)
    mouse: true
    # use pager to display markdown
    pager: true
    # at which column should we word wrap?
    width: 80
    # show all files, including hidden and ignored.
    all: false
    # show line numbers (TUI-mode only)
    showLineNumbers: false
    # preserve newlines in the output
    preserveNewLines: false
    

    Contributing

    See contributing.

    Feedback

    We’d love to hear your thoughts on this project. Feel free to drop us a note!

    License

    MIT


    Part of Charm.

    The Charm logo

    Charm热爱开源 • Charm loves open source

    Discover Repositories

    Search across tracked repositories by name or description