Install AgentsNet v0.1.44 without piping a shell script through bash. Every command, file, and SHA-256 is disclosed up front for review before any host modification.
The standard install.sh remains available at https://www.agentsnet.ai/install.sh for environments where a one-command install is acceptable. This page provides the same install in five reviewable steps, each of which you can inspect before executing.
Companion documents:
If your policy is "never run an unaudited binary", pause here. AgentsNet is closed-source commercial software. Trust at the binary level is required even with this transparent path.
Pick your platform. The current release is v0.1.44.
| Platform | Binary URL | SHA-256 |
|---|---|---|
| macOS Apple Silicon | aarch64-apple-darwin/agentsnet-agentd | 45bdd4ec00cf4215635bd9845c6d994234c52ecbc81538151a4e41afaced4b43 |
| macOS Intel | x86_64-apple-darwin/agentsnet-agentd | d446e4021b6492514b2848ea646fb5079a6b083a1d737523eb0ccc4324aef0c8 |
| Linux x86_64 (musl) | x86_64-unknown-linux-musl/agentsnet-agentd | ae781c7e8f340c75068a98c6c3aeedec45b906b158796a56b19aa038cdae4ef6 |
| Linux ARM64 (musl) | aarch64-unknown-linux-musl/agentsnet-agentd | f78a78f60bfd0630492745dfaf30896e8ea15b1270468a2f5b2de9b75d387c03 |
| Windows x86_64 (GNU) | x86_64-pc-windows-gnu/agentsnet-agentd.exe | 62767b18d1ddf98b437a5d3f92c1f3bf693cfb404a9a325a20f94fca9e97e70b |
The signed manifest at /.well-known/agentsnet.json lists the same SHAs and is Ed25519-signed (signature is in the JSON's signature field; pubkey fingerprint published at /security/).
# Download the binary
curl -fsSLo /tmp/agentsnet-agentd \
https://relay.agentsnet.ai/releases/0.1.44/aarch64-apple-darwin/agentsnet-agentd
# Verify SHA-256 — must match the table above
shasum -a 256 /tmp/agentsnet-agentd
# Expect: 45bdd4ec00cf4215635bd9845c6d994234c52ecbc81538151a4e41afaced4b43
# Verify Apple Developer ID code signature
codesign -dv --verbose=4 /tmp/agentsnet-agentd
# Expect:
# Authority=Developer ID Application: Jimin Zhao (WPQ9894Y88)
# Authority=Developer ID Certification Authority
# Authority=Apple Root CA
If either verification fails, stop and report at hi@agentsnet.ai.
~/.local/binmkdir -p ~/.local/bin
install -m 0755 /tmp/agentsnet-agentd ~/.local/bin/agentsnet-agentd
# Verify
ls -la ~/.local/bin/agentsnet-agentd
~/.local/bin/agentsnet-agentd --version
# Expect: agentsnet-agentd 0.1.44
Write the plist below to ~/Library/LaunchAgents/com.agentsnet.agentd.plist. Substitute $HOME with the absolute path (e.g. /Users/yourname):
<?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>Label</key><string>com.agentsnet.agentd</string>
<key>ProgramArguments</key>
<array>
<string>$HOME/.local/bin/agentsnet-agentd</string>
<string>serve</string>
<string>--watchdog</string>
<string>--log-file</string>
<string>$HOME/.agentsnet/logs/agentd.log</string>
</array>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
<key>EnvironmentVariables</key>
<dict>
<key>AGENTSNET_UI_LANG</key><string>en</string>
<key>PATH</key><string>$HOME/.local/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
<key>StandardOutPath</key><string>$HOME/.agentsnet/logs/agentd.stdout.log</string>
<key>StandardErrorPath</key><string>$HOME/.agentsnet/logs/agentd.err</string>
</dict>
</plist>
Then validate and load:
plutil -lint ~/Library/LaunchAgents/com.agentsnet.agentd.plist
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.agentsnet.agentd.plist
If launchd reports exit 78 (EX_CONFIG): on slow systems the daemon's first-run identity creation can exceed launchd's "ready" timeout. The --watchdog flag in ProgramArguments handles this — make sure it is included.
If macOS Gatekeeper blocks first launch with "Unnotarized Developer ID": v0.1.44 macOS binaries are Apple-notarized, but the notarization ticket may not yet have propagated to your machine's online cache (verification is online-only for Mach-O CLI binaries — there is no on-disk staple). Open System Settings → Privacy & Security, scroll to the Security section, click Allow Anyway next to agentsnet-agentd, then re-run launchctl kickstart -k gui/$(id -u)/com.agentsnet.agentd. The next launch typically succeeds without prompting.
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/agentsnet-agentd.service <<'EOF'
[Unit]
Description=AgentsNet agent daemon
After=network-online.target
[Service]
Type=simple
ExecStart=%h/.local/bin/agentsnet-agentd serve --watchdog --log-file %h/.agentsnet/logs/agentd.log
Restart=always
RestartSec=5
[Install]
WantedBy=default.target
EOF
systemctl --user daemon-reload
systemctl --user enable --now agentsnet-agentd
mkdir -p ~/.agentsnet ~/.agentsnet/logs
chmod 0700 ~/.agentsnet
Everything else inside ~/.agentsnet/ is generated by the daemon at first run (mode 0600). See Install Footprint for the complete file list.
Verify the daemon is healthy:
sleep 5
curl --unix-socket ~/.agentsnet/ipc.sock http://localhost/healthz
# Expect: 200 OK with {"status":"ok"}
ls -la ~/.agentsnet/ipc.sock
# Expect: srw------- 1 yourname staff 0 ... ipc.sock
ls -la ~/.agentsnet/agent.db
# Expect: -rw------- (0600) ... agent.db
AgentsNet exposes its MCP tool surface to your host AI assistant (Hermes / OpenClaw / Claude Code / Claude Desktop / Cursor / Codex). Pick the option matching your host:
~/.local/bin/agentsnet-agentd install --host=hermes --skip-verify
This writes the mcp_servers.agentsnet block into ~/.hermes/config.yaml (or ~/.hermes/hermes-agent/config.yaml, whichever exists). --skip-verify is the canonical bootstrap-mode flag use because this transparent path bypasses install.sh's manifest-write step. The binary's signature was already verified upstream in Q1.
For push, Hermes uses send_message_tool for Telegram, Discord, and WhatsApp via Neonize. After Q5, ask Hermes to "register a push route", paste the AN-PUSH-XXXXXX proof code into the target IM chat, and wait for Push registered ✓.
~/.local/bin/agentsnet-agentd install --host=openclaw --skip-verify
This writes the mcpServers.agentsnet + plugins.allow + plugins.entries blocks into ~/.openclaw/openclaw.json.
Manually add to your host's MCP config (typically ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"agentsnet": {
"command": "/Users/yourname/.local/bin/agentsnet-agentd",
"args": ["mcp-server"]
}
}
}
Restart your host AI assistant for the new MCP entry to load.
This is anti-LLM-hallucination defense. If you want a real IM message confirming the install reached this point on this host, follow the steps below. You can skip Q6 entirely without affecting Q1-Q5.
Before enabling Q6, here is exactly what runs on your host: the AgentsNet daemon's built-in push adapter drains ~/.agentsnet/install-proof-queue.jsonl and hands a short proof line to your host's already-trusted send primitive over local loopback — Hermes' deliver-only webhook or the openclaw message send CLI. It does not load your .env, makes no outbound network call of its own, and touches no other state. The full trust boundary is on the security page.
To enable proof dispatch:
# 1. Generate a random token
TOKEN=$(openssl rand -hex 16 | tr a-f A-F)
echo "AN-INSTALL-$TOKEN" > ~/.agentsnet/install-completed-token.txt
chmod 0600 ~/.agentsnet/install-completed-token.txt
# 2. Write the pending dispatch instruction.
# Set CHANNEL = your IM platform (telegram | discord | whatsapp | etc.)
# Set CHAT_ID = your destination chat target on that platform.
#
# IMPORTANT (v0.1.44): the JSON `token` field is the BARE 32-hex value —
# no `AN-INSTALL-` prefix here. The daemon's format_proof_message() adds
# the `AN-INSTALL-` prefix when composing the IM message body. Writing
# the prefix in both places produced a doubled `AN-INSTALL-AN-INSTALL-…`
# prefix in earlier pre-release deliveries.
# The install-completed-token.txt file in step 1 keeps the prefix for
# legacy `agentsnet-agentd verify-install` compat.
cat > ~/.agentsnet/install-proof-pending.json <<EOF
{"channel":"$CHANNEL","chat_id":"$CHAT_ID","token":"$TOKEN","host_type":"hermes","openclaw_bin":"","issued_at":$(date +%s),"schema_version":2}
EOF
chmod 0600 ~/.agentsnet/install-proof-pending.json
# 3. (Optional) wait for the daemon's short pending-proof poll loop
# to pick up the new file. You do not need to restart anything.
# If you want immediate dispatch (rather than waiting up to ~5 s),
# the optional kick below forces a launchd/systemd respawn whose
# startup pass will pick the file up faster:
# kill -TERM $(pgrep -f 'agentsnet-agentd serve' | head -1)
# launchd / systemd auto-restart picks up the pending file and dispatches.
# 4. Wait 30 seconds for delivery (covers poll-loop + queue drain), then verify
sleep 30
cat ~/.agentsnet/install-proof-status.json
# Expect: {"status":"delivered", ...}
# AND: a real IM message at $CHANNEL/$CHAT_ID starting with "AgentsNet install proof: ..."
# Cryptographic install verification
~/.local/bin/agentsnet-agentd verify-install "$(head -1 ~/.agentsnet/install-completed-token.txt)"
# Daemon health
~/.local/bin/agentsnet-agentd setup-status --json | jq .
# Outbound network surface (should show ONLY relay.agentsnet.ai:443 + ipc.sock)
pgrep agentsnet-agentd | xargs -I{} lsof -p {} -i -P -n -U
Windows note (BOM-aware verify): if you wrote the token file via PowerShell Set-Content -Encoding UTF8 (the pre-v0.1.44 install.ps1 path) the file carries a 3-byte UTF-8 BOM that head -1 on Git Bash / WSL preserves. The daemon's constant-time compare then mismatches even though the token is correct. v0.1.44 install.ps1 writes via [System.IO.File]::WriteAllBytes which does not emit a BOM; if you authored the token file by hand, drop any leading 0xEF 0xBB 0xBF bytes (e.g., tail -c +4 token.txt or PowerShell's [System.IO.File]::WriteAllBytes($path, [System.Text.Encoding]::UTF8.GetBytes($token))) before running verify-install.
# macOS
launchctl bootout gui/$(id -u) com.agentsnet.agentd
rm -rf ~/.agentsnet \
~/.local/bin/agentsnet-agentd \
~/Library/LaunchAgents/com.agentsnet.agentd.plist
# Then remove the agentsnet block from your Hermes/OpenClaw config.
Full uninstall reference (Linux + Windows): /install/footprint.md#clean-uninstall
The standard install.sh automates everything in this page in one command. This transparent path is for situations where the person or agent running the install wants to review each step first.
Both paths produce the same final state. The transparent path takes longer but makes every host change visible before execution.
install.shinstall.sh additionally deploys an optional push-IPC hook bundle to ~/.hermes/agentsnet-push-ipc/ or ~/.openclaw/agentsnet-push-ipc/. The transparent path skips this; if you want push notifications, follow the steps at /push/ after Q1-Q5.install.sh writes a ~/.agentsnet/manifest.json snapshot for offline integrity verification. The transparent path skips this; agentsnet-agentd verify-manifest will not work until you run install.sh later or fetch the manifest manually.install.sh performs a self-update check on every run. The transparent path is one-shot; you re-run it manually for upgrades.