https://github.com/charmbracelet/glow Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code + Explore + All features + Documentation + GitHub Skills + Blog * Solutions + For + Enterprise + Teams + Startups + Education + By Solution + CI/CD & Automation + DevOps + DevSecOps + Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles + Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} charmbracelet / glow Public * Notifications * Fork 229 * Star 10.7k Render markdown on the CLI, with pizzazz! License MIT license 10.7k stars 229 forks Star Notifications * Code * Issues 62 * Pull requests 19 * Discussions * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Discussions * Actions * Projects * Security * Insights charmbracelet/glow This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 7 branches 17 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/c] Use Git or checkout with SVN using the web URL. [gh repo clone charmb] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @caarlos0 caarlos0 docs: update license year ... 9f110c3 Dec 5, 2022 docs: update license year Signed-off-by: Carlos A Becker 9f110c3 Git stats * 679 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github chore: disable dependabot timer Nov 18, 2022 ui feat(ui): e to open edit local markdown files in editor Nov 23, 2022 utils chore: fmt & lint issues Nov 11, 2022 .gitignore feat(ci): use config files from meta repo (#389) Oct 26, 2022 .golangci.yml Update linter config Jul 12, 2021 .goreleaser.yml chore: fmt & lint issues Nov 11, 2022 Dockerfile feat(ci): use config files from meta repo (#389) Oct 26, 2022 LICENSE docs: update license year Dec 5, 2022 Makefile Simplify environment vars Oct 5, 2020 README.md docs: new readme footer (#396) Oct 25, 2022 config_cmd.go chore: fmt & lint issues Nov 11, 2022 console_windows.go Restore ANSI support to non-TUI Glow on Windows Oct 13, 2020 example.png Update example image with unicode characters Jan 13, 2020 github.go chore: fmt & lint issues Nov 11, 2022 gitlab.go chore: fmt & lint issues Nov 11, 2022 glow_test.go Fix tests (don't test glow with no arguments) Oct 5, 2020 go.mod feat: bump deps Nov 11, 2022 go.sum feat: bump deps Nov 11, 2022 main.go chore: fmt & lint issues Nov 11, 2022 stash_cmd.go chore: fmt & lint issues Nov 11, 2022 style.go chore: fmt & lint issues Nov 11, 2022 View code [ ] Glow What is it? Installation Package Manager Go Build (requires Go 1.13+) The TUI Stashing The CLI Stashing Word Wrapping Paging Styles The Config File Encryption: How It Works Feedback License README.md 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 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. 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 nix-env -iA nixpkgs.glow # FreeBSD pkg install glow # Solus eopkg install glow # Windows (with Scoop or Chocolatey) scoop install glow choco install 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] 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.13+) 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 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 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. Stashing 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 pressing s. Stashing is private, its contents will not be exposed publicly, and it's encrypted end-to-end. More on encryption below. 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 glow - # Fetch README from GitHub / GitLab glow github.com/charmbracelet/glow # Fetch markdown from HTTP glow https://host.tld/file.md Stashing 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 reference often. 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" # 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 Encryption: How It Works 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. Feedback We'd love to hear your thoughts on this project. Feel free to drop us a note! * Twitter * The Fediverse * Discord License MIT --------------------------------------------------------------------- Part of Charm. The Charm logo CharmRe Ai Kai Yuan * Charm loves open source About Render markdown on the CLI, with pizzazz! Topics markdown cli hacktoberfest excitement Resources Readme License MIT license Stars 10.7k stars Watchers 69 watching Forks 229 forks Releases 17 v1.4.1 Latest Apr 8, 2021 + 16 releases Packages 1 Used by 44 * @tbruyelle * @iot-defcon * @joshLong145 * @dalanmiller * @tbruyelle * @lokera666 * @hackartists * @alvillarica + 36 Contributors 25 * @meowgorithm * @muesli * @penguwin * @toby * @caarlos0 * @aymanbagabas * @dependabot[bot] * @lestrrat * @tisba * @jonaustin * @brunoarueira + 14 contributors Languages * Go 99.7% * Other 0.3% Footer (c) 2022 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.