LyAhn a4d08e9998 fix(base64-rs): print usage instead of blocking on console stdin
Running base64 with no FILE fell into the stdin branch and sat in a read
loop. That is exactly what GNU does, but on Windows it presents as a dead
terminal: the console echoes keystrokes so it looks like a prompt, output
buffers into 32K chunks so nothing comes back as you type, and there is no
hint that it is waiting for Ctrl+Z.

Guard the implicit case only. With no FILE operand and stdin attached to a
console, print the help text to stderr and exit 1. Pipes and '<' redirects
are untouched, so pipelines and the parity harness see no change -- the
harness always hands the child a stdin pipe via input=. An explicit '-'
still reads the console for anyone who does want to type input by hand.

Uses std::io::IsTerminal, so the crate stays dependency-free.
2026-07-27 22:33:13 +01:00
2026-06-08 21:18:39 +00:00
2026-06-01 01:21:37 +01:00
2026-06-01 01:25:58 +01:00
2026-06-01 01:21:37 +01:00

JWTF Tools

A collection of utility tools for development and testing.

Tools

Base64 → File

A single-file web tool that decodes a base64 string and saves it back out as a real file. Handles data URIs, URL-safe base64, missing padding and line-wrapped input; detects the file type from magic bytes and previews images, audio, video, PDFs and text before you download. Runs entirely in the browser — no server, no dependencies, nothing uploaded.

xdg-open base64-decoder/base64-decoder.html

base64 for Windows

A real base64.exe for Windows, which otherwise has no base64 command — only certutil, which is file-only, adds PEM markers and can't be piped. Matches GNU coreutils flag for flag (-d, -i, -w, stdin/stdout, exit codes, error messages), verified against coreutils 9.7 with a 153-case differential test. Zero dependencies, single static binary, streams its input.

cargo build --release   # then put target\release\base64.exe on your PATH
base64 image.png > image.b64
base64 -d image.b64 > image.png

Fake Media

Generates large collections of placeholder PNG images for testing without downloading real files. Supports a terminal UI and a non-interactive CLI mode. Configurable image sizes, folder structure, file counts, and naming prefixes — uses only Python's standard library.

python3 fake-media/generate_fake_media.py

Fake Wheel

Emulates a Logitech G29 Racing Wheel as a virtual Linux input device via /dev/uinput. Useful for testing applications that consume gamepad/wheel input without needing physical hardware. Simulates steering, throttle, brake, and button events automatically.

sudo python3 fake-wheel/fake_wheel_uinput.py

Requires Linux with the uinput kernel module and either root access or a user in the input group.

RemoveBG Studio

AI background removal for images and video, with lossless FFmpeg frame extraction/reassembly. Ships as a native Windows app (C++ host embedding WebView2, driving a Python/rembg sidecar over JSON-stdio) with a live before/after preview, plus a scriptable CLI and a legacy Tkinter GUI fallback. See rembg/README.md for build/usage details.

VidBoard Setup

A Rust TUI installer that copies VidBoard AI model files into existing ComfyUI and Ollama installations on Windows. Automatically detects both applications via open ports, running process command lines, environment variables, and known install locations — pre-filling the paths so you only need to confirm and press Enter.

The installer expects a models/ directory next to the binary containing the ComfyUI and Ollama payload. It copies the following files:

  • ComfyUI (models/comfyui/) — Flux 2 Klein 4b fp8, Flux 2 Klein 9b fp8, Qwen 3 4b text encoder, Qwen 3 8b fp8 text encoder, Flux 2 VAE
  • Ollama (models/ollama/) — gemma3:12b, gemma4:e4b manifests and blobs

Files already present at the destination with a matching size are skipped. A live progress gauge shows per-file and overall transfer speed.

cargo build --release
# Place the binary alongside the models/ directory, then run:
./vidboard-setup.exe

Requires Windows (uses PowerShell for process/port detection).

S
Description
No description provided
Readme 488 KiB
Languages
Python 46.7%
Rust 16.6%
HTML 13.7%
C++ 8.5%
JavaScript 5.9%
Other 8.6%