// SECTION: APP_HELMSMAN
001
SCREENSHOT: helmsman_01.pngRELEASED
Helmsman patchbay — drag-to-connect canvas of PipeWire nodes
Helmsman mixer — per-app volume sliders for every audio sink
Helmsman diagnostics — live PipeWire node states table
STACK: C11 / GTK4 / MESON
helmsman.mdv0.1.0

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.

STATUS:v0.1.0 · PHASES 14
LANGC11
GUIGTK4
BUILDMESON
LICENSEMIT
// SECTION: APP_SYSPROBE
002
SCREENSHOT: sysprobe_01.pngRELEASED
Sysprobe processes tab — live process tree of a running Firefox
Sysprobe memory tab — classified memory map regions
Sysprobe security tab — capabilities, seccomp, listening ports
STACK: C++20 / QT6/QML / CMAKE
sysprobe.mdv0.1.0

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.

STATUS:v0.1.0 · PHASES 19
LANGC++20
GUIQT6/QML
BUILDCMAKE
LICENSETBD
// SECTION: APP_SLUICE
003
SCREENSHOT: sluice_01.pngRELEASED
Sluice bandwidth tab — per-process rate limit editor with live event count
Sluice rules tab — exe / host / port / protocol rule editor
Sluice events feed — live outbound connection table
STACK: RUST / ICED / CARGO
sluice.mdv0.1.0

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.

STATUS:v0.1.0 · PHASES 12
LANGRUST
GUIICED
BUILDCARGO
LICENSEMIT
// SECTION: REPOSITORIES
004

Source on GitHub

All three projects are open source. Click through for builds, install instructions, and per-phase implementation notes.

HELMSMAN
v0.1.001
C11/ MESON

Unified PipeWire control surface — patchbay, mixer, effects, recorder, presets.

libpipewire-0.3 native
Drag-to-connect patchbay
Per-app mixer (PA-bidirectional)
LV2 / LADSPA chain editor
Screen + audio recorder
Persistent graph-state presets
SYSPROBE
v0.1.002
C++20/ CMAKE

Native Linux runtime inspector — proc / strace / cgroups / PSI, with a Qt 6 GUI.

Process tree + threads + fds
Live syscall tracing (strace)
Network sockets + DNS targets
cgroups + PSI live monitoring
Crash + journal correlation
Run save / diff / replay
SLUICE
v0.1.003
RUST/ CARGO

Per-process Linux network gate — eBPF + Aya, allow/deny + bandwidth shaping.

Per-process outbound feed
Allow / deny rules (DNS-aware)
Interactive prompt dialogs
Per-PID bandwidth shaping
tc-bpf token buckets
SQLite-backed rules engine
* MIT licensed where listed.