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.
The deal
Section titled “The deal”- Design docs in
docs/are the spec. PRs that change behavior change the docs in the same PR. cmake --build build && ./build/lrc_testsmust be green and warning-free (-Werroris 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.mdin hand.
Getting started
Section titled “Getting started”git clone <repo> && cd lrccmake -S . -B build && cmake --build build -j./build/lrc_tests && python3 tests/smoke_lrcd.pyRun a local two-node network:
./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 bothGood first contributions
Section titled “Good first contributions”test_radio.cpp: pin the airtime calculator against Semtech’s published numbers.- TUI groundwork (
core/src/tui/): ANSI renderer against theirc::SessionAPI. lrclogsegment store (docs/STORAGE.md) with host-backed tests.- nRF52 variant headers (docs/HARDWARE.md §Variant contract).
Conduct
Section titled “Conduct”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.