Repository navigation
vtamp v0.4.3
Video playback in local Ghostty + tmux avoids bulk terminal uploads and stays
responsive through repeated pane swaps. Video preparation no longer flashes a
thumbnail while the next frame is loading.
Changed
- Local tmux Kitty video uses temporary-file transmission by default, preserving
resolution while sending only short path and placement commands through the
terminal. The worker bounds and cleans up pending files, including transfers
discarded while a pane is hidden. Repeated debug and release swap tests no
longer reproduced the sustained 1 fps slowdown in the tested environment. - Automatic graphics selection inside tmux prefers Kitty, then native Sixel,
then halfblocks. Clients started in parked windows retry detection when the
window and pane become active, without requiring a new attachment. - Pending or resized video leaves its picture area blank, including fullscreen,
instead of briefly uploading cover art or displaying loading text. Missing,
failed, or ended video and explicit cover mode still show the cover.
Fixed
- Video and spectrum no longer depend on an outer synchronized-update hold being
released by a later tmux redraw. Graphics uploads precede text and caret drawing;
tmux owns synchronization for its Kitty attachments. - Batched Kitty commands and separated graphics uploads reduce cursor flicker
and repeated outer-cursor resets during playback. - Retired temporary files left by hidden-pane swaps no longer exhaust the file
queue and stop subsequent video frames.
Added
- Optional
VTAMP_TUI_TRACEtiming logs for UI wakes, graphics writes, and video
delivery. Logging runs on a separate thread and excludes key contents and
media metadata.
Upgrade notes
- Protocol remains 11 and database version remains 7. Upgrading from
v0.4.2 requires no migration or playback-server restart for these TUI changes;
upgrade the binary and reattach the TUI. Existing audio can keep playing. - SSH environments retain direct video transmission. Use
VTAMP_KITTY_VIDEO_FILE=0to force direct transfer, or1when the terminal
and TUI share a filesystem. The validated default is local Ghostty + tmux;
direct cover display can still briefly stall on a large upload. - Prebuilt downloads cover Apple Silicon macOS and ARM64 Linux tested on
Ubuntu 24.04 (glibc 2.39+). Linux remains a headless server without terminal
video, device playback, relay, media keys, or radio.
Install
Apple Silicon macOS:
brew install rath/tap/vtampExisting v0.4.2 users can run brew update && brew upgrade vtamp and reattach
without restarting playback. For older versions, follow the protocol upgrade
notes in the changelog.
ARM64 Linux (Ubuntu 24.04 or newer, glibc 2.39+):
curl -LO https://github.com/rath/vtamp/releases/download/v0.4.3/vtamp-aarch64-unknown-linux-gnu.tar.gz
curl -LO https://github.com/rath/vtamp/releases/download/v0.4.3/SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
tar -xzf vtamp-aarch64-unknown-linux-gnu.tar.gz
install -D -m 755 vtamp-aarch64-unknown-linux-gnu/vtamp ~/.local/bin/vtampOr build from source with Rust 1.90+, a C compiler, and cmake:
git clone --branch v0.4.3 https://github.com/rath/vtamp.git
cd vtamp
cargo install --locked --path .Assets
| File | Contents |
|---|---|
vtamp-aarch64-apple-darwin.tar.gz |
Ad-hoc signed Apple Silicon macOS binary, license, documentation, and Pastel themes |
vtamp-aarch64-unknown-linux-gnu.tar.gz |
ARM64 Linux headless binary, license, documentation, and Pastel themes |
SHA256SUMS |
SHA-256 checksums of both archives |
Homebrew verifies its download automatically. On macOS, verify archives with
shasum -a 256 -c --ignore-missing SHA256SUMS.
Full changelog: v0.4.2...v0.4.3