3.2 KiB
Reticulum MeshChatX
A heavily customized fork of Reticulum MeshChat, any meaningful, stable and tested modifications will be submitted as a PR upstream.
Features of this fork
- Custom UI/UX (actively being improved)
- Ability to set inbound and propagation node stamps.
- Better config parsing.
- Cancel page fetching or file downloads
- Block receiving messages from users.
- Spam filter (based on keywords)
- Multi-identity support.
- Multi-language support
- Offline Reticulum documentation tool
- More tools (translate, LoRa calculator, LXMFy bots, etc.)
- Codebase reorganization and cleanup.
- Tests and proper CI/CD pipeline.
- RNS hot reload
- Backup/Import identities, messages and interfaces.
- Full LXST support.
- Poetry for packaging and dependency management.
- More stats on about page.
- Actions are pinned to full-length SHA hashes.
- Docker images are smaller and use SHA256 hashes for the images.
- Electron improvements (ASAR and security).
- Latest updates for NPM and Python dependencies (bleeding edge)
- Numerous Ruff, Deepsource, CodeQL Advanced and Bearer Linting/SAST fixes.
- Some performance improvements.
Usage
Check releases for pre-built binaries or appimages.
Building
make install # installs Python deps via Poetry and Node deps via npm
make build
You can run make run or make develop (a thin alias) to start the backend + frontend loop locally through poetry run meshchat.
Python packaging
The Python build is driven entirely by Poetry now. Run python scripts/sync_version.py or make sync-version before packaging so pyproject.toml and src/version.py match package.json. After that:
python -m poetry install
make wheel # produces a wheel in python-dist/ that bundles the public assets
The wheel includes the frontend public/ assets, logo/, and the CLI entry point, and python-dist/ keeps the artifact separate from the Electron dist/ output.
Building in Docker
make docker-build
The Electron build artifacts will still live under dist/ for releases.
Python packaging
The backend uses Poetry with pyproject.toml for dependency management and packaging. Before building, run python3 scripts/sync_version.py (or make sync-version) to ensure the generated src/version.py reflects the version from package.json that the Electron artifacts use. This keeps the CLI release metadata, wheel packages, and other bundles aligned.
Building with Poetry
# Install dependencies
poetry install
# Build the package
poetry build
# Install locally for testing
pip install dist/*.whl
Building with pip (alternative)
If you prefer pip, you can build/install directly:
# Build the wheel
pip install build
python -m build
# Install locally
pip install .
cx_Freeze (for AppImage/NSIS)
The cx_setup.py script uses cx_Freeze for creating standalone executables (AppImage for Linux, NSIS for Windows). This is separate from the Poetry/pip packaging workflow.