PLAY ▶ SP ·PLAYER 1 READY ·C:\>VECTOR SCAN ·A NEW HERO · FULL-STACK · UI · GEN-AI
Josh Rufer — software developer and UI designer. I build on-device AI tools in Rust and Flutter, and the interfaces that make them feel like play.
LISTENING · ON-DEVICE INFERENCE
NOW SHOWING · CH 01 · v0.8.2
Speak to anything
on your machine.
Real-time voice dictation and programmable Output Commands you trigger by name, out loud. whisper.cpp, Moonshine and Parakeet TDT run natively on your own CPU or GPU; hotkeys arrive through the XDG GlobalShortcuts portal; a seven-step first-run wizard has it working before you ever open Settings. Native Rust and Tauri — Linux-first, Windows in beta.
INTERACTIVE · VOICE COMMAND ROUTER
Start dictation, say “VoxCtrl”, then a command's name, then what to send. Say nothing of the sort and dictation goes wherever your hotkey already points. Pick a line and press talk.
03 · TOKENISED BY THE ROUTER
CORE ARCHITECTURE
whisper.cpp for accuracy, Moonshine ONNX for noisy rooms, Parakeet TDT for speed — plus a 1.58-bit Redux model when memory is tight.
New in v0.8.0: Vulkan and CUDA acceleration across all three engines, with a built-in speed test to compare them.
Shortcuts register through the XDG GlobalShortcuts portal. The OS tells VoxCtrl only when its own key fires — it never sees your typing.
Twelve delivery types — inject, file, exec, pipe, socket, dbus, http, webhook, mcp, speak, chat, clipboard — and a router that picks between them.
Hear replies aloud with no cloud API: Breeze-TTS-2, Pocket-TTS voice cloning, Piper, Inflect Micro or eSpeak-NG.
Dictation and speech exposed as JSON-RPC tools to AI clients like Claude Desktop and Cursor over local Unix sockets.
Built on CPAL. Voice Activity Detection stops recording when you stop talking; optional RNNoise filters fans and keyboards.
A seven-step first run picks engine, hotkey and overlay. Updates download, verify against the published checksum, then restart.
PATCH NOTES
Finishes the 0.8.2 version bump across every manifest.
GPU acceleration for every engine, a speed test, accurate release notes.
Parakeet Redux: a 1.58-bit model with a smaller memory footprint.
Paste with full clipboard backup and restore; live transcript text for overlays.
$ chmod +x VoxCtrl-*.AppImage && ./VoxCtrl-*.AppImage
NOW SHOWING · CH 02 · OPEN SOURCE
Every image remembers
how it was made. Now build on it.
An image development front end for your ComfyUI and InvokeAI servers. Point it at an output folder and it reads the generation data in every file (ComfyUI, InvokeAI, A1111/Forge), makes it searchable by prompt, model, LoRA, seed or by what the picture shows, and sends any image back to your own server to remix, inpaint or upscale. Results land beside the original, ready to compare, rate and go again.
LIVE FROM THE STUDIO · CREATE ON YOUR OWN SERVERS
Any picture with generation data is a starting point. Change what you want, pick a server you run, and the result comes back beside the original, ready to compare and go again.
REMIX · KEY R
Open the picture's prompt in an editor, change what you like and queue it on ComfyUI, InvokeAI or Forge / A1111. Nothing is sent until you press Send.
SAVED AS name_remix1.png · INTO THE REMIXES COLLECTION
REC ● REMIX
PROMPT EDITOR · LORA MIXER
Select a few words and a slider appears under them. Drag it and they become (words:1.2), tinted warmer the heavier they get. Ctrl ↑ ↓ nudge it, like in ComfyUI.
TRY ITClick a phrase, then drag its weight. Toggle a LoRA or add a trigger word.
An interactive sketch of the editor with made-up LoRAs, not the app itself.
IMAGE TO IMAGE · INPAINTING
Send the picture itself as the starting point. A denoising slider runs from 0, keep it, to 1, redraw it almost from scratch. Paint a mask and only that part is redrawn.
TRY ITPaint over the picture to choose what gets redrawn.
An interactive sketch of the mask painter, not the app itself.
UPSCALE · SHIFT U
Real-ESRGAN runs on the device in the Rust core: no server, no upload, no prompt. Then, if you like, a hires-fix pass redraws it lightly at the larger size, so it gains real detail instead of just sharpness.
REC ● UPSCALE
A LOOK AROUND · CHANGE THE CHANNEL
CH 01 · The grid
INTERACTIVE · SEARCH SYNTAX
Search finds whole words in prompts — fox is not foxglove — and names that start with what you typed. Best matches first. Type, or try a query.
AND EVERYTHING AROUND IT · ORGANIZE
Prompt, negative, seed, model, LoRAs with weights, VAE, ControlNet, sampler settings, the full ComfyUI node graph and the raw JSON.
Describe what you want, “a fox in the snow”, and on-device TinyCLIP finds pictures that show it. Prompt check marks which phrases of the prompt the picture really shows.
After a few ratings it sorts likely keepers first and suggests rejects. A small model fitted on the device in about a second; nothing leaves it.
Stars, keep or reject, collections, and rule-based smart collections with live counts, all saved in a small file beside the pictures so they sync.
Every model, LoRA, sampler and prompt word with counts; a timeline of images; models and LoRAs ranked by the stars of their pictures.
Two to four results with zoom and pan in sync. Settings that differ are marked, and prompts are diffed word by word.
is:duplicate shows only pictures with an all-but-identical twin, grouped side by side, so the weaker ones are easy to tick and delete.
New pictures appear as they land; Follow selects each one as it arrives, ideal on a second screen while you generate.
PROGRAMME GUIDE
20:00Concept
art iterationSketches into polished
visuals.
21:00Custom
LoRA trainingConsistent characters and
styles.
22:00ComfyUI
workflowsCustom nodes and
automation.
23:001-on-1
trainingLive sessions on generative
tools.
RERUNS
Senior Full Stack Developer — Iroquois Systems
Defense simulation, OpenGL, 3D, video capture.
Senior Software Developer — RW Baird
.NET and Azure; Flutter mobile apps.
Senior Software Engineer — Noetec Inc.
C#, .NET and Angular web apps.
STACK: C# · .NET · REACT · NODE · PYTHON · TAILWIND · SQL · FLUTTER · RUST