Skip to main content

Record and inspect D-Bus traffic from the terminal

Project description

DBusLens logo

DBusLens

DBusLens is a terminal tool for recording and inspecting D-Bus traffic. It stores captures as .dblens bundles, opens them in a Textual UI, and helps you quickly understand who is sending messages, which members are busiest, and where errors are happening.

Highlights

  • A D-Bus inspector that feels like a real tool
    Clean, keyboard-first terminal UI built for investigation, not just dumping messages.

  • Built for speed
    Fast capture, fast load, and responsive browsing even when the trace is noisy.

  • From traffic ranking to failure diagnosis
    See top senders and members, then drill into error distribution, retries, call context, and arguments.

  • Understands changing bus ownership
    Recover service and process identity from short-lived unique names with capture-time snapshots and ownership timeline analysis.

  • One workflow for session and system bus
    Same commands, same bundle format, same inspection model.

  • Simple like perf, focused on D-Bus
    Capture now, inspect later, stay in the terminal.

Screenshots

Senders

Members

Errors

Quick Start

Install the published tool:

uv tool install dbuslens

This installs the dbuslens command into your user tool path. uv documents that uv tool install exposes package executables on PATH, which matches the intended install flow.

Runtime requirements:

  • Linux
  • dbus-monitor
  • gdbus

If you are working on the project locally instead of installing from PyPI:

uv sync

Record a capture:

dbuslens record --duration 10
dbuslens record --bus system --duration 60 --output /tmp/system.dblens

Open a saved capture in the terminal UI:

dbuslens report
dbuslens report --input /tmp/system.dblens

Enable shell completion:

mkdir -p ~/.local/share/bash-completion/completions
dbuslens completion bash > ~/.local/share/bash-completion/completions/dbuslens
mkdir -p ~/.local/share/zsh/site-functions
dbuslens completion zsh > ~/.local/share/zsh/site-functions/_dbuslens

Format reference:

Recent .dblens captures also embed ownership timeline metadata, which helps report resolve short-lived D-Bus unique names back to service labels, recover error call context across owner changes, and attach more accurate process metadata in the Errors view.

Operation Guide

dbuslens has two main commands:

  • record: start a timed D-Bus capture and save it as a .dblens bundle
  • report: open a saved .dblens bundle in the Textual report UI

Default behavior:

  • record uses the session bus by default
  • report reads record.dblens by default

Typical workflow:

  1. Record traffic during the period you want to observe.
  2. Open the saved .dblens bundle with report.
  3. Switch between Senders, Members, and Errors.
  4. Move through the table and inspect the detail pane for the selected row or error summary.
  5. In Errors, use the details table to inspect resolved caller and target names, per-call arguments, and retry context.

Keyboard Shortcuts

  • s: switch to Senders
  • m: switch to Members
  • e: switch to Errors
  • Left / Right: switch between views
  • Up / Down: move inside the focused list or table
  • Tab / Shift+Tab: switch focus between panes
  • Enter: jump to the detail pane
  • q: quit

License

Licensed under the GNU General Public License v3.0. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbuslens-0.1.0.tar.gz (51.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dbuslens-0.1.0-py3-none-any.whl (39.6 kB view details)

Uploaded Python 3

File details

Details for the file dbuslens-0.1.0.tar.gz.

File metadata

  • Download URL: dbuslens-0.1.0.tar.gz
  • Upload date:
  • Size: 51.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dbuslens-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c5c333583b40704294ecd42afb44cccbd47a4d1d8c4d487685207b56139a5809
MD5 e4db014ea74a13370111caf2842d2f08
BLAKE2b-256 d58c28d258b0828da6ad7cbdfc70c9e31d2b1cf6d7fdf690ca08010d40aeb81a

See more details on using hashes here.

Provenance

The following attestation bundles were made for dbuslens-0.1.0.tar.gz:

Publisher: release.yml on hualet/DBusLens

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dbuslens-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: dbuslens-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 39.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dbuslens-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 948c447c8438f2030bd7d9fdb263819867248ba846dfcfd970a01718173beba7
MD5 215cfbf278144b812abad8d1e8d07573
BLAKE2b-256 5b511f0121f9643618898873ac91281c29dee598a750db040a904c2c39ab4921

See more details on using hashes here.

Provenance

The following attestation bundles were made for dbuslens-0.1.0-py3-none-any.whl:

Publisher: release.yml on hualet/DBusLens

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page