Install on macOS
What you need
- A Mac with macOS 11 (Big Sur) or newer. Macs with Apple’s own chips (M1 and later) are tested. Macs with an Intel processor should work, but nobody has tried one yet.
- Your normal account. Do not use
sudoto run the installer. - An internet connection for the install only (it downloads the software once). Using the network afterwards does not need one.
Nothing else. The installer brings its own copy of Python, so it does not touch the one on your Mac.
Steps
Open Terminal. It is in Applications → Utilities, or press ⌘ Space, type
Terminaland press Return.Copy this whole line, paste it into Terminal, and press Return:
curl -fsSL https://codeberg.org/permanet/rns-installer/releases/download/v0.1.8/rns-installer-macos.sh | bashThis downloads the installer, checks that the download is complete and unchanged, and starts it.
Answer the questions. Press Return to accept the answer shown in brackets.
Question What to answer Carry traffic for other people’s devices? No for a laptop. Yes only for a Mac that stays on and logged in, which helps the network. Go online now? No is fine. You can switch later: see Going online on a Mac. The installer shows a plan of everything it will do. Read it. Type
yand press Return to go ahead, ornto stop.If it asks for your password, type the password you use to log in to this Mac and press Return. The letters do not appear while you type. That is normal. See The firewall for why it may ask.
It finishes by checking that Reticulum runs and prints its status. You should see a line with
Status : Upand, after a few minutes, other devices listed under your local network.
Reticulum now starts by itself whenever you log in. It only runs while you are logged in. macOS shows a notice, App Background Activity: “python” can run in the background. That is Reticulum. Leave it allowed.
If you stop at the plan, nothing is set up, but the downloaded installer stays in
~/.local/share/permanet-rns-installer. You can delete that folder.
The firewall
The macOS firewall is off on a new Mac. If you turned it on, it silently blocks other devices from reaching Reticulum, so no one on your network shows up. The plan tells you when this is the case, and the installer adds a rule that lets Reticulum’s Python through. That is why it asks for your password.
If your account is not an administrator (a “Standard” account, see System Settings → Users & Groups), the
installer cannot change the firewall. It prints two commands that start with
sudo /usr/libexec/ApplicationFirewall/socketfilterfw. Ask the person with the administrator account to log in
to their account, open Terminal there, and run both commands. Reticulum picks up the change by itself within a
minute or two. Nothing needs restarting.
Open MeshChatX
Open MeshChatX from the Applications folder in your home folder (in Finder: Go → Home → Applications), or
press ⌘ Space and type MeshChatX. You can also type meshchat in Terminal.
MeshChatX opens in your web browser. The page comes from your own Mac, and other computers cannot open it. To stop
it: meshchat --stop.
On a Mac with an Intel processor the installer sets up MeshChat instead, the app MeshChatX is based on (MeshChatX needs a part that isn’t available for Intel Macs). It works the same way, without chat rooms; where these guides say MeshChatX, read MeshChat.
What you will see there, and how to check that everything runs, is on First run.
Going online on a Mac
Going online works the same as on Linux, with the command permanet-rns --online: see
Going online. On a Mac, the I2P router (i2pd) comes from Homebrew, the usual tool for
installing software on macOS:
- If your Mac does not have Homebrew yet, the installer installs it first, with Homebrew’s own installer. That installer asks for your password, then says Press RETURN/ENTER to continue. Press Return.
- It may then download Apple’s Command Line Tools. This is a large download and can take 10 minutes or more.
- At the end Homebrew lists Next steps for adding it to your shell. You can skip them: the installer finds Homebrew by itself.
- Homebrew’s usage reports are turned off.
- macOS shows a notice that “i2pd” can run in the background. Leave it allowed.
- If the firewall is on, macOS asks whether i2pd may accept incoming network connections. Click Allow.
Homebrew needs an administrator account. On a Standard account, the installer stops and says so. An administrator
can install Homebrew and i2pd first (brew install i2pd), and then the installer uses that i2pd.
Download it yourself instead
If you prefer to look at the files before anything runs:
Download the release and its checksum into one folder.
Open Terminal in that folder and check the download. It should say
OK:shasum -a 256 -c rns-installer-0.1.8.tar.gz.sha256Unpack it and see the plan. This changes nothing:
tar xf rns-installer-0.1.8.tar.gz cd rns-installer-0.1.8/installers/macos bash install.sh --dry-runRun
bash install.shto install. Keep the folder, becausepermanet-rnsruns the installer from it.
The source code is at codeberg.org/permanet.
What it changes
Everything lives in your own account. The installer only asks for your password when it needs to change something outside it, and it shows each one in the plan first:
- the firewall rule, if the firewall is on,
- Homebrew and i2pd, when you go online.
| Where | What |
|---|---|
~/.local/share/permanet-rns/ | The software (with its own Python), MeshChatX, logs and your answers |
~/.local/share/permanet-rns-installer/ | The installer, used by permanet-rns |
~/.local/bin/ | Commands such as meshchat, rnstatus, nomadnet and permanet-rns |
~/Applications/MeshChatX.app | Opens MeshChatX in your browser |
~/.reticulum/ | Your Reticulum settings and identity |
~/.meshchat/ | Your MeshChatX identity (kept here, where earlier MeshChat installs put it) |
~/.meshchatx/ | MeshChatX’s messages and settings |
~/Library/LaunchAgents/ | Starts Reticulum (and i2pd, when online) when you log in |
~/.zshrc | One line, so new Terminal windows find the commands |
If you already have a Reticulum setup, the installer keeps a copy of the old settings next to the new ones
(a file named config.backup- followed by the date). It will not run while another program, such as MeshChatX
or Sideband, is already running Reticulum: quit it first, then run the installer again.
Uninstall
permanet-rns --uninstallThis removes everything in the table above except your identity and messages, and removes the firewall rule
(it asks for your password, or on a Standard account prints the command for an administrator). What stays,
and how to delete it for good, is on Uninstall. Homebrew and i2pd stay installed. To remove
i2pd: brew uninstall i2pd.
If something does not work
A command is “not found”. Open a new Terminal window. Only new windows read the line the installer added.
If that does not help, use the full path, for example ~/.local/bin/rnstatus.
No other devices show up. Give it a few minutes. Check that both devices are on the same network and that a VPN is off. If the firewall is on, check that Reticulum is allowed through it:
/usr/libexec/ApplicationFirewall/socketfilterfw --listappsLook for a line ending in permanet-rns/python/bin/python3.13, followed by Allow incoming connections. If it
says Block, or the line is missing, run the installer again (permanet-rns --offline, or --online if you are
online) and it adds the rule.
Restart Reticulum. This stops MeshChatX, restarts Reticulum, and opens MeshChatX again:
meshchat --stop
launchctl kickstart -k gui/$(id -u)/xyz.permanet.rnsd
meshchatThe I2P links stay down. Wait up to 10 minutes the first time. Then restart i2pd:
launchctl kickstart -k gui/$(id -u)/xyz.permanet.i2pdLogs are in ~/.local/share/permanet-rns/logs/ (rnsd.log, meshchat.log, i2pd.log), and Reticulum’s own
log is ~/.reticulum/logfile. Logs can contain the addresses of nodes you talked to. Check what is in them before
you share them with anyone.
More: Troubleshooting.