Skip to main content

cmtop: real-time mail monitor for chatmail relays

cmtop provides an htop-style console interface for monitoring mail traffic and system health on chatmail relays. It tails postfix and dovecot logs to calculate real-time delivery statistics and identifies external domains involved in mail traffic.

Installation

To install use:

uv tool install cmtop

Usage

Interactive TUI

To run the interactive TUI:

cmtop

To override the local domain name used for distinguishing internal versus external traffic:

cmtop --domain example.org

Non-interactive Log Analysis

To analyze a logfile and print a flat summary table:

cmtop -f /path/to/mail.log

You can also pipe journalctl output directly:

journalctl -u postfix@- --no-pager | cmtop -f - --domain mail.example.org

Interactive Controls

  • j or Down Arrow: Move cursor down

  • k or Up Arrow: Move cursor up

  • q: Quit

Developing / Releasing cmtop

  1. Clone the git repository at https://github.com/hpk42/cmtop

  2. Install 'cmtop' in editing mode: uv pip install -e .

  3. Edit code under cmtop/, add tests to tests/ and run pytest, finally commit your changes.

CI checks (ruff lint/format, packaging, pytest) come from the shared chatmail/workflows repository; run them locally with uvx ruff check ., uvx ruff format --check . and pytest.

To release, run the shared release script from a checkout of chatmail/workflows:

python ../workflows/scripts/make_new_release.py

It runs the checks, tests the built wheel, generates the CHANGELOG.md entry with git-cliff and opens it in your editor, then commits, tags vX.Y.Z and pushes. The release.yml workflow builds and publishes to PyPI via trusted publishing (OIDC); no local twine or PyPI token is involved.

Metadata

Release files for cmtop 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cmtop 0.2.1
File Size Uploaded Provenance Actions
cmtop-0.2.1.tar.gz 24.1 kB With provenance Details for cmtop-0.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for cmtop 0.2.1
File Interpreter ABI Platform Actions
cmtop-0.2.1-py3-none-any.whl Python 3 none any Details for cmtop-0.2.1-py3-none-any.whl

Total release size: 45.1 kB

Release files / cmtop-0.2.1.tar.gz

Download URL cmtop-0.2.1.tar.gz
Size 24.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3ad15b60b29d4d630be971b640af65ec8d65de0dad628af7c4d614e26ef39084
BLAKE2b-256 checksum
How to use checksums
b19e9dc194530ead40991274b817712bcf2c4b9420686aeba49e1eb31697eb51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 29, 2026.

Transparency log

Release files / cmtop-0.2.1-py3-none-any.whl

Download URL cmtop-0.2.1-py3-none-any.whl
Size 21.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a46c6429d0948efa47435bcd119c37cc72c07ac583390dd04fa84156056fc4fa
BLAKE2b-256 checksum
How to use checksums
17ef5ed1908cb78123451099e7969ee6998b5be536b898a4869d6e775a5b1c18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 29, 2026.

Transparency log

Security for cmtop 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for cmtop-0.2.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page