Setting up OpenClaw on macOS with a unified AI provider endpoint

OpenClaw macOS installation walkthrough
A developer documented their weekend project getting OpenClaw running on macOS, sharing specific setup steps and troubleshooting insights that weren't obvious from the documentation.
System requirements and installation
The setup requires Node.js 24 or 22.16+. The developer noted that Node 20 from an older project produced unhelpful error messages. Installation options include:
- Homebrew:
brew install openclaw-cli - Official installer script (choose one method, not both)
After installation, run the onboarding wizard:
openclaw onboardProvider configuration
The developer moved from separate OpenAI and Anthropic keys to a unified provider endpoint using ZenMux. During onboarding, they selected "Custom Provider" then "OpenAI-compatible" and entered the base URL and API key.
Post-installation configuration can be done in the JSON5 config file at ~/.openclaw/openclaw.json:
// ~/.openclaw/openclaw.json
{
models: {
mode: "merge",
providers: {
"zenmux": {
baseUrl: "<your provider's base URL>/v1",
apiKey: "YOUR_API_KEY",
api: "openai-responses",
},
},
},
}Verification and background operation
To verify the setup:
openclaw doctorchecks config, connectivity, and Node versionopenclaw models listshows available modelsopenclaw agent --local --agent main --message "Hello, respond with just Hi"for a sanity check
To run OpenClaw as a background service:
openclaw onboard --install-daemonThis sets up a macOS LaunchAgent that starts on boot. Use openclaw status to confirm it's running.
Gotchas and troubleshooting
The developer encountered two main issues:
- WhatsApp blocks all incoming messages by default for security. Senders must be explicitly allowlisted or messages get silently dropped.
- When troubleshooting, always run
openclaw doctorfirst as it catches most configuration issues.
After a week of use, the developer noted benefits including automatic failover between model providers during outages and simplified billing with a single API key and billing page instead of managing multiple providers.
📖 Read the full source: r/openclaw
👀 See Also

Claude Code folder structure cheat sheet from Reddit user
A Reddit user created a cheat sheet for Claude Code's folder structure after encountering common pitfalls, covering .claude/ directory layout, hook events, settings.json, MCP config, skill structure, and context management thresholds.

Resolving Disconnection Issues in OpenClaw Control UI
Learn how to solve the 'Disconnected (1008): control ui requires HTTPS or localhost' error when using OpenClaw on a Hostinger VPS.

Migrating OpenClaw agents to Claude Code after third-party harness deprecation
A developer migrated 17 OpenClaw agents to Claude Code in one afternoon after Anthropic ended third-party harness support. The process involved creating CLAUDE.md entry points, bash wrappers, and cron jobs while preserving existing agent logic.

Local LLM Setup Recommendations for OpenClaw
A user shares their configuration for running a local LLM with OpenClaw, using a GB10 for AI processing and a Mac mini for the OpenClaw installation, with specific model and server details.