Skip to content

Contributing

Humans and AI agents both welcome. AI agents: AGENTS.md is your entry point and is normative; this file is the shorter human overview.

  • Design docs in docs/ are the spec. PRs that change behavior change the docs in the same PR.
  • cmake --build build && ./build/lrc_tests must be green and warning-free (-Werror is on). New behavior ⇒ new tests.
  • The wire format is frozen by a golden-bytes test; protocol changes are version bumps with a design discussion, not silent edits.
  • Anything that can key a transmitter (RF switch, TCXO, TX power, band plans) gets human review with docs/HARDWARE.md in hand.
Terminal window
git clone <repo> && cd lrc
cmake -S . -B build && cmake --build build -j
./build/lrc_tests && python3 tests/smoke_lrcd.py

Run a local two-node network:

Terminal window
./build/lrcd --name n1.lrc --rtr 1 --irc-port 6667 --peer-port 6810 &
./build/lrcd --name n2.lrc --rtr 2 --irc-port 6668 --peer-port 6811 --peer 127.0.0.1:6810 &
# connect irssi to localhost:6667 and localhost:6668, join #pizza on both
  • test_radio.cpp: pin the airtime calculator against Semtech’s published numbers.
  • TUI groundwork (core/src/tui/): ANSI renderer against the irc::Session API.
  • lrclog segment store (docs/STORAGE.md) with host-backed tests.
  • nRF52 variant headers (docs/HARDWARE.md §Variant contract).

CODE_OF_CONDUCT.md. The one-line version: argue about packets, not people — and remember both the Meshtastic and MeshCore communities are friends of this project, not rivals.