# wr > wr is a reader and browser for the terminal: it fetches a page, extracts the article and renders it as formatted Markdown with per-language code highlighting, links, history, bookmarks and search. One static binary, MIT, Linux and macOS. wr is a Go program (built on Bubble Tea) that turns any web page into clean, typeset text. It drops menus, banners and popups; renders headings, lists, tables and code; opens the links it finds; keeps history and bookmarks; and lets the reader change every setting and key binding from inside the program. It wears the terminal's own 16-color palette, so it follows the user's theme with zero configuration. Pages that only exist once their JavaScript runs are rendered through an installed headless Chromium. Install: `curl -fsSL https://raw.githubusercontent.com/sazardev/wr/main/install.sh | sh` — or `go install github.com/sazardev/wr@latest`. Releases and checksums: https://github.com/sazardev/wr/releases ## Guide Read and browse the web from your terminal: every screen, every key, with examples. - [Start](https://sazardev.github.io/wr/docs/guide/start/): Install: - [The screen](https://sazardev.github.io/wr/docs/guide/the-screen/): The page is the article extracted from the website: menus, footers, ads - [Reading a page](https://sazardev.github.io/wr/docs/guide/reading-a-page/): Scrolling is smooth: it glides to where you are going instead of jumping. How - [Following links](https://sazardev.github.io/wr/docs/guide/following-links/): Three ways, use whichever you like: - [Going back and forward](https://sazardev.github.io/wr/docs/guide/going-back-and-forward/): wr remembers the pages of your session like a browser does. - [The address bar and searching the web](https://sazardev.github.io/wr/docs/guide/the-address-bar-and-searching-the-web/): Press o, type, press Enter. The first row always shows what wr will do - [History, bookmarks and the start page](https://sazardev.github.io/wr/docs/guide/history-bookmarks-and-the-start-page/): History (v) lists the pages you visited, newest first, one line each with - [Searching inside a page](https://sazardev.github.io/wr/docs/guide/searching-inside-a-page/): Press / and start typing. The page highlights matches as you type and - [Selecting and copying](https://sazardev.github.io/wr/docs/guide/selecting-and-copying/): With the mouse: - [Make it yours](https://sazardev.github.io/wr/docs/guide/make-it-yours/): Press , (or open the menu with m and choose Settings). You get a list of - [Rebinding keys](https://sazardev.github.io/wr/docs/guide/rebinding-keys/): Open the menu (m) and choose Keyboard shortcuts (also Settings → Other → - [Local files, Markdown and other content](https://sazardev.github.io/wr/docs/guide/local-files-markdown-and-other-content/): wr shows more than web pages: - [Pages drawn by JavaScript](https://sazardev.github.io/wr/docs/guide/pages-drawn-by-javascript/): Some sites send an almost empty page and draw everything with JavaScript — the - [Using it with other tools](https://sazardev.github.io/wr/docs/guide/using-it-with-other-tools/): Print instead of browse: wr URL | less -R prints the formatted page and - [Real use cases](https://sazardev.github.io/wr/docs/guide/real-use-cases/): Ten situations you actually meet, with the exact keys. Nothing here needs a - [Updating wr](https://sazardev.github.io/wr/docs/guide/updating-wr/): The version you are running is in the title of the menu (m), on the start page - [Keyboard quick reference](https://sazardev.github.io/wr/docs/guide/keyboard-quick-reference/): The default bindings, as shown by the menu → Keyboard shortcuts. Every one of - [Configuration reference](https://sazardev.github.io/wr/docs/guide/configuration-reference/): Every key of ~/.config/wr/config.toml, with its default. Anything missing uses - [Environment variables](https://sazardev.github.io/wr/docs/guide/environment-variables/): Read and browse the web from your terminal: every screen, every key, with examples. - [Troubleshooting](https://sazardev.github.io/wr/docs/guide/troubleshooting/): Strange boxes instead of the little dots. Your font has no braille glyphs. - [Where wr keeps things](https://sazardev.github.io/wr/docs/guide/where-wr-keeps-things/): (The config and state locations follow XDG_CONFIG_HOME and XDG_STATE_HOME ## Design The design language of this site: a monochrome blueprint — tokens, themes, type, layout, motion and keys. - [Rules](https://sazardev.github.io/wr/docs/design/rules/): Monochrome. Each palette is one hue: a ramp of it for the background, the - [Tokens: the ten colors](https://sazardev.github.io/wr/docs/design/tokens-the-ten-colors/): Code is highlighted by Shiki in its css-variables mode: the highlighter names the - [Themes](https://sazardev.github.io/wr/docs/design/themes/): A theme is one block in web/src/styles/tokens.css (html[data-theme="…"]), one - [Type](https://sazardev.github.io/wr/docs/design/type/): The design language of this site: a monochrome blueprint — tokens, themes, type, layout, motion and keys. - [Layout](https://sazardev.github.io/wr/docs/design/layout/): .frame — the page: 1240px wide, centered, between two 1px rails, over - [Components](https://sazardev.github.io/wr/docs/design/components/): .head — the header: the wr mark with a block cursor, the version, the - [Motion](https://sazardev.github.io/wr/docs/design/motion/): Every transition animates opacity, transform or a color; nothing animates - [Keyboard](https://sazardev.github.io/wr/docs/design/keyboard/): On the search page ↑ ↓ choose a result and Enter opens it. None of the keys - [The recordings](https://sazardev.github.io/wr/docs/design/the-recordings/): media/ holds the sources that produce the frames used above: ## Changelog Every release, written by release-please from the repository history. - [Release 0.9.0](https://sazardev.github.io/wr/docs/changelog/v0.9.0/): 2026-10-12 - [Release 0.8.0](https://sazardev.github.io/wr/docs/changelog/v0.8.0/): 2026-10-12 - [Release 0.7.0](https://sazardev.github.io/wr/docs/changelog/v0.7.0/): 2026-10-12 - [Release 0.6.0](https://sazardev.github.io/wr/docs/changelog/v0.6.0/): 2026-10-12 - [Release 0.5.1](https://sazardev.github.io/wr/docs/changelog/v0.5.1/): 2026-10-12 - [Release 0.5.0](https://sazardev.github.io/wr/docs/changelog/v0.5.0/): 2026-10-11 - [Release 0.4.0](https://sazardev.github.io/wr/docs/changelog/v0.4.0/): 2026-10-10 - [Release 0.3.0](https://sazardev.github.io/wr/docs/changelog/v0.3.0/): 2026-10-09 - [Release 0.2.1](https://sazardev.github.io/wr/docs/changelog/v0.2.1/): 2026-10-09 - [Release 0.2.0](https://sazardev.github.io/wr/docs/changelog/v0.2.0/): 2026-10-09 - [Release 0.1.0](https://sazardev.github.io/wr/docs/changelog/v0.1.0/): Every release, written by release-please from the repository history. ## Reference - [All shortcuts](https://sazardev.github.io/wr/docs/reference/shortcuts/): every default key binding, generated from the source - [All settings](https://sazardev.github.io/wr/docs/reference/settings/): every option, with its default and its help text - [Search](https://sazardev.github.io/wr/docs/search/): full-text search over every page of the documentation ## Optional - [Changelog](https://sazardev.github.io/wr/docs/changelog/): every release, written from the repository history - [Source on GitHub](https://github.com/sazardev/wr): code, issues, releases — MIT licensed - [Full documentation in one file](https://sazardev.github.io/wr/llms-full.txt): README, guide, design language and changelog concatenated