Skip to content

TUT 2.0.0 - Terminal Browser with Modern Features

Choose a tag to compare

@m1ngsama m1ngsama released this 27 Dec 08:32
· 186 commits to main since this release

TUT 2.0.0 - Terminal User Interface Browser

A vim-style terminal web browser with True Color support and modern features.

Features

Core

  • 🎨 True Color (24-bit) support with warm newspaper theme
  • πŸ“ Unicode/CJK text support with proper width calculation
  • ⚑ Differential rendering for smooth scrolling
  • πŸ”„ Async HTTP requests with non-blocking loading
  • πŸ“‘ Page caching (LRU, 20 pages, 5-min expiry)

Navigation

  • Vim-style keybindings (j/k, gg/G, Ctrl-d/u)
  • Tab navigation between links
  • History back/forward (h/l)
  • Search with highlighting (/, n/N)

Bookmarks

  • Add bookmark (B)
  • Remove bookmark (D)
  • View bookmarks (:bookmarks)
  • Persistent storage (~/.config/tut/bookmarks.json)

Forms & Images

  • Form rendering (input, button, checkbox, radio, select)
  • POST form submission
  • Image ASCII art rendering with True Color
  • Image placeholder display

Async Loading

  • Non-blocking page loading
  • Loading spinner animation
  • Press Esc to cancel loading

Installation

From Source

# Clone repository
git clone https://github.com/m1ngsama/TUT.git
cd TUT

# Install dependencies
# macOS: brew install cmake ncurses curl gumbo-parser
# Linux: apt install cmake libncursesw5-dev libcurl4-openssl-dev libgumbo-dev

# Optional: Enable image support
curl -L https://raw.githubusercontent.com/nothings/stb/master/stb_image.h -o src/utils/stb_image.h

# Build
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

# Run
./build/tut2
./build/tut2 https://example.com

Keyboard Shortcuts

Key Action
j/k Scroll down/up
gg/G Go to top/bottom
Ctrl-d/u Page down/up
Tab Next link
Enter Follow link
h/l Back/Forward
/ Search
n/N Next/Previous match
r Refresh
B Add bookmark
D Remove bookmark
:o URL Open URL
:bookmarks View bookmarks
:q Quit
Esc Cancel loading
? Help

Requirements

  • C++17 compiler
  • ncurses
  • libcurl
  • gumbo-parser
  • stb_image.h (optional, for image support)