A powerful standalone Markdown renderer for the terminal with advanced search, hyperlink support, and extensive customization options.
- π Beautiful Markdown rendering in your terminal
- π Advanced Search - Full-text search with smart highlighting and match navigation
- Current match highlighted in bright orange
- All matches highlighted in yellow
- Match counter in status bar
- Navigate with
n/N(next/previous)
- π Clickable hyperlinks - Links are underlined and clickable in supported terminals
- β¨οΈ Fully customizable keybindings - Vim-like defaults with custom keyboard layout support
- β Interactive Help - Press
?for instant keybinding reference popup - π¨ Advanced theming system
- 4 built-in themes (One Dark, Dracula, Solarized Dark, Catppuccin Latte)
- Full color customization for all elements
- ANSI 256 color support
- π±οΈ Mouse support - Click and scroll support in compatible terminals
- π Rich table rendering with proper borders and alignment
- π» Syntax highlighting for code blocks
- β‘ Vim Bindings - Native support for Vim bindings using Qwerty and Colemak-DH layouts
- βοΈ Native NixOS support with flakes and development shell
Download a pre-compiled binary for your platform.
# Run directly
nix run github:guttermonk/bleamd -- README.md
# Install to profile
nix profile install github:guttermonk/bleamd
# Build locally
git clone https://github.com/guttermonk/bleamd
cd bleamd
nix build
./result/bin/bleamd README.mdgit clone https://github.com/guttermonk/bleamd
cd bleamd
go build
./bleamd README.mdbleamd README.md # Render a markdown file
bleamd < file.md # Read from stdin
curl example.com/file.md | bleamd # Pipe from network
bleamd --init-config # Create default config file
bleamd --config-path # Show config file locationPress ? at any time to display an interactive help popup with all available keybindings. All keybindings are fully configurable via the config file.
| Key | Action |
|---|---|
β k i |
Scroll up |
β j e |
Scroll down |
β h |
Scroll left |
β l o |
Scroll right |
PgUp |
Page up |
PgDn Space |
Page down |
g |
Go to top |
G |
Go to bottom |
? |
Show interactive help |
q Ctrl+C |
Quit |
| Key | Action |
|---|---|
Ctrl+F / |
Start search |
Enter |
Execute search |
n |
Next match |
N |
Previous match |
ESC |
Clear search/Cancel |
Search highlights:
- π Current match: Bright orange background
- π‘ Other matches: Yellow text
- π Status bar: Shows "Match X of Y" with search term
Links in your markdown are automatically converted to clickable hyperlinks in compatible terminals:
- Underlined and styled according to your theme
- Click to open in your default browser
- Works with http/https URLs and mailto links
Create and customize your configuration:
bleamd --init-config # Create default config with One Dark theme
bleamd --config-path # Show config file locationChoose from professionally designed themes:
# One Dark (default)
cp themes/one-dark.json ~/.config/bleamd/config.json
# Dracula
cp themes/dracula.json ~/.config/bleamd/config.json
# Solarized Dark
cp themes/solarized-dark.json ~/.config/bleamd/config.json
# Catppuccin Latte (light theme)
cp themes/catppuccin-latte.json ~/.config/bleamd/config.jsonConfigure your preferred keybindings in ~/.config/bleamd/config.json. Each action supports multiple key combinations:
{
"keybindings": {
"scroll_up": ["k", "i", "Up", "C-p"],
"scroll_down": ["j", "e", "Down", "C-n"],
"scroll_left": ["h", "Left"],
"scroll_right": ["l", "o", "Right"],
"page_up": ["PageUp"],
"page_down": ["PageDown", "Space"],
"go_to_top": ["g"],
"go_to_bottom": ["G"],
"start_search": ["/", "C-f"],
"next_match": ["n"],
"prev_match": ["N"],
"clear_search": ["Escape"],
"quit": ["q", "C-c"],
"show_help": ["?"]
}
}Supported key formats:
- Single characters:
"k","j","h","l" - Arrow keys:
"Up","Down","Left","Right" - Special keys:
"PageUp","PageDown","Space","Enter","Escape" - Control combinations:
"C-f","C-c","C-n","C-p"
Customize every visual element in your config file:
{
"colors": {
"heading1": "#61afef",
"heading2": "#c678dd",
"bold": "#abb2bf",
"italic": "#98c379",
"code": "#e5c07b",
"link": "#56b6c2",
"search_current": "#d19a66",
"search_match": "#e5c07b",
"search_box_border": "#ff5fff",
"help_box_border": "#5f87d7",
"hovered_link_url": "#00ffff",
"hyperlink_underline": "#56b6c2",
"hyperlink_hovered_underline": "#e5c07b"
}
}Customizable elements:
- Headings:
heading1throughheading6 - Text:
bold,italic,strikethrough - Code:
code,code_block,code_block_bg - Links:
link,link_url - Lists:
list_marker,task_checked,task_unchecked - Layout:
blockquote,table_header,table_row,table_border - Search:
search_current,search_match - UI:
status_bar_text,status_bar_bg,search_box_border,help_box_border,hovered_link
All colors use hex format (e.g., #ff0000) and are automatically converted to the nearest ANSI 256 color for terminal display.
nix develop # Or use direnv with the included .envrc
go build
go test ./...go mod download
make buildThe development environment includes Go, gopls, golangci-lint, and other useful tools.
PRs welcome! When contributing:
- Use the Nix development shell for consistent tooling
- Run tests with
go test ./... - Update vendor hash in
flake.nixif dependencies change - Test with different themes and keybinding configurations
MIT
| Feature | bleamd | Glow | mdr | md-tui | mdv | Grip | Pandoc |
|---|---|---|---|---|---|---|---|
| Interactive TUI | β | β | β | β | β | β | β |
| Full-text search | β | β | β | β | β | β | β |
| Clickable hyperlinks | β | β | β | β | β | β | β |
| Custom keybindings | β | β | β | β | β | β | β |
| Multiple themes | β | β | β | β | β | β | β |
| Mouse support | β | β | β | β | β | β | β |
| File management | β | β | β | β | β | β | β |
| Cloud sync | β | β | β | β | β | β | β |
| Live reload | β | β | β | β | β | β | β |
| Format conversion | β | β | β | β | β | β | β |
| Terminal-native | β | β | β | β | β | β | β |
| Offline support | β | β | β | β | β | β | β |
| Language | Go | Go | Go | Rust | Python | Python | Haskell |
bleamd's niche: Fast, interactive terminal viewer with powerful search, full customization, and clickable links for terminal-centric workflows.
This tool is a fork of mdr with extensive enhancements including:
- Advanced search functionality with highlighting
- Hyperlink support (OSC 8)
- Interactive help system
- Configurable keybindings
- Rich theming system
- Mouse support
- Custom keyboard layout support
Perfect for developers, writers, and anyone who works with Markdown files in the terminal.

