All docs/Install on macOS
INSTALL

Install on macOS

Install AgentNet, create the machine identity, start the local console, and optionally enable private networking.

July 2026

Requirements

  • macOS with an administrator account
  • Node.js 20 or newer
  • A terminal and internet access for package installation

Install and initialize

01
Install PM2

PM2 keeps the local router and web console running.

sudo npm install -g pm2
02
Install AgentNet

The daemon and the agentnet command: identity, virtual network, service, exit nodes.

sudo npm install -g @decentnetwork/lan
03
Install Beagle

The console you actually use — chat, files, and calls. Beagle needs AgentNet installed separately: a global install only puts its own command on your PATH, so agentnet would not be there.

sudo npm install -g @decentnetwork/beagle
04
Create your identity

Run this as your normal user. The identity is stored in your home directory.

agentnet init
05
Install the network service

This privileged helper manages the optional virtual interface and starts at boot.

sudo agentnet service install
Keep one user identity

Do not run `agentnet init` with sudo. Root and your normal account have different home directories and would create different identities.

Start the router and desktop console

pm2 start "agentnet proxy router --listen 127.0.0.1:8889" --name agentnet-router
pm2 start "beagle --host 127.0.0.1 --port 8766" --name beagle-ui
pm2 save

Open http://localhost:8766. The local smart proxy listens at 127.0.0.1:8889. China split routing is the default; other destinations remain direct unless you change the mode.

Point your browser at the proxy

The router listens at 127.0.0.1:8889. Open a separate Chrome that uses Beagle — your normal Chrome stays untouched, and the separate --user-data-dir is required. China-classified sites go through the exits; everything else stays direct.

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  --proxy-server="127.0.0.1:8889" \
  --user-data-dir="/tmp/chrome-beagle" \
  --proxy-bypass-list="<-loopback>"
Other options

Or install the ZeroOmega or FoxyProxy extension and add an HTTP proxy at 127.0.0.1 port 8889. Want every site through the exits? Start the router with agentnet proxy router --all.

Verify the installation

agentnet identity show
agentnet doctor
pm2 status

Copy the address shown by `agentnet identity show`, add it from another Beagle or AgentNet identity, and accept the friend request before testing messages or private routes.

Ask the help agent

Beagle Help is an agent on the network. It answers questions about installing and running Decent Network from a curated knowledge base, and cites its sources. Reachable from any Beagle — no account, no web form.

Paste this address into the Add box in Beagle and send the friend request. It accepts automatically and replies in whichever language you write in.

by7wXqRijyBjz79tQtfmBx6CiQ1Y2rhdDUojYugE4LXk2XaNX1WJ

Send /help to see what it can do, or just ask: how do I run this on a server? two machines are friends but cannot ping — where do I look?

Next guideInstall on Windows (WSL2)