Listen on anything
One endpoint that speaks to line protocols and binary devices alike, without a code change.
TCP & UDP
Run either or both on any bind address and port, on an async Tokio core with every client on its own task.
Four wire framings
Newline, CRLF, 16-bit length-prefix, and raw — switch framing without touching code.
Guarded at the door
Configurable max frame size and a connection cap of up to 100,000, enforced on accept.
See every byte
The thing no ncat or telnet gives you: the whole exchange, live, on one screen.
Live client roster
Every socket with address, protocol, uptime, per-client RX/TX message and byte counters, and a last-activity clock — all real-time.
Text & hex stream
Flip between a readable view and the exact bytes on the wire. Binary payloads are auto-detected and tagged.
Filter it
Narrow the stream by direction — RX / TX / broadcast / system — and by free text.
Metrics & throughput
A neon msg/sec plot plus tiles for active / total / peak connections, bytes in/out, UDP datagrams and rule hits.
Structured syslog
Six levels, level-filtered and grep-able — every connect, disconnect, rule and error, timestamped.
Instant kick
Drop any client immediately via a per-client kill switch — goodbye, socket closed, cleaned up at once. No polite timeout.
Answer like a real service
Turn the endpoint into whatever the other side expects — responses are content, not code.
Auto-responder
Ordered rules matched by any / exact / prefix / contains / regex / hex-prefix; first enabled match wins. Reply in text or hex, add a delay, target the sender or broadcast, and optionally hang up after.
Edits apply live
Change rules while the listener runs — no restart, no recompile. Tune a mock device between messages.
Rich reply templates
Drop in {client_addr} {seq} {ts} {input}, regex groups {g1}…{g9}, and randomizers {rand:a-b} {choice:a|b|c} for lifelike, varying output.
Direct send & broadcast
Push a payload to one chosen client or to everyone, in text or hex, straight from the dashboard.
Command protocol
Built-in /ping /stats /users /whoami /nick /quit, toggleable per config.
Optional auth gate
Require a token (/auth <token>), with automatic disconnect after repeated failures.
Drive it & generate traffic
Make the endpoint talk on its own, on a schedule.
Timed feeds
Broadcast a templated payload to every connected client on a timer — as often as 20× a second, or as slow as you like.
Built-in geo stream
A ready-made world-map feed — cities plus moving ships and planes as marker JSON — folded in from the sibling FTXUI map project.
Seven scenario presets
Echo, chat relay, IoT sensor, mock line-API, binary device, geo map and auth-gated — each wires up transport, framing, rules and feeds in one click.
Capture, export, replay
Record a session once; hand it to a student, a colleague or your future self.
Session recorder
Capture every message — in, out, broadcast, system — with one click, live counter in the title bar.
JSONL export / import
Save a session to a portable file and load it back in later, on any machine.
Replay to live clients
Play a capture back with its original inter-message timing, from 0.5× up to full speed, filtered by direction, on a loop if you want. Any newline-delimited text file replays too.
Built right
Small, self-contained, and honest about what it is.
One ~6 MB binary
Tauri 2 · Rust · Tokio. No .NET, no Node, no Python — nothing to install alongside it. Ships as an MSI and an NSIS installer; cross-platform by design on Tauri.
Lean frontend
Pure HTML / CSS / vanilla JS — no framework, a locked-down content-security-policy, boots instantly.
Tested core
18 unit tests cover the framing codec, payload parsing, the rule engine and the template renderer. Config persists to disk automatically.
⚠ Honest scope
It is a single-host tool, and that focus is the point. It is not a load generator, a protocol analyser, or an API client — it's the endpoint those tools talk to, and the one place you can watch the whole exchange happen.