terminal workstation · prototype
tnwr
A text workstation where the renderer does not need to know what a tokeniser or sampler is. Small independent nodes provide panes, and the window makes their structure visible.
Early windowed GPU prototype · source published · Linux development
Make the boundary visible
Most text interfaces hide the machinery that shaped the text. tnwr puts that machinery next to the words. A node exposes a small 9P namespace; the renderer asks for a view, reads the body and span ranges, then draws two versions so the exact change stays legible.
Forking a node gives each side its own state. Change a tokenizer or a sampling setting and inspect the consequences in context. The renderer stays unaware of which backend produced the pane.
What is here now
The repository contains a Rust windowed renderer, a 9P client, and Python token, graph and sampler nodes. The simple tokenizer is deliberately lightweight: it demonstrates boundaries but uses hash-derived IDs, not a learned vocabulary. Real IDs require the GGUF or Hugging Face backend. The sampler can expose candidate-token changes for a local GGUF model through llama.cpp.
This is not a finished desktop environment or an operating system. The project currently uses winit and wgpu in a normal window. A DRM/KMS console backend is future work.
Try the prototype
Install Rust and Python 3, start nodes/tok_node.py, then run cargo run -- 127.0.0.1:5640. The repository README describes optional tokenizer and sampler dependencies. No model weights are included.
The useful question is whether seeing boundaries and divergence side by side helps you predict what a change will do, before the interface explains it.