Install on macOS
This guide covers installing Astromesh Node on macOS 13 (Ventura) and later, on both Apple Silicon (arm64) and Intel (x86_64).
Prerequisites
Section titled “Prerequisites”| Requirement | Version | Check |
|---|---|---|
| macOS | 13 (Ventura)+ | sw_vers -productVersion |
| Architecture | arm64 or x86_64 | uname -m |
| Python | 3.12+ (bundled by the installer) | python3 --version |
| Network | Outbound to LLM provider or local Ollama | — |
Download
Section titled “Download”Download the appropriate archive for your architecture from GitHub Releases.
Apple Silicon (M1/M2/M3/M4):
curl -LO https://github.com/monaccode/astromesh/releases/latest/download/astromesh_latest_darwin_arm64.tar.gzIntel Mac:
curl -LO https://github.com/monaccode/astromesh/releases/latest/download/astromesh_latest_darwin_amd64.tar.gzInstall
Section titled “Install”Extract and run the installer script:
tar -xzf astromesh_latest_darwin_arm64.tar.gzcd astromesh_latest_darwin_arm64sudo ./install.shThe installer:
- Copies
astromeshdandastromeshctlto/usr/local/bin/ - Creates the
_astromeshsystem user (no login shell) - Creates configuration and data directories
- Installs the launchd plist to
/Library/LaunchDaemons/com.astromesh.astromeshd.plist
Expected output:
Installing Astromesh Node v0.18.0...Creating system user '_astromesh'...Creating directories... /etc/astromesh/ /var/lib/astromesh/ /var/log/astromesh/Installing binaries to /usr/local/bin/...Installing Python virtual environment...Installing launchd daemon...astromesh installed successfully.
Run 'sudo astromeshctl init' to configure.Verify the installation:
astromeshctl versionExpected output:
Astromesh Node v0.18.0Daemon: /usr/local/bin/astromeshdCLI: /usr/local/bin/astromeshctlPython: 3.12.xPlatform: darwin/arm64Gatekeeper (macOS Security)
Section titled “Gatekeeper (macOS Security)”On first run, macOS Gatekeeper may block the binaries because they are not from the Mac App Store. To allow them:
sudo xattr -d com.apple.quarantine /usr/local/bin/astromeshdsudo xattr -d com.apple.quarantine /usr/local/bin/astromeshctlOr open System Settings > Privacy & Security and click “Allow Anyway” after the first blocked execution.
Configure
Section titled “Configure”Run the interactive wizard:
sudo astromeshctl initFor a non-interactive setup:
sudo astromeshctl init --profile full --provider ollama --model llama3.1:8b --non-interactiveThis creates:
/etc/astromesh/runtime.yaml/etc/astromesh/providers.yaml/etc/astromesh/agents/default.agent.yaml
See Configuration for the full schema.
Start the Service
Section titled “Start the Service”Load and start the launchd daemon:
sudo launchctl load /Library/LaunchDaemons/com.astromesh.astromeshd.plistTo stop:
sudo launchctl unload /Library/LaunchDaemons/com.astromesh.astromeshd.plistThe daemon is configured with KeepAlive = true — launchd restarts it automatically if it exits.
To enable start-at-boot (the plist is already in /Library/LaunchDaemons/, so it loads at boot by default once loaded).
Verify
Section titled “Verify”astromeshctl statuscurl http://localhost:8000/v1/healthLog Access
Section titled “Log Access”Logs are written to /var/log/astromesh/:
# Follow live logstail -f /var/log/astromesh/astromeshd.log
# View errorsgrep ERROR /var/log/astromesh/astromeshd.log
# System console logs (launchd)log show --predicate 'process == "astromeshd"' --last 1hFilesystem Paths
Section titled “Filesystem Paths”| Path | Purpose |
|---|---|
/etc/astromesh/ | Configuration files |
/var/lib/astromesh/ | Persistent state (memory, models) |
/var/log/astromesh/ | Log files |
/usr/local/bin/astromeshd | Daemon binary |
/usr/local/bin/astromeshctl | CLI binary |
/Library/LaunchDaemons/com.astromesh.astromeshd.plist | launchd unit |
Upgrade
Section titled “Upgrade”curl -LO https://github.com/monaccode/astromesh/releases/latest/download/astromesh_latest_darwin_arm64.tar.gztar -xzf astromesh_latest_darwin_arm64.tar.gzcd astromesh_latest_darwin_arm64sudo ./install.shThe installer unloads and reloads the launchd daemon automatically.
Uninstall
Section titled “Uninstall”sudo launchctl unload /Library/LaunchDaemons/com.astromesh.astromeshd.plistsudo rm /Library/LaunchDaemons/com.astromesh.astromeshd.plistsudo rm /usr/local/bin/astromeshd /usr/local/bin/astromeshctlTo remove all configuration and data:
sudo rm -rf /etc/astromesh /var/lib/astromesh /var/log/astromeshsudo dscl . -delete /Users/_astromeshNext Steps
Section titled “Next Steps”- Configuration — Customize runtime.yaml and profiles
- CLI Reference — Full astromeshctl reference
- Troubleshooting — Common macOS issues