Skip to content

Releases: m1ngsama/TUT

TUT 0.0.5

Choose a tag to compare

@m1ngsama m1ngsama released this 11 Aug 07:19
v0.0.5
8fdb3f1

TUT 0.0.5 makes the reader easier to discover and faster to navigate while establishing a durable Unix-tool product contract.

Highlights:

  • add an in-application F1 help overlay that preserves reader and search-input state
  • show a static pending screen during initial rendering, reflow, and document-end jumps without publishing partial frames
  • provide responsive footer hints for 16-, 20-, 40-, and 80-column terminals
  • report exact TOP, END, and ALL viewport boundaries
  • support bounded numeric prefixes up to 9999 for row, page, half-page, and search-match movement
  • recall the committed search draft with Up, clear drafts with Ctrl-U, and keep the newest text visible while editing long queries
  • reuse validated cached row frontiers for adjacent viewport movement
  • add the README, tut(1) manual, project principles, contribution and security guidance, changelog, and automated documentation-contract tests
  • install, verify, distribute, and uninstall the tut(1) manual through the GNU-style Makefile lifecycle

TUT remains a focused local UTF-8 terminal reader rather than a complete less replacement. Known follow-up work remains tracked in #87 (heap-backed terminal-cell symbol accounting), #12 (deterministic bounded-results gates), and #80 (process-global event-reader generations across replaced terminals).

Artifact SHA-256: 60a79b7ea7b2189e124d0770c9c05fedb5d47839c9d26e80ebde4c3297b98482.

TUT 0.0.4

Choose a tag to compare

@m1ngsama m1ngsama released this 10 Aug 22:33
v0.0.4
9d27cab

TUT 0.0.4 hardens Unix terminal lifecycle handling and makes the remaining worst-case viewport work bounded and preemptible.

Highlights:

  • pause and resume projected-row scanning, viewport location, and frame rendering while preserving atomic publication
  • move visible search-highlight merging out of draw; each background merge phase performs at most 1,024 comparisons/output attempts
  • reuse render, highlight, MatchBlock, checkpoint, and row storage with source-sized reservation bounds
  • bound Unix terminal parser sequences to 64 KiB/2 seconds and retained events to 1,024 through the pinned crossterm fork
  • terminate cleanly on terminal EOF/HUP with exact diagnostics, session logging, and cursor/alternate-screen/raw-mode restoration
  • read commands from the controlling terminal without replacing fd 0, reject nested raw-mode sessions, and preserve inherited job-control signal behavior
  • bind log files to resolved input path slots to resist rename-over, symlink, case/Unicode alias, and hardlink races
  • retain Rust 1.88 as the MSRV and verify Linux/macOS, debug/release/overflow, PTY, package, install, and dist workflows

Known scope: process-global event-reader generation changes after replacing a tty in the same process remain tracked in issue #80; ordinary one-session CLI use is covered.

Artifact SHA-256: 631a157faeb4fe1eb121c5b6302def6df40807d3f6bc68293bb8e305a53f5634.

TUT 0.0.3

Choose a tag to compare

@m1ngsama m1ngsama released this 10 Aug 16:49
v0.0.3
a9ecb6b

TUT 0.0.3 advances the local terminal reader with bounded, incremental algorithms and stronger Unix behavior.

Highlights:

  • read bounded UTF-8 from files or standard input while commands stay attached to the controlling terminal
  • compose EPUB conversion through pipelines such as pandoc book.epub -t plain | tut -
  • restore terminal state across quit, signals, and SIGTSTP/SIGCONT job control
  • add private typed session logs with fixed-size runtime summaries and zero default overhead
  • bound terminal geometry, visible render storage, checkpoints, caches, and background work
  • reuse adaptive line, visual-row, match-block, grapheme, and render metadata efficiently
  • report raw-mode Ctrl-C as SIGINT with exit status 130
  • preserve Rust 1.88 as the MSRV and verify debug, release, overflow, PTY, install, and dist workflows on Linux and macOS

Artifact SHA-256: 9bb0392fde23853ed34e175c55921b018dce86c125a297d22c50b9cff7f5fb89.

TUT 0.0.2

Choose a tag to compare

@m1ngsama m1ngsama released this 10 Aug 09:32
befac49

TUT 0.0.2 is the first release of the rebuilt local plain-text terminal reader.

Highlights:

  • bounded positional file I/O with change detection and incremental line indexing
  • cooperative viewport location, search indexing, and fair background scheduling
  • compact cached match navigation and recent visual-row navigation
  • single-pass Unicode grapheme layout with bounded pathological input and terminal-control sanitization
  • borrowed render rows across redraws, avoiding full viewport cloning
  • complete terminal restoration for quit, termination signals, and SIGTSTP/SIGCONT job control
  • GNU-style command-line behavior and source-package install/uninstall checks

Validation:

  • 151 library tests and 11 CLI/real-PTY tests on current Rust
  • the same suite on Rust 1.88 MSRV and in release mode
  • strict Clippy, dependency audit, Linux/macOS CI, and make distcheck

Source package SHA-256: 44e1b1eecbbe7358c21ab185e586f12a3e62fe751c5c025524383d7fe4ec7c7a

Implementation work: #18, #19, #20, #21, #22, #23.

Release v2025.12.28-70f20a3

Choose a tag to compare

Automated release for commit 70f20a3

Download

  • macOS: tut-macos
  • Linux: tut-linux

Build from source

See the README for build instructions.

Release v2025.12.28-45b3407

Choose a tag to compare

Automated release for commit 45b3407

Download

  • macOS: tut-macos
  • Linux: tut-linux

Build from source

See the README for build instructions.

Release v2025.12.27-e5276e0

Choose a tag to compare

Automated release for commit e5276e0

Download

  • macOS: tut-macos
  • Linux: tut-linux

Build from source

See the README for build instructions.

Release v2025.12.27-a469f79

Choose a tag to compare

Automated release for commit a469f79

Download

  • macOS: tut-macos
  • Linux: tut-linux

Build from source

See the README for build instructions.

Release v2025.12.27-584660a

Choose a tag to compare

Automated release for commit 584660a

Download

  • macOS: tut-macos
  • Linux: tut-linux

Build from source

See the README for build instructions.

TUT 2.0.0 - Terminal Browser with Modern Features

Choose a tag to compare

@m1ngsama m1ngsama released this 27 Dec 08:32

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)