Skip to main content

mtjk

mtjk is a separately published distribution of the Meshtastic Python library, maintained while changes are validated and selectively upstreamed.

Work began in September 2025 to stabilize connection interfaces and message delivery for mmrelay. The modernization work keeps existing Meshtastic Python usage compatible:

  • package import namespace remains meshtastic
  • CLI command remains meshtastic
  • existing API compatibility is intentionally preserved

It is intended to be a drop-in, backward-compatible replacement for upstream.

Project Status

This is a temporary fork of meshtastic/python. It exists to ship fixes and improvements while they are validated and upstreamed selectively.

This repository does not accept pull requests. Community development efforts should be directed to the upstream project. If you find a fix or improvement here that you would like to carry upstream, please do so.

Notable Changes

  • major BLE and interface internals were refactored for maintainability while keeping compatibility shims in place
  • concurrency and lifecycle paths were tightened to reduce race-condition and shutdown edge cases
  • CI and release workflows were modernized, including Trusted Publisher-based PyPI release flow

For technical details, see:

  • REFACTOR_PROGRAM.md: rationale and early change log for the major refactor work maintained here.
  • COMPATIBILITY.md: canonical inventory of compatibility shims, deprecations, and migration mapping.
  • CONTRIBUTING.md: local setup, CI-equivalent checks, and contributor workflow conventions.

Install the CLI (recommended: pipx)

pipx is recommended for CLI tools so each app gets an isolated environment.

1) Remove prior installs first (recommended)

If you previously installed upstream meshtastic, remove it before installing mtjk.

# If installed with pipx:
pipx uninstall meshtastic || true

# If installed with pip in a Python environment:
python3 -m pip uninstall -y meshtastic

2) Install mtjk

pipx install mtjk

3) Verify

meshtastic --version

Install latest from Git (develop)

To install the latest unreleased version from this repository (clean install):

# If you previously installed upstream via pipx, remove it first:
pipx uninstall meshtastic || true

pipx uninstall mtjk || true
pipx install "git+https://github.com/jeremiah-k/mtjk.git@develop"

Upgrade / Uninstall

pipx upgrade mtjk
pipx uninstall mtjk

Developer Usage (existing Meshtastic API)

Dependency name is mtjk, but import namespace remains meshtastic.

Important:

  • If your dependency spec says meshtastic, you will install upstream.
  • Use mtjk in dependency specs for this package.
  • The package does not provide import mtjk.

requirements.txt

mtjk

Unreleased from Git:

mtjk @ git+https://github.com/jeremiah-k/mtjk.git@develop

If you need optional CLI extras in a dependency spec:

mtjk[cli]
mtjk[cli] @ git+https://github.com/jeremiah-k/mtjk.git@develop

pyproject.toml (PEP 621)

[project]
dependencies = [
  "mtjk",
]

Unreleased from Git:

[project]
dependencies = [
  "mtjk @ git+https://github.com/jeremiah-k/mtjk.git@develop",
]

setup.cfg

[options]
install_requires =
    mtjk

Unreleased from Git:

[options]
install_requires =
    mtjk @ git+https://github.com/jeremiah-k/mtjk.git@develop

Python import (unchanged)

import meshtastic
import meshtastic.serial_interface

interface = meshtastic.serial_interface.SerialInterface()
interface.sendText("hello mesh")
interface.close()

Support

Report mtjk-specific issues here:

Please do not file mtjk-specific issues with upstream maintainers.

Release Notes (Maintainers)

  • Versions match upstream releases with a .postN suffix (e.g., 2.7.8.post1 is the first mtjk release based on upstream 2.7.8).
  • Create a GitHub release with tag vX.Y.Z[.postN] (or push the tag manually). This triggers the PyPI publish workflow via Trusted Publisher.
  • Trusted Publisher workflow expects the git tag version to match pyproject.toml exactly.
  • Supported tag formats are vX.Y.Z... or X.Y.Z... (both map to the same package version check).
  • PyPI Trusted Publisher must match this repo/workflow/environment tuple: jeremiah-k/mtjk + .github/workflows/pypi-publish.yml + pypi-release.

Download files

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

Source Distribution

mtjk-2.7.9.post2.tar.gz (979.2 kB view details)

Uploaded Source

Built Distribution

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

mtjk-2.7.9.post2-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file mtjk-2.7.9.post2.tar.gz.

File metadata

  • Download URL: mtjk-2.7.9.post2.tar.gz
  • Upload date:
  • Size: 979.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for mtjk-2.7.9.post2.tar.gz
Algorithm Hash digest
SHA256 46469309c6b4163aa04210752a3a72f8cbddd78a7c74e0a26ff4960c5320b7b1
MD5 71278ccc2fb061e74dba97c461a7c5f9
BLAKE2b-256 d68845369cfe873ee471ec33d7905b60243ed1b10fa64eb41ae40c0c37722266

See more details on using hashes here.

Provenance

The following attestation bundles were made for mtjk-2.7.9.post2.tar.gz:

Publisher: pypi-publish.yml on jeremiah-k/mtjk

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

File details

Details for the file mtjk-2.7.9.post2-py3-none-any.whl.

File metadata

  • Download URL: mtjk-2.7.9.post2-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for mtjk-2.7.9.post2-py3-none-any.whl
Algorithm Hash digest
SHA256 367e6e052bc22a30a077784abda01f7ec2ea966ae77d847dfed40227914e1873
MD5 3b62de86da1a9112f876a577178520b3
BLAKE2b-256 0a416ea1598ff4c5d7b1ae6e24940ab3e58b8855427ec1409e236cf28eed9828

See more details on using hashes here.

Provenance

The following attestation bundles were made for mtjk-2.7.9.post2-py3-none-any.whl:

Publisher: pypi-publish.yml on jeremiah-k/mtjk

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

Release history Release notifications | RSS feed

2.7.11.post6

2 files

2.7.11.post5

2 files

2.7.11.post4

2 files

2.7.11.post3

2 files

2.7.11.post2

2 files

2.7.11.post1

2 files

2.7.10.post1

2 files

This release

2.7.9.post2 This release

2 files

2.7.9.post1

2 files

2.7.8.post3

2 files

2.7.8.post2

2 files

2.7.8.post1

2 files

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