No description
  • TypeScript 77%
  • Rust 12.7%
  • CSS 6.2%
  • Shell 3.6%
  • HTML 0.5%
Find a file
beasty 2e68c971d5 chore: trim AGENTS.md to actionable instructions only
Remove operationally impactful guidance only and drop internal project history/implementation notes from AGENTS.md.
2026-02-26 17:53:53 +01:00
.vscode feat: implement desktop manpage viewer 2026-02-21 13:32:28 +01:00
docs/media chore: remove intermediate demo capture assets 2026-02-22 19:39:22 +01:00
public feat: implement desktop manpage viewer 2026-02-21 13:32:28 +01:00
scripts feature/install app script (#2) 2026-02-22 22:39:13 +01:00
src fix: address code review findings 2026-02-22 18:50:08 +01:00
src-tauri fix: address code review findings 2026-02-22 18:50:08 +01:00
.gitignore feat: implement desktop manpage viewer 2026-02-21 13:32:28 +01:00
AGENTS.md chore: trim AGENTS.md to actionable instructions only 2026-02-26 17:53:53 +01:00
biome.json fix: address code review findings 2026-02-22 18:50:08 +01:00
components.json fix: address code review findings 2026-02-22 18:50:08 +01:00
index.html feat: implement desktop manpage viewer 2026-02-21 13:32:28 +01:00
lefthook.yml feat: implement desktop manpage viewer 2026-02-21 13:32:28 +01:00
package.json feature/install app script (#2) 2026-02-22 22:39:13 +01:00
playwright-desktop-fzf.png fix: address code review findings 2026-02-22 18:50:08 +01:00
pnpm-lock.yaml fix: address code review findings 2026-02-22 18:50:08 +01:00
README.md feature/install app script (#2) 2026-02-22 22:39:13 +01:00
tsconfig.json fix: address code review findings 2026-02-22 18:50:08 +01:00
tsconfig.node.json fix: address code review findings 2026-02-22 18:50:08 +01:00
vite.config.ts fix: address code review findings 2026-02-22 18:50:08 +01:00
vitest.config.ts feat: implement desktop manpage viewer 2026-02-21 13:32:28 +01:00

Better Man Viewer

A desktop-first man page reader for Linux, built with Tauri + React + TypeScript. It keeps the speed of man while making long docs easier to navigate with sections, search modes, and cleaner reading ergonomics.

Demo (Real fzf Session)

Better Man Viewer demo

MP4 demo (higher quality)

Better Man Viewer overview

Highlights

  • Loads real system man pages through the Rust backend (man + col -bx).
  • Section tree with collapsible hierarchy for pages like fzf(1) (OPTIONS -> SEARCH, etc.).
  • Two search workflows:
    • Find: inline highlighting with Enter / Shift+Enter navigation.
    • Filter: narrow to matching lines, click to jump, return to full context.
  • Adjustable zoom (Ctrl/Cmd +, Ctrl/Cmd -, Ctrl/Cmd 0).
  • Wrapped line rendering tuned for terminal-like indentation and option descriptions.
  • Persistent settings (theme, zoom, last search mode, window size).

Quick Start

Prerequisites

  • Node.js ^20.19.0 or >=22.12.0
  • pnpm
  • Rust toolchain (for Tauri desktop runtime)
  • Linux environment with man and col

Install

pnpm install

Run (Web Preview)

pnpm dev

Open http://localhost:1420.

Run (Desktop App)

pnpm tauri dev

Build + Install Binary (Local User)

pnpm install-app

This runs lint/typecheck/tests, builds a release binary, and installs it to ~/.local/bin/better-man-viewer.

Optional overrides:

  • INSTALL_DIR=/custom/bin pnpm install-app
  • INSTALL_NAME=my-man-viewer pnpm install-app
  • CARGO_TARGET_DIR=/tmp/tauri-target pnpm install-app

Developer Commands

pnpm lint       # Biome checks for src/
pnpm typecheck  # TypeScript validation
pnpm test       # Vitest unit tests
pnpm verify     # lint + typecheck + tests
pnpm build      # Production web build

Hooks & Safety

This repo uses lefthook with gitleaks and lint checks.

lefthook install

Optional Shell Alias

If you want to launch this app from man, add:

man() {
  command better-man-viewer "$@" || command man "$@"
}

Bypass anytime with:

command man ls