I had given up on getting Node-RED to run properly on my Mac after upgrading to Sequoia. The new Mac security protections that prevent local network access unless explicitly granted to applications is a real nightmare.
I recently asked perplexity.ai for help. Using its basic model, it gave me some suggestions that did not work. I switched to using its "research" model, though, and hit pay dirt.
I finally settled on this workaround and thought I would share it here in case it's of use to other Sequoia sufferers.
Follow this procedure to enable node red to access the local network:
Steps:
- Locate Node-RED’s installation path:
which node-red # Typically /usr/local/bin/node-red
- Create a wrapper app bundle:
sudo su
mkdir -p /Applications/Node-RED.app/Contents/MacOS
cat > /Applications/Node-RED.app/Contents/Info.plist <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>node-red</string>
<key>CFBundleIdentifier</key>
<string>org.node-red</string>
<key>CFBundleName</key>
<string>Node-RED</string>
</dict>
</plist>
EOF
ln -s $(which node-red) /Applications/Node-RED.app/Contents/MacOS/
exit
open /Applications/Node-RED.app
Now find the settings pop-up and authorise local network access for “node”.
This gives Node-RED a stable bundle ID, allowing macOS to track its permissions.
You can terminate Node-RED and then use your normal method of starting it. It should now be able to freely access the local network.
I hope this is helpful to someone.