Useful evidence first

Find out whether data is empty, partial or unavailable.

Start with the exact build, one bounded snapshot and the collection warnings that explain missing native sources.

Record the build and warnings

shell
lens-top --version
lens --once
lens-health --json | jq '{findings, collection_warnings}'
lens-health --fail-on critical --fail-on-collection-warnings --quiet

Zero and unavailable mean different things

Remove filters, run the specialist directly and inspect collection_warnings before concluding that a host has no services, logs, interfaces, listeners or devices. Containers report only their namespace and can legitimately have no service manager, host journal, hardware sensors or mounted certificates.

shell
lens-logs --json | jq '{count: (.logs | length), warnings: .collection_warnings}'
lens-net --json | jq '{interfaces, routes, sockets, warnings: .collection_warnings}'

Narrow slow investigations

Open the specialist instead of waiting for every cockpit domain. External collectors have individual deadlines and interactive views retain the previous frame while new data arrives. On a slow remote connection, use one bounded result:

shell
lens-logs --since "15 minutes ago" --severity error --limit 100 --once
lens-net --filter 443 --once

lens-top --once samples twice and uses a short default measurement window. Passing --interval 2s deliberately requests a two-second sample.

Terminal colours, drawing and cleanup

Use --theme light, --theme dark or LENS_THEME when a browser terminal, serial console or multiplexer does not expose its background. Use --no-color when colour is unsuitable.

Rules and sparklines arriving as ─── mean the terminal is not decoding UTF-8, which is usual on a Raspberry Pi or embedded console booted without a UTF-8 locale. Lens draws ASCII rules, bars and keycaps there automatically; --ascii, --unicode and LENS_ASCII state the choice explicitly, and configuring a UTF-8 locale restores the Unicode frames.

A console shared with the kernel log has audit: and driver messages printed over the frame. Lens repaints the whole screen every second there, and Ctrl+L repaints immediately in any terminal. sudo dmesg --console-level 1 or sudo setterm --msg off stops the kernel writing to the console without affecting the journal.

Current builds clear and restore the terminal on normal exit. If a disconnected terminal did not allow cleanup, run reset. Report a normal q or Ctrl+C exit that still leaves content, including the terminal product and dimensions.

Common native-source checks

LogsJournal, unified-log and selected-file access follow the current user's permissions and time filters.
ServicesLinux uses systemd; macOS uses launchd. Guarded service actions target exact systemd units on Linux.
ContainersDocker/Podman/nerdctl appear only when the CLI is installed and live for the current user. Socket or group permission failures become collection_warnings; absent runtimes stay silent.
NetworkMinimal Linux systems use procfs/sysfs fallbacks. Socket ownership can remain permission-limited.
CellularRun mmcli in the same namespace and user context when ModemManager collection warns.
CertificatesLens inventories locally managed public certificates visible to the current user, not every distribution root CA.

Use GitHub Issues for support

Open a help issue or bug report. Include build identity, operating system, architecture, command, terminal product and relevant warnings. Remove hostnames, usernames, addresses, logs, SIM identifiers, certificate paths and other private system data first.

Report vulnerabilities privately.

Use the repository's private security advisory flow, not a public issue.