Linux · macOS · containers

Know what Lens can see where it runs.

Packages cover common desktop, server, gateway and 32-bit ARM userlands. Native facilities and user permissions determine the depth of each view.

Packaged architectures

PackageTypical target
amd64 / x86_64Intel and AMD Linux
arm64 / aarch64ARM gateways, servers and 64-bit Raspberry Pi OS
armhf32-bit hard-float ARMv6/ARMv7 userlands
Apple SiliconARM64 macOS
Intel macOSx86-64 macOS

Linux releases contain Debian and RPM packages plus GNU and statically linked musl archives. Native packages install the portable musl build so they do not inherit the build runner's glibc version. Select a Debian package from dpkg --print-architecture, not from the CPU model alone.

Capability matrix

AreaLinuxmacOS
Processesprocfs, users, cgroups, I/O and descriptors where permittedNative process and system interfaces
Servicessystemd inspection and guarded actionslaunchd inspection
Logssystemd journal and selected filesUnified log and selected files
StorageMounts, inodes, block devices and deleted-open filesMounted volumes, APFS context and devices
NetworkInterfaces, routes, sockets and ModemManager cellular dataInterfaces, routes and sockets
HardwareDMI/device tree, thermal/hwmon, USB and serialNative identity, firmware, USB and serial
SystemClock/NTP, resolver, identities and managed certificatesClock, resolver, identities and managed certificates

Health evaluates the domains that completed. It keeps missing-source warnings separate from healthy empty results.

Native facilities add depth

Lens uses systemctl and journalctl for systemd, log and launchctl on macOS, standard networking commands plus procfs/sysfs fallbacks, mmcli for cellular data, openssl for public certificate metadata and vcgencmd for Raspberry Pi firmware power status. These are capabilities rather than blanket dependencies; one unavailable facility does not stop unrelated collection.

The current namespace is the truth

Lens uses the invoking user's permissions. Command lines, descriptors, journals, sockets, certificates and logs can therefore be partial. A container reports its own processes, mounts, resolver, users and exposed devices—not the host's. Inspect collection_warnings whenever completeness matters.

Remote and compact terminals

Layouts respond to resizing and remove secondary columns before primary data or navigation. A large screen is filled rather than stretched: lens-top caps the process name column, spends the width left over on the command line and adds a host panel beside the charts. Automatic colour detection works in conventional terminals; browser consoles, serial links and multiplexers sometimes need --theme light, --theme dark or LENS_THEME. Drawing characters follow the same pattern: every command draws Unicode rules and block sparklines where they display correctly and ASCII equivalents on a console reporting no UTF-8 locale, with --ascii, --unicode and LENS_ASCII available to state the choice. On a console shared with the kernel log, Lens repaints every second so printk output over a frame disappears; Ctrl+L repaints on demand anywhere.