


Total PipeWire control
in one canvas
Helmsman talks to PipeWire directly via libpipewire, exposing the audio + video graph as a drag-to-connect canvas, the per-app mixer pavucontrol always wanted to be, an LV2 / LADSPA plugin browser with a chain editor, a screen recorder, and named graph-state presets that survive reboots.
The patchbay, mixer, effects browser, and recorder Linux deserves — in one place. Built in C11 with GTK4 + libadwaita, talking to libpipewire-0.3 directly.



Process internals
surfaced live
Launch a program and watch what it actually does — process tree, file descriptors, network sockets, threads, memory map, syscalls, capabilities, cgroups, pressure stalls, and crash details — all in one CLI tool with an optional Qt 6 desktop shell.
Reads /proc directly, wraps strace for live syscall tracing, decodes connect() targets, correlates journald and DBus, and saves runs for diff/replay. C++20 core, 18 tests.



Per-process firewall
kernel-enforced
Little Snitch for Linux, built on modern Rust + Aya eBPF. Watches every outbound connect() in the kernel, prompts you to allow or deny, and shapes per-process bandwidth with tc-bpf token buckets.
Three processes, two languages, one shared crate: a no_std eBPF kernel side, a privileged Rust daemon (Tokio + SQLite + IPC), and an unprivileged iced GUI.
Source on GitHub
All three projects are open source. Click through for builds, install instructions, and per-phase implementation notes.
Unified PipeWire control surface — patchbay, mixer, effects, recorder, presets.
Native Linux runtime inspector — proc / strace / cgroups / PSI, with a Qt 6 GUI.
Per-process Linux network gate — eBPF + Aya, allow/deny + bandwidth shaping.