zenlixem is a small, Linux-focused CLI suite for system introspection.
zenlixem— suite wrapper (includeszenlixem doctor)whoholds— who holds this file / device / portlasttouch— who last modified this fileenvpath— why this command resolves to this pathwhyopen— why this path / port is open (narrative reasons)
- Scope boundary:
FINAL.md - Post-F checklist:
docs/post-f-checklist.md - Performance notes:
docs/perf.md
Linux only.
zenlixem doctorzenlixem doctor --jsonzenlixem completions bash > zenlixem.bashExit codes:
0= OK1= warnings2= failures
whoholds <TARGET>TARGET can be:
- a filesystem path (file, directory, or device node)
- a numeric TCP/UDP port (example:
8080)
whoholds /dev/nvme0n1
whoholds /mnt/data
whoholds 8080lasttouch <PATH>lasttouch /etc/sysctl.confenvpath <COMMAND>COMMAND must be a bare command name (no / characters).
envpath gccwhyopen /var/log/syslog
whyopen 8080- Rust toolchain (via
rustup) - Linux
x86_64(amd64) or Linuxaarch64(arm64)
chmod +x ./build.sh
./build.sh check-all
./build.sh release./build.sh install-compsudo ./build.sh install-manOr install both:
sudo ./build.sh installLinux amd64 (universal):
./build.sh pro-linux-amd64Outputs:
target/x86_64-unknown-linux-gnu/release/zenlixemtarget/x86_64-unknown-linux-gnu/release/whoholdstarget/x86_64-unknown-linux-gnu/release/lasttouchtarget/x86_64-unknown-linux-gnu/release/envpathtarget/x86_64-unknown-linux-gnu/release/whyopen
Linux arm64 (universal):
./build.sh pro-linux-arm64Outputs:
target/aarch64-unknown-linux-gnu/release/zenlixemtarget/aarch64-unknown-linux-gnu/release/whoholdstarget/aarch64-unknown-linux-gnu/release/lasttouchtarget/aarch64-unknown-linux-gnu/release/envpathtarget/aarch64-unknown-linux-gnu/release/whyopen
Note: building for aarch64-unknown-linux-gnu typically requires building on an arm64 machine, or configuring an aarch64 cross-toolchain + linker.
cargo build --release -p zenlixem
cargo build --release -p whoholds
cargo build --release -p lasttouch
cargo build --release -p envpath
cargo build --release -p whyopencross build --release --target x86_64-unknown-linux-musl -p zenlixem -p whoholds -p lasttouch -p envpath -p whyopencargo run -p zenlixem -- doctor
cargo run -p whoholds -- /mnt/data
cargo run -p lasttouch -- /etc/sysctl.conf
cargo run -p envpath -- gcc
cargo run -p whyopen -- /mnt/datawhoholds /dev/nvme0n1
whoholds 8080
whoholds /mnt/data
lasttouch /etc/sysctl.conf
envpath gcc
whyopen /mnt/data
whyopen 8080- Some information sources may require elevated permissions. When a process cannot be inspected due to permissions, the tools will emit warnings.