Repository navigation
Releases: m1ngsama/TUT
Release list
TUT 0.0.5
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, andALLviewport 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
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
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
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
Release v2025.12.28-70f20a3
Release v2025.12.28-45b3407
Release v2025.12.27-e5276e0
Release v2025.12.27-a469f79
Release v2025.12.27-584660a
TUT 2.0.0 - Terminal Browser with Modern Features
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.comKeyboard 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)