Skip to content

feat: surface nearby LAN devices in Connect screen via Syncthing local discovery #23

Description

@gitcoder89431

Summary

Syncthing already discovers devices on the local network via multicast UDP (port 21027) and exposes them at /rest/system/discovery. meshd never reads this endpoint, so users have to manually exchange device IDs even when both machines are on the same WiFi.

What Syncthing already knows

/rest/system/discovery returns every device Syncthing has seen locally, with their LAN addresses:

{
  "O2GLNK3-...": {
    "addresses": [
      "tcp://192.168.1.153:22000",
      "quic://192.168.1.153:22000",
      ...
    ]
  }
}

This includes unpaired devices — Syncthing hears their multicast announcements but meshd never surfaces them.

Proposed UX

In the Connect screen, add a Nearby section above Pending:

Connect //////////////////////////////////////////////////////////////
This device
  leaf-mac  A7OSXBE-...

Nearby — on your local network
  EN3JEAY   192.168.1.153    [a] pair

Approved
  mini-host  ● Online

Pending
  (none)
  • Poll /rest/system/discovery and cross-reference against already-paired device IDs
  • Devices with a LAN address (192.168.x.x, 10.x.x.x, 172.16-31.x.x, fe80::) that aren't already paired show up as Nearby
  • Press a to pair — calls AcceptDevice same as accepting a pending device
  • No ID exchange needed when both machines are on the same network

Why this matters

This is the same zero-config discovery LocalSend uses (mDNS/multicast, TTL-limited to the local subnet). Syncthing is already doing the hard part — meshd just needs to expose it. Pairing two machines on the same LAN should be: open meshd on both, press a, done.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions