A desktop browser for decentralized mesh networks. Browse websites over Reticulum using the rweb:// protocol - no internet required.
MeshBrowser lets you browse web content over mesh networks like Reticulum. It works like a regular web browser, but instead of connecting to the internet, it uses decentralized mesh networking protocols.
Key Features:
- Familiar browser interface with address bar and navigation
- Native
rweb://protocol support for Reticulum mesh networking - Automatic server discovery on your network
- Full support for HTML, CSS, JavaScript, and images
- No per-site configuration - point it at a destination hash and browse
You'll need the following before running MeshBrowser:
MeshBrowser speaks Reticulum from inside the app itself, but it needs a local Reticulum daemon to own the actual network interfaces (radios, TCP links, and so on). Install Reticulum and start the daemon:
pipx install rns # or: pip install rns
rnsdMake sure share_instance is enabled in ~/.reticulum/config — it is on by
default:
[reticulum]
share_instance = Yes
MeshBrowser attaches to that shared instance over a local socket, so whatever interfaces you have configured — LoRa, TCP, I2P — work automatically.
Download and install Node.js from nodejs.org
-
Clone or download this repository
-
Install Node.js dependencies:
npm install
Start the application in development mode:
npm run devThe browser window will open automatically and connect to your running rnsd.
Enter a Reticulum address in the address bar:
rweb://abc123def456789.../index.html
The format is: rweb://[32-character-hash]/path/to/file
- Go button - Navigate to the entered URL
- Back/Forward - Standard browser navigation
- Status bar - Shows network connectivity and request status
To browse content on the Reticulum network, you'll need:
- RServer addresses - Reticulum servers hosting web content
- Network connectivity - Active Reticulum network interface
Here are a few sites to get you started:
- CORE —
rweb://8976c1b2ae6b60fd1a09a83a6e64ff93/ - Digital Freedom —
rweb://a5ce2b0dd7e4ecb7057936890feefbbe/ - Digital Sovereignty —
rweb://ffc8d3472451090677fd446837e384ff/ - rSpace over mesh —
rweb://5d676f5732e28dd392454763856bf00d/ - lost-ti.me —
rweb://16ce45524fef917e1a8a1d6ff8d2635d/ - Ingen Konge —
rweb://2f7f25d16d5d16dece60f5fbe796d545/
These are personal sites belonging to people on the network — listing them here isn't an endorsement of what's on them. The exception is CORE, which I run for a radio meetup.
Note that there isn't much content on the network yet — it's early days! But you can host some content and help with that. Check out RServer - a web server for Reticulum.
Check the Reticulum documentation for setting up network interfaces and discovering servers.
- Verify
rnsdis running:rnsdin another terminal, or checkpgrep rnsd - Verify
share_instance = Yesin~/.reticulum/config - If you run multiple shared instances, check that
instance_namematches
The destination hasn't announced itself on the network yet, so its identity isn't known locally. Wait for an announce and try again.
- Verify your Reticulum network interface is configured and active
- Check that the destination hash is correct (32 hex characters)
- Ensure you have network connectivity to the destination
To work on MeshBrowser development:
- Read
CLAUDE.mdfor architecture and development context - The codebase is entirely Electron + electron-vite + TypeScript
- Make changes and test with
npm run dev
- Reticulum: reticulum.network
- RNS Documentation: markqvist.github.io/Reticulum
- RServer: github.com/guyroyse/rserver