{
  "id": "remoteterm",
  "name": "RemoteTerm for MeshCore",
  "short_name": "RemoteTerm",
  "kind": "tool",
  "status": "active",
  "maturity": "stable",
  "description": "Self-hosted MeshCore power-user terminal with remote messaging, server-side packet capture and decryption, radio administration, bots, maps, repeater telemetry and integrations including MQTT and Home Assistant.",
  "image": "remoteterm.svg",
  "screenshots": [
    {
      "file": "desktop.png",
      "caption": "Desktop terminal and mesh management interface"
    },
    {
      "file": "mobile.png",
      "caption": "Mobile messaging interface"
    },
    {
      "file": "mobile-map.png",
      "caption": "Mobile mesh map and node details"
    }
  ],
  "maintainers": [
    {
      "name": "Josh Kingsman",
      "url": "https://github.com/jkingsman"
    }
  ],
  "repository": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore",
  "license": "MIT",
  "languages": [
    "python",
    "typescript"
  ],
  "platforms": [
    "docker",
    "linux",
    "macos",
    "windows",
    "web"
  ],
  "interfaces": [
    "web",
    "api",
    "headless"
  ],
  "connections": [
    "ble",
    "serial",
    "usb",
    "tcp",
    "mqtt",
    "http"
  ],
  "node_roles": [
    "companion",
    "repeater",
    "room-server"
  ],
  "capabilities": [
    "messaging",
    "contacts",
    "channels",
    "node-configuration",
    "remote-administration",
    "monitoring",
    "telemetry",
    "packet-analysis",
    "mapping",
    "automation",
    "notifications",
    "bridging",
    "key-management"
  ],
  "install": [
    {
      "type": "bare-metal",
      "package": "Python 3.11+ / uv",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore#install-path-1-clone-and-build",
      "command": "uv sync"
    },
    {
      "type": "docker-compose",
      "package": "jkingsman/remoteterm-meshcore",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore#install-path-2-docker",
      "command": "sudo docker compose up -d"
    },
    {
      "type": "aur",
      "package": "remoteterm-meshcore",
      "url": "https://aur.archlinux.org/packages/remoteterm-meshcore",
      "command": "yay -S remoteterm-meshcore"
    },
    {
      "type": "github-release",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases"
    },
    {
      "type": "source",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore"
    }
  ],
  "popularity": {
    "githubStars": 261,
    "githubForks": 37,
    "githubWatchers": 6,
    "githubOpenIssues": 10,
    "githubContributors": 15,
    "releaseDownloads": 670,
    "latestReleaseDownloads": 22,
    "lastChecked": "2026-06-23"
  },
  "verification": {
    "sourceAvailable": true,
    "releasesAvailable": true,
    "signedReleases": false,
    "ciBuilds": true,
    "hasDocumentation": true,
    "lastChecked": "2026-06-23",
    "notes": [
      "Intended for trusted networks; its bot system can execute arbitrary Python and must not be exposed publicly without stronger access controls.",
      "Native installation is recommended because Docker can have intermittent serial event-subscription issues.",
      "Home Assistant integration uses MQTT Discovery and does not require a custom component."
    ]
  },
  "tags": [
    "remote-terminal",
    "packet-capture",
    "bots",
    "home-assistant",
    "mqtt",
    "self-hosted"
  ],
  "last_reviewed": "2026-06-23",
  "source": {
    "path": "data/software/remoteterm/software.yaml",
    "updatedAt": "2026-06-24T01:55:49+02:00"
  },
  "latest_version": "3.15.1",
  "released": "2026-06-21",
  "releases": [
    {
      "version": "3.15.1",
      "name": "3.15.1",
      "datetime": "2026-06-21T05:43:50Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.15.1",
      "prerelease": false,
      "notes": "## [3.15.1] - 2026-06-20\n\n* Feature: Per-message + analyzer region tag support\n* Feature: Sortable neighbor list in repeater pane\n* Feature: Option to disable autoscroll on packet feed\n* Feature: Bot globals\n* Feature: Add draft support for Open gifs + reactions\n* Bugfix: Use correct last-heard time for repeater recency\n* Bugfix: Configurable VAPID subject for iOS web push\n* Misc: Library updates, logging, test",
      "notesHtml": "<h2>[3.15.1] - 2026-06-20</h2>\n<ul>\n<li>Feature: Per-message + analyzer region tag support</li>\n<li>Feature: Sortable neighbor list in repeater pane</li>\n<li>Feature: Option to disable autoscroll on packet feed</li>\n<li>Feature: Bot globals</li>\n<li>Feature: Add draft support for Open gifs + reactions</li>\n<li>Bugfix: Use correct last-heard time for repeater recency</li>\n<li>Bugfix: Configurable VAPID subject for iOS web push</li>\n<li>Misc: Library updates, logging, test</li>\n</ul>\n"
    },
    {
      "version": "3.15.0",
      "name": "3.15.0",
      "datetime": "2026-06-12T05:31:41Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.15.0",
      "prerelease": false,
      "notes": "## [3.15.0] - 2026-06-11\n\n* Feature: Enhanced repeater telemetry with scrubbing and better extents\n* Feature: Outbound message opt-in for Apprise\n* Feature: Reverse-link button on trace pane\n* Feature: Add recently traced contacts as own category in repeater pane\n* Feature: More compact trace pane display\n* Bugfix: Scavenge ACK codes for standalone acks, resolving issues with DM ack detection\n* Bugfix: Proper timestamps for community MQTT\n* Bugfix: Clearer packet history legend in packet view\n* Misc: Add pubkey suffix to repeater neighbors\n* Misc: Dependency bumps & test fixes",
      "notesHtml": "<h2>[3.15.0] - 2026-06-11</h2>\n<ul>\n<li>Feature: Enhanced repeater telemetry with scrubbing and better extents</li>\n<li>Feature: Outbound message opt-in for Apprise</li>\n<li>Feature: Reverse-link button on trace pane</li>\n<li>Feature: Add recently traced contacts as own category in repeater pane</li>\n<li>Feature: More compact trace pane display</li>\n<li>Bugfix: Scavenge ACK codes for standalone acks, resolving issues with DM ack detection</li>\n<li>Bugfix: Proper timestamps for community MQTT</li>\n<li>Bugfix: Clearer packet history legend in packet view</li>\n<li>Misc: Add pubkey suffix to repeater neighbors</li>\n<li>Misc: Dependency bumps &amp; test fixes</li>\n</ul>\n"
    },
    {
      "version": "3.14.1",
      "name": "3.14.1",
      "datetime": "2026-06-02T02:34:07Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.14.1",
      "prerelease": false,
      "notes": "## [3.14.1] - 2026-06-01\n\n* Feature: Enhance online documentation\n* Feature: Chain nav to browser history state\n* Feature: Add packet_hash to bot kwargs\n* Bug: Fix amp/ma units for HA integration of LPP sensors\n* Bug: Don't display blocked contacts on the map\n* Bug: Don't trim trailing space from repeater console commands\n* Bug: Make the trace pane not unusable with a bunch of hops or a bunch of recents\n* Misc: Dependency bumps + test updates",
      "notesHtml": "<h2>[3.14.1] - 2026-06-01</h2>\n<ul>\n<li>Feature: Enhance online documentation</li>\n<li>Feature: Chain nav to browser history state</li>\n<li>Feature: Add packet_hash to bot kwargs</li>\n<li>Bug: Fix amp/ma units for HA integration of LPP sensors</li>\n<li>Bug: Don't display blocked contacts on the map</li>\n<li>Bug: Don't trim trailing space from repeater console commands</li>\n<li>Bug: Make the trace pane not unusable with a bunch of hops or a bunch of recents</li>\n<li>Misc: Dependency bumps + test updates</li>\n</ul>\n"
    },
    {
      "version": "3.14.0",
      "name": "3.14.0",
      "datetime": "2026-05-14T01:20:20Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.14.0",
      "prerelease": false,
      "notes": "## [3.14.0] - 2026-05-13\n\n* Feature: Support active/intervalized contact telemetry gathering + HA forwarding\n* Feature: Stable packet analyzer chart coloring\n* Feature: Add packet scope to inscpection\n* Feature: Support websocket path config for community mqtt\n* Bugfix: Drop token renewal time to 1hr for more sensitive services\n* Bugfix: Don't forward unparseable packets to communitya ggregators\n* Bugfix: Persist login status for rooms\n* Bugfix: Fix gap in repeater/contact/sensor non-ingest logic\n* Misc: Revise hop-length buckets to reflect path bit width\n* Misc: Remove autocomplete from textarea\n* Misc: Test & Dependency updates",
      "notesHtml": "<h2>[3.14.0] - 2026-05-13</h2>\n<ul>\n<li>Feature: Support active/intervalized contact telemetry gathering + HA forwarding</li>\n<li>Feature: Stable packet analyzer chart coloring</li>\n<li>Feature: Add packet scope to inscpection</li>\n<li>Feature: Support websocket path config for community mqtt</li>\n<li>Bugfix: Drop token renewal time to 1hr for more sensitive services</li>\n<li>Bugfix: Don't forward unparseable packets to communitya ggregators</li>\n<li>Bugfix: Persist login status for rooms</li>\n<li>Bugfix: Fix gap in repeater/contact/sensor non-ingest logic</li>\n<li>Misc: Revise hop-length buckets to reflect path bit width</li>\n<li>Misc: Remove autocomplete from textarea</li>\n<li>Misc: Test &amp; Dependency updates</li>\n</ul>\n"
    },
    {
      "version": "3.13.0",
      "name": "3.13.0",
      "datetime": "2026-05-01T03:35:15Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.13.0",
      "prerelease": false,
      "notes": "## [3.13.0] - 2026-04-30\n\n* Feature: Error counts included in repeater telemetry\n* Feature: RX error rate + percentage surfaced and tracked for repeaters\n* Feature: Dynamic as-you-type text replacement for Cyrillic byte optimization\n* Feature: Permit hourly checks for direct/routed repeaters\n* Feature: Allow newlines in input\n* Feature: Packet-send radio time added to packet analyzer\n* Feature: Enable forced plaintext for Apprise\n* Bugfix: Less annoying MQTT failure notifications with backoff\n* Bugfis: Don't obscure input; use dvh everywhere\n* Bugfix: Clearer save button for advert interval\n* Misc: Library updates\n* Misc: Rewrite 5xx to 4xx to avoid issues with proxies that don't react well to 503/504",
      "notesHtml": "<h2>[3.13.0] - 2026-04-30</h2>\n<ul>\n<li>Feature: Error counts included in repeater telemetry</li>\n<li>Feature: RX error rate + percentage surfaced and tracked for repeaters</li>\n<li>Feature: Dynamic as-you-type text replacement for Cyrillic byte optimization</li>\n<li>Feature: Permit hourly checks for direct/routed repeaters</li>\n<li>Feature: Allow newlines in input</li>\n<li>Feature: Packet-send radio time added to packet analyzer</li>\n<li>Feature: Enable forced plaintext for Apprise</li>\n<li>Bugfix: Less annoying MQTT failure notifications with backoff</li>\n<li>Bugfis: Don't obscure input; use dvh everywhere</li>\n<li>Bugfix: Clearer save button for advert interval</li>\n<li>Misc: Library updates</li>\n<li>Misc: Rewrite 5xx to 4xx to avoid issues with proxies that don't react well to 503/504</li>\n</ul>\n"
    },
    {
      "version": "3.12.3",
      "name": "3.12.3",
      "datetime": "2026-04-24T21:07:13Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.12.3",
      "prerelease": false,
      "notes": "## [3.12.3] - 2026-04-24\n\n* Feature: Customizable Apprise strings\n* Feature: Choose contact addition type\n* Featuer: Make bulk-delete sortable by last-heard\n* Misc: Bypass error on fail-to-unload-contact when it's not there\n* Misc: Docs & test updates",
      "notesHtml": "<h2>[3.12.3] - 2026-04-24</h2>\n<ul>\n<li>Feature: Customizable Apprise strings</li>\n<li>Feature: Choose contact addition type</li>\n<li>Featuer: Make bulk-delete sortable by last-heard</li>\n<li>Misc: Bypass error on fail-to-unload-contact when it's not there</li>\n<li>Misc: Docs &amp; test updates</li>\n</ul>\n"
    },
    {
      "version": "3.12.2",
      "name": "3.12.2",
      "datetime": "2026-04-21T20:14:04Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.12.2",
      "prerelease": false,
      "notes": "## [3.12.2] - 2026-04-21\n\n* Feature: Auto-disambiguate colliding LPP sensor names\n* Feature: Radio config import/export\n* Bugfix: Don't push stale firmware version/model on community MQTT\n* Misc: Expose env vars in debug blob\n* Misc: Longer linger for web push error\n* Misc: Docs, test, & CI/CD improvements",
      "notesHtml": "<h2>[3.12.2] - 2026-04-21</h2>\n<ul>\n<li>Feature: Auto-disambiguate colliding LPP sensor names</li>\n<li>Feature: Radio config import/export</li>\n<li>Bugfix: Don't push stale firmware version/model on community MQTT</li>\n<li>Misc: Expose env vars in debug blob</li>\n<li>Misc: Longer linger for web push error</li>\n<li>Misc: Docs, test, &amp; CI/CD improvements</li>\n</ul>\n"
    },
    {
      "version": "3.12.1",
      "name": "3.12.1",
      "datetime": "2026-04-20T04:21:56Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.12.1",
      "prerelease": false,
      "notes": "## [3.12.1] - 2026-04-19\n\n* Feature: Auto-evict/circular-buffer contact load mode (solves potential T-Beam issues)\n* Feature: Channel mute\n* Misc: HA Documentation improvements\n* Misc: Bump deps & update tests\n* Misc: Improve warnings around web push in untrusted contexts",
      "notesHtml": "<h2>[3.12.1] - 2026-04-19</h2>\n<ul>\n<li>Feature: Auto-evict/circular-buffer contact load mode (solves potential T-Beam issues)</li>\n<li>Feature: Channel mute</li>\n<li>Misc: HA Documentation improvements</li>\n<li>Misc: Bump deps &amp; update tests</li>\n<li>Misc: Improve warnings around web push in untrusted contexts</li>\n</ul>\n"
    },
    {
      "version": "3.12.0",
      "name": "3.12.0",
      "datetime": "2026-04-17T19:25:18Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.12.0",
      "prerelease": false,
      "notes": "## [3.12.0] - 2026-04-17\n\n* Feature: Web Push -- get your mesh notifications on a locked phone or when your browser is closed!\n* Feature: Add link to node from map display\n* Feature: Map layers\n* Feature: Better contact/channel selection for fanout\n* Feature: Add glittering status dot option\n* Feature: Add airtime math and average packets/min for repeater info displays\n* Feature: Offer multiple timing intervals for repeater telemetry aurofetch\n* Feature: Add ability to follow OS light/dark mode\n* Bugfix: Clear 100% of messages from radio in fallback mode; don't stop at 100\n* Bugfix: Don't stop DM retry just because the radio did not provide a radio ack on the wire\n* Bugfix: Don't strip outgoing colons on DMs or room servers\n* Bugfix: Patch statusbar overlap on PWA\n* Bugfix: Patch default map upload URL\n* Bugfix: Show learned path in routing override\n* Bugfix: Centralize on \"only means RF heard\" for first_seen/last_seen\n* Misc: Reduce frequency of time set failure chirping\n* Misc: QoL improvements for Home Assistant integration\n* Misc: Overhaul settings styling\n* Misc: Documentation + tests updates",
      "notesHtml": "<h2>[3.12.0] - 2026-04-17</h2>\n<ul>\n<li>Feature: Web Push -- get your mesh notifications on a locked phone or when your browser is closed!</li>\n<li>Feature: Add link to node from map display</li>\n<li>Feature: Map layers</li>\n<li>Feature: Better contact/channel selection for fanout</li>\n<li>Feature: Add glittering status dot option</li>\n<li>Feature: Add airtime math and average packets/min for repeater info displays</li>\n<li>Feature: Offer multiple timing intervals for repeater telemetry aurofetch</li>\n<li>Feature: Add ability to follow OS light/dark mode</li>\n<li>Bugfix: Clear 100% of messages from radio in fallback mode; don't stop at 100</li>\n<li>Bugfix: Don't stop DM retry just because the radio did not provide a radio ack on the wire</li>\n<li>Bugfix: Don't strip outgoing colons on DMs or room servers</li>\n<li>Bugfix: Patch statusbar overlap on PWA</li>\n<li>Bugfix: Patch default map upload URL</li>\n<li>Bugfix: Show learned path in routing override</li>\n<li>Bugfix: Centralize on \"only means RF heard\" for first_seen/last_seen</li>\n<li>Misc: Reduce frequency of time set failure chirping</li>\n<li>Misc: QoL improvements for Home Assistant integration</li>\n<li>Misc: Overhaul settings styling</li>\n<li>Misc: Documentation + tests updates</li>\n</ul>\n"
    },
    {
      "version": "3.11.3",
      "name": "3.11.3",
      "datetime": "2026-04-13T06:58:09Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.11.3",
      "prerelease": false,
      "notes": "## [3.11.3] - 2026-04-12\n\n* Bugfix: Add icons and screenshots for webmanifest\n* Bugfix: Use incoming DMs, not just outgoing, for recency ranking for preferential radio contact load",
      "notesHtml": "<h2>[3.11.3] - 2026-04-12</h2>\n<ul>\n<li>Bugfix: Add icons and screenshots for webmanifest</li>\n<li>Bugfix: Use incoming DMs, not just outgoing, for recency ranking for preferential radio contact load</li>\n</ul>\n"
    },
    {
      "version": "3.11.2",
      "name": "3.11.2",
      "datetime": "2026-04-13T05:48:19Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.11.2",
      "prerelease": false,
      "notes": "## [3.11.2] - 2026-04-12\n\n* Feature: Unread DMs are always at the top of the DM list no matter what\n* Bugfix: Webmanifest needs withCredentials",
      "notesHtml": "<h2>[3.11.2] - 2026-04-12</h2>\n<ul>\n<li>Feature: Unread DMs are always at the top of the DM list no matter what</li>\n<li>Bugfix: Webmanifest needs withCredentials</li>\n</ul>\n"
    },
    {
      "version": "3.11.1",
      "name": "3.11.1",
      "datetime": "2026-04-13T03:53:40Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.11.1",
      "prerelease": false,
      "notes": "## [3.11.1] - 2026-04-12\n\n* Feature: Home Assistant MQTT fanout\n* Feature: Add dummy service worker to enable PWA\n* Bugfix: DB connection plurality issues\n* Misc: Migration improvements\n* Misc: Search keys from beginning",
      "notesHtml": "<h2>[3.11.1] - 2026-04-12</h2>\n<ul>\n<li>Feature: Home Assistant MQTT fanout</li>\n<li>Feature: Add dummy service worker to enable PWA</li>\n<li>Bugfix: DB connection plurality issues</li>\n<li>Misc: Migration improvements</li>\n<li>Misc: Search keys from beginning</li>\n</ul>\n"
    },
    {
      "version": "3.11.0",
      "name": "3.11.0",
      "datetime": "2026-04-10T23:16:05Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.11.0",
      "prerelease": false,
      "notes": "## [3.11.0] - 2026-04-10\n\n* Feature: Radio health and contact data accessible on fanout bus\n* Feature: Local node radio stats (voltage etc.) on WS health bus\n* Feature: Battery indicator optional in status bar (configured in Local Settings)\n* Bugfix: Fix same-second same-message collision in room servers\n* Bugfix: Don't consume DM resend attempt if the radio was just busy\n* Bugfix: Assume that a same-second same-message same-first-byte-key DM is more likely an echo than them sending the same message\n* Bugfix: Multi-retry for flood scope restoration\n* Misc: Testing & documentation improvements",
      "notesHtml": "<h2>[3.11.0] - 2026-04-10</h2>\n<ul>\n<li>Feature: Radio health and contact data accessible on fanout bus</li>\n<li>Feature: Local node radio stats (voltage etc.) on WS health bus</li>\n<li>Feature: Battery indicator optional in status bar (configured in Local Settings)</li>\n<li>Bugfix: Fix same-second same-message collision in room servers</li>\n<li>Bugfix: Don't consume DM resend attempt if the radio was just busy</li>\n<li>Bugfix: Assume that a same-second same-message same-first-byte-key DM is more likely an echo than them sending the same message</li>\n<li>Bugfix: Multi-retry for flood scope restoration</li>\n<li>Misc: Testing &amp; documentation improvements</li>\n</ul>\n"
    },
    {
      "version": "3.10.0",
      "name": "3.10.0",
      "datetime": "2026-04-10T18:20:07Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.10.0",
      "prerelease": false,
      "notes": "## [3.10.0] - 2026-04-10\n\n* Feature: Add Arch AUR package\n* Feature: 72hr packet density view in statistics\n* Feature: Add warnings for event loop selection for MQTT on Windows startup\n* Bufix: Bump Apprise to 1.9.9 to fix Matrix bug\n* Misc: More memory-conscious on recent contact fetch\n* Misc: Fix statistics pane e2e test",
      "notesHtml": "<h2>[3.10.0] - 2026-04-10</h2>\n<ul>\n<li>Feature: Add Arch AUR package</li>\n<li>Feature: 72hr packet density view in statistics</li>\n<li>Feature: Add warnings for event loop selection for MQTT on Windows startup</li>\n<li>Bufix: Bump Apprise to 1.9.9 to fix Matrix bug</li>\n<li>Misc: More memory-conscious on recent contact fetch</li>\n<li>Misc: Fix statistics pane e2e test</li>\n</ul>\n"
    },
    {
      "version": "3.9.0",
      "name": "3.9.0",
      "datetime": "2026-04-07T05:13:53Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.9.0",
      "prerelease": false,
      "notes": "## [3.9.0] - 2026-04-06\n\n* Feature: Add hop counts to hop-width selection options\n* Feature: Show cached repeater telemetry inline in settings\n* Feature: Retain recent traces and make them click-to-re-run\n* Feature: Autofocus channel/DM textbox on desktop\n* Feature: Favorites on the radio are now imported as favorites\n* Bugfix: Be clearer on issue identification for missing HTTPS context in channel finder\n* Bugfix: Don't use sender timestamp for message sequence display\n* Bugfix: Function on subdomains happily\n* Misc: Be gentler, room s/cracker/finder/\n* Misc: Test and frontend correctness & test fixes\n* Misc: Don't repeat clock sync failure logs\n* Misc: Make warning in readme clearer about taking over the radio\n* Misc: Improve readme phrasings\n* Misc: Better y-axis selection for battery read-out\n* Misc: Provide clearer warning on docker setup without docker installed\n* Misc: Default visualizer stale pruning to on/5 minutes\n* Misc: Migrate favorites to better storage pattern\n* Misc: Provide dumper script for API + WS interfaces for prep for HA integration",
      "notesHtml": "<h2>[3.9.0] - 2026-04-06</h2>\n<ul>\n<li>Feature: Add hop counts to hop-width selection options</li>\n<li>Feature: Show cached repeater telemetry inline in settings</li>\n<li>Feature: Retain recent traces and make them click-to-re-run</li>\n<li>Feature: Autofocus channel/DM textbox on desktop</li>\n<li>Feature: Favorites on the radio are now imported as favorites</li>\n<li>Bugfix: Be clearer on issue identification for missing HTTPS context in channel finder</li>\n<li>Bugfix: Don't use sender timestamp for message sequence display</li>\n<li>Bugfix: Function on subdomains happily</li>\n<li>Misc: Be gentler, room s/cracker/finder/</li>\n<li>Misc: Test and frontend correctness &amp; test fixes</li>\n<li>Misc: Don't repeat clock sync failure logs</li>\n<li>Misc: Make warning in readme clearer about taking over the radio</li>\n<li>Misc: Improve readme phrasings</li>\n<li>Misc: Better y-axis selection for battery read-out</li>\n<li>Misc: Provide clearer warning on docker setup without docker installed</li>\n<li>Misc: Default visualizer stale pruning to on/5 minutes</li>\n<li>Misc: Migrate favorites to better storage pattern</li>\n<li>Misc: Provide dumper script for API + WS interfaces for prep for HA integration</li>\n</ul>\n"
    },
    {
      "version": "3.8.0",
      "name": "3.8.0",
      "datetime": "2026-04-04T02:40:09Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.8.0",
      "prerelease": false,
      "notes": "## [3.8.0] - 2026-04-03\n\n* Feature: Per-channel hop width override\n* Feature: Intervalized repeater telemetry collection\n* Feature: Auto-resend option for byte-perfect resends on no repeater echo\n* Feature: Attach RSSI/SNR to received packets\n* Feature: Add motion packet display to map\n* Feature: Map dark mode\n* Bugfix: Make DB indices more useful around capitalization\n* Misc: Bump required Python to 3.11\n* Misc: Performance, documentation, and test improvements\n* Misc: More yields during long radio operations\n* Misc: Dead code & crufty test removal\n* Misc: Remove all but stub frontend favorites migration for very very old versions",
      "notesHtml": "<h2>[3.8.0] - 2026-04-03</h2>\n<ul>\n<li>Feature: Per-channel hop width override</li>\n<li>Feature: Intervalized repeater telemetry collection</li>\n<li>Feature: Auto-resend option for byte-perfect resends on no repeater echo</li>\n<li>Feature: Attach RSSI/SNR to received packets</li>\n<li>Feature: Add motion packet display to map</li>\n<li>Feature: Map dark mode</li>\n<li>Bugfix: Make DB indices more useful around capitalization</li>\n<li>Misc: Bump required Python to 3.11</li>\n<li>Misc: Performance, documentation, and test improvements</li>\n<li>Misc: More yields during long radio operations</li>\n<li>Misc: Dead code &amp; crufty test removal</li>\n<li>Misc: Remove all but stub frontend favorites migration for very very old versions</li>\n</ul>\n"
    },
    {
      "version": "3.7.1",
      "name": "3.7.1",
      "datetime": "2026-04-03T01:05:00Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.7.1",
      "prerelease": false,
      "notes": "## [3.7.1] - 2026-04-02\n\n* Feature: Redact Apprise URLs to prevent sensitive information disclosure",
      "notesHtml": "<h2>[3.7.1] - 2026-04-02</h2>\n<ul>\n<li>Feature: Redact Apprise URLs to prevent sensitive information disclosure</li>\n</ul>\n"
    },
    {
      "version": "3.7.0",
      "name": "3.7.0",
      "datetime": "2026-04-03T00:33:53Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.7.0",
      "prerelease": false,
      "notes": "## [3.7.0] - 2026-04-02\n\n* Feature: Repeater battery tracking\n* Feature: Repeater info pane just like contacts\n* Feature: Make repeaters blockable\n* Feature: Add new-node advert blocking\n* Feature: Add bulk deletion interface\n* Feature: Bulk room add on alt+click of new channel button\n* Feature: More info in debug endpoint\n* Bugfix: Be more conservative around radio load limits and don't exceed radio-reported capacity\n* Misc: Default auto-DM decrypt to true\n* Misc: Reorganize some settings panes\n* Misc: Enable FK pragma\n* Misc: Various performance and correctness fixes\n* Misc: Correct TCP default port",
      "notesHtml": "<h2>[3.7.0] - 2026-04-02</h2>\n<ul>\n<li>Feature: Repeater battery tracking</li>\n<li>Feature: Repeater info pane just like contacts</li>\n<li>Feature: Make repeaters blockable</li>\n<li>Feature: Add new-node advert blocking</li>\n<li>Feature: Add bulk deletion interface</li>\n<li>Feature: Bulk room add on alt+click of new channel button</li>\n<li>Feature: More info in debug endpoint</li>\n<li>Bugfix: Be more conservative around radio load limits and don't exceed radio-reported capacity</li>\n<li>Misc: Default auto-DM decrypt to true</li>\n<li>Misc: Reorganize some settings panes</li>\n<li>Misc: Enable FK pragma</li>\n<li>Misc: Various performance and correctness fixes</li>\n<li>Misc: Correct TCP default port</li>\n</ul>\n"
    },
    {
      "version": "3.6.7",
      "name": "3.6.7",
      "datetime": "2026-04-01T06:05:03Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.6.7",
      "prerelease": false,
      "notes": "## [3.6.7] - 2026-03-31\n\n* Misc: Remove armv7 (for now)",
      "notesHtml": "<h2>[3.6.7] - 2026-03-31</h2>\n<ul>\n<li>Misc: Remove armv7 (for now)</li>\n</ul>\n"
    },
    {
      "version": "3.6.3",
      "name": "3.6.3",
      "datetime": "2026-03-31T04:58:24Z",
      "url": "https://github.com/jkingsman/Remote-Terminal-for-MeshCore/releases/tag/3.6.3",
      "prerelease": false,
      "notes": "## [3.6.3] - 2026-03-30\n\nFeature: Add multi-byte trace\nFeature: Show node name on discovered node if we know it\nFeature: Add docker installation script\nFeature: Add historical noise floor to stats\nFeature: Add trace tool\nBugfix: 100x performance on statistics endpoint with indices and better queries\nMisc: Performance and correctness improvements for backend-of-the-frontend\nMisc: Reorganize scripts",
      "notesHtml": "<h2>[3.6.3] - 2026-03-30</h2>\n<p>Feature: Add multi-byte trace\nFeature: Show node name on discovered node if we know it\nFeature: Add docker installation script\nFeature: Add historical noise floor to stats\nFeature: Add trace tool\nBugfix: 100x performance on statistics endpoint with indices and better queries\nMisc: Performance and correctness improvements for backend-of-the-frontend\nMisc: Reorganize scripts</p>\n"
    }
  ],
  "changelogSource": "github",
  "changelogUpdatedAt": "2026-06-23T20:09:30.759Z"
}
