Render markdown on the CLI, with pizzazz!
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 and stash markdown files to your own private collection, so you can read them anywhere. Glow will find local markdown files in subdirectories or a local Git repository.
By the way, all data stashed is encrypted end-to-end: only you can decrypt it. More on that below.
# 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-env -iA nixpkgs.glow
pkg install glow
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
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
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 install github.com/charmbracelet/glow@latest
git clone https://github.com/charmbracelet/glow.git
glow without arguments to start the textual user interface and
browse local and stashed markdown. Glow will find local markdown files in the
current directory and below or, if you’re in a Git repository, Glow will search
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
Glow works with the Charm Cloud to allow you to store any markdown files in
your own private collection. You can stash a local document from the Glow TUI by
Stashing is private, its contents will not be exposed publicly, and it's encrypted end-to-end. More on encryption below.
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
# Read from stdin
echo "[Glow](https://github.com/charmbracelet/glow)" | glow -
# Fetch README from GitHub / GitLab
# Fetch markdown from HTTP
You can also stash documents from the CLI:
glow stash README.md
Then, when you run
glow without arguments will you can browse through your
stashed documents. This is a great way to keep track of things that you need to
-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
to detect your terminal's current background color and automatically picks
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:
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
Here's an example config:
# style name or JSON path (default "auto")
# show local files only; no network (TUI-mode only)
# mouse support (TUI-mode only)
# use pager to display markdown
# word-wrap at width
Encryption works by issuing symmetric keys (basically a generated password) and encrypting it with the local SSH public key generated by the open-source charm library. That encrypted key is then sent up to our server. We can’t read it since we don’t have your private key. When you want to decrypt something or view your stash, that key is downloaded from our server and decrypted locally using the SSH private key. When you link accounts, the symmetric key is encrypted for each new public key. This happens on your machine and not our server, so we never see any unencrypted data.
We’d love to hear your thoughts on this project. Feel free to drop us a note!
Part of Charm.
Charm热爱开源 • Charm loves open source