Go to file
Carlos Alexandro Becker 0dcf1271dd
feat: suspend
closes #333
2024-07-11 18:07:35 -03:00
.github ci: improve coverage workflow 2024-07-10 10:37:00 -03:00
ui feat: suspend 2024-07-11 18:07:35 -03:00
utils feat!: cleanup and updated (#619) 2024-07-03 12:11:29 -03:00
.gitignore feat(ci): use config files from meta repo (#389) 2022-10-26 16:05:52 -03:00
.golangci.yml feat!: cleanup and updated (#619) 2024-07-03 12:11:29 -03:00
.goreleaser.yml ci: fix goreleaser config 2024-07-09 10:48:54 -03:00
config_cmd.go ci: run govulncheck, semgrep, etc (#627) 2024-07-09 16:13:05 -03:00
console_windows.go Restore ANSI support to non-TUI Glow on Windows 2020-10-12 23:57:08 -04:00
Dockerfile feat(ci): use config files from meta repo (#389) 2022-10-26 16:05:52 -03:00
example.png Update example image with unicode characters 2020-01-13 12:21:08 -05:00
github.go feat: improve gitlab/github readme url (#456) 2024-07-09 16:07:39 -03:00
gitlab.go feat: improve gitlab/github readme url (#456) 2024-07-09 16:07:39 -03:00
glow_test.go fix: check other possible readme paths/branches (#450) 2024-07-03 13:09:20 -03:00
go.mod feat: suspend 2024-07-11 18:07:35 -03:00
go.sum feat: suspend 2024-07-11 18:07:35 -03:00
LICENSE docs: update license 2023-05-11 12:38:59 +00:00
log.go fix: yet another log handling fix 2024-07-10 12:02:50 -03:00
main.go feat: allow --width=0 to disable wordwrap (#366) 2024-07-11 12:16:12 -03:00
Makefile feat!: cleanup and updated (#619) 2024-07-03 12:11:29 -03:00
man_cmd.go feat: man pages 2024-07-03 13:59:11 -03:00
README.md docs: update install 2024-07-09 16:38:10 -03:00
style.go feat!: cleanup and updated (#619) 2024-07-03 12:11:29 -03:00
url.go feat: improve gitlab/github readme url (#456) 2024-07-09 16:07:39 -03:00
url_test.go test: skip flukish test 2024-07-11 12:20:59 -03:00


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.


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

# 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]
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.


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


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 youre 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.


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


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.


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"
# show local files only; no network (TUI-mode only)
local: true
# mouse support (TUI-mode only)
mouse: true
# use pager to display markdown
pager: true
# word-wrap at width
width: 80


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



Part of Charm.

The Charm logo

Charm热爱开源 • Charm loves open source