Record and inspect D-Bus traffic from the terminal
Project description
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-monitorgdbus
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.dblensbundlereport: open a saved.dblensbundle in the Textual report UI
Default behavior:
recorduses thesessionbus by defaultreportreadsrecord.dblensby default
Typical workflow:
- Record traffic during the period you want to observe.
- Open the saved
.dblensbundle withreport. - Switch between
Senders,Members, andErrors. - Move through the table and inspect the detail pane for the selected row or error summary.
- In
Errors, use the details table to inspect resolved caller and target names, per-call arguments, and retry context.
Keyboard Shortcuts
s: switch toSendersm: switch toMemberse: switch toErrorsLeft/Right: switch between viewsUp/Down: move inside the focused list or tableTab/Shift+Tab: switch focus between panesEnter: jump to the detail paneq: quit
License
Licensed under the GNU General Public License v3.0. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5c333583b40704294ecd42afb44cccbd47a4d1d8c4d487685207b56139a5809
|
|
| MD5 |
e4db014ea74a13370111caf2842d2f08
|
|
| BLAKE2b-256 |
d58c28d258b0828da6ad7cbdfc70c9e31d2b1cf6d7fdf690ca08010d40aeb81a
|
Provenance
The following attestation bundles were made for dbuslens-0.1.0.tar.gz:
Publisher:
release.yml on hualet/DBusLens
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dbuslens-0.1.0.tar.gz -
Subject digest:
c5c333583b40704294ecd42afb44cccbd47a4d1d8c4d487685207b56139a5809 - Sigstore transparency entry: 1326029740
- Sigstore integration time:
-
Permalink:
hualet/DBusLens@47208285fbd211f83b9da1a70d2b5c001d827304 -
Branch / Tag:
refs/tags/v1.0 - Owner: https://github.com/hualet
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@47208285fbd211f83b9da1a70d2b5c001d827304 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
948c447c8438f2030bd7d9fdb263819867248ba846dfcfd970a01718173beba7
|
|
| MD5 |
215cfbf278144b812abad8d1e8d07573
|
|
| BLAKE2b-256 |
5b511f0121f9643618898873ac91281c29dee598a750db040a904c2c39ab4921
|
Provenance
The following attestation bundles were made for dbuslens-0.1.0-py3-none-any.whl:
Publisher:
release.yml on hualet/DBusLens
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dbuslens-0.1.0-py3-none-any.whl -
Subject digest:
948c447c8438f2030bd7d9fdb263819867248ba846dfcfd970a01718173beba7 - Sigstore transparency entry: 1326029896
- Sigstore integration time:
-
Permalink:
hualet/DBusLens@47208285fbd211f83b9da1a70d2b5c001d827304 -
Branch / Tag:
refs/tags/v1.0 - Owner: https://github.com/hualet
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@47208285fbd211f83b9da1a70d2b5c001d827304 -
Trigger Event:
push
-
Statement type: