`--mock` is a fake radio, not a fake MeshTerm: what it adverted was recorded to `meshterm.db` like anything a real companion said, so its four invented contacts turned up in the mesh walk, the dashboard and the map of the mesh actually being run. A `--mock` run that names no database now records to `<config_dir>/meshterm-mock.db`, created on first use. `--db` still wins — where a run records and which radio it talks to are different questions, so an explicit path is a precedence rule and not the usage error `--mock --port` is. `$MESHTERM_HOME` remains the only thing that isolates a run whole: the contact and channel caches, the outbox and the remembered devices are untouched by this, and the docs say so where they used to warn that `--mock` recorded into the real history. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
MeshTerm documentation
Everything that didn't belong on the front page. The README is the front door — what MeshTerm is, how to install it, and enough to get a first session running. This folder is the rest.
Using MeshTerm
| Read | For |
|---|---|
| What MeshTerm does | Every screen the menu offers, grouped the way the menu groups them, with the command that does the same job without it. |
| The command line | The manual. Every subcommand and option, what each prints on the plain and JSON faces, the exit statuses, and recipes built on jq. |
| The CLI cookbook | Common one-liners by task, for when you want the shape of a command rather than its specification. |
| Configuring MeshTerm | Preferences versus config, device profiles, and everything kept under ~/.meshterm. |
| Terminals, icons, and the Windows console | Why the icons and charts draw on some terminals and not others, and what MeshTerm does about it on Windows. |
Putting it on hardware
Only if you want MeshTerm running on a handheld's own screen. A MeshCore companion on USB, Bluetooth or Wi-Fi needs none of this.
| Read | For |
|---|---|
| MeshTerm on hardware | Start here — which of the two manuals below is yours, and what the device-side scripts do. |
| MeshTerm on the PicoCalc | A stock ClockworkPi PicoCalc to a Linux handheld with a LoRa radio soldered inside: the shopping list, the Lyra swap, Calculinux, and the radio. |
| MeshTerm on the uConsole | A uConsole with the hackergadgets AIO LoRa board, whose SX1262 sits on the host's own SPI bus, fronted as a companion by a small bridge. |
Reading the code
| Read | For |
|---|---|
| How the code is laid out | The layering, and where a new feature goes. |
| CLAUDE.md | The actual style guide — terminology, UX standards, and the reusable building blocks. Written for AI assistants, and the house rules for everyone. |
| CONTRIBUTING.md | The dev install, the three gates a change has to pass, and what happens to your contribution's licensing. |
Historical record
Two surveys of the code, written the same day against the same commit. They are kept because a project that writes down its own problems is easier to trust than one that doesn't — but they are snapshots of a date, not to-do lists. Some of what they describe has been fixed since, and each says so where it has.
| Read | For |
|---|---|
| Navigation survey | Every exception to "Esc pops the stack", catalogued. |
| UI consistency survey | Everything else in the CLAUDE.md UX standard — six sweeps found nothing, which is the useful part. |
Also here
screenshots/ holds the captures the README shows and the ones
meshterm.net builds its landing page from, so a file in there is
referenced from more than one place.