3-Node OpenClaw Configuration Strategy

Nodes Overview

NodeLocationPurposeNetwork
MacBookLocalPrimary dev, voice cloneStandard
LenovoHome serverSecondary, always-onStandard
China NodeChinaKimi access via VPNVPN required

Configuration Strategy

Option 1: MacBook as Source of Truth

MacBook (master config):

  • Full development setup
  • Voice clone (pBB5VQYD9w7wdRFiArsB)
  • All API keys
  • International endpoints

Lenovo (sync from Mac):

  • Same as Mac but no voice clone
  • Sync via: sync_openclaw_settings.sh

China Node (separate config):

  • China-specific endpoints (moonshot.cn)
  • VPN-routed traffic
  • Different API keys if needed

Option 2: Environment-Based Configs

Create 3 config files:

~/.openclaw/
├── openclaw.json                 # Current/active
├── openclaw.json.macbook        # MacBook specific
├── openclaw.json.lenovo         # Lenovo specific
├── openclaw.json.china          # China node specific
└── switch-config.sh             # Switch between them

Switch script:

#!/bin/bash
# switch-config.sh macbook|lenovo|china
 
NODE=$1
if [ -f ~/.openclaw/openclaw.json.$NODE ]; then
    cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.backup
    cp ~/.openclaw/openclaw.json.$NODE ~/.openclaw/openclaw.json
    openclaw gateway restart
    echo "Switched to $NODE config"
else
    echo "Config for $NODE not found"
fi

Option 3: Git-Based Config Management

Setup:

# Create private config repo
cd ~/.openclaw
git init
git add openclaw.json agents/ skills/
git commit -m "Initial config"
 
# Add remote (private repo)
git remote add origin [email protected]:youruser/openclaw-config.git

On each node:

# Clone and symlink
git clone [email protected]:youruser/openclaw-config.git ~/.openclaw-config
ln -sf ~/.openclaw-config/openclaw.json ~/.openclaw/openclaw.json

Update workflow:

# Make changes on any node
git add .
git commit -m "Update API key"
git push
 
# Pull on other nodes
git pull
openclaw gateway restart

Key Differences by Node

MacBook (Primary)

  • Voice clone: pBB5VQYD9w7wdRFiArsB
  • ElevenLabs: Full access
  • Models: All providers
  • Endpoints: International

Lenovo (Secondary)

  • No voice clone (or use Mac’s)
  • Same API keys
  • Same models
  • Endpoints: International

China Node

  • Different endpoints:
    • Kimi: https://api.moonshot.cn/v1 (not .com)
    • Other APIs: May need mirrors
  • VPN routing:
    • Traffic through VPN
    • DNS may differ
  • API keys:
    • May need China-specific keys
    • Some services blocked

Sync Workflow

Daily (automated)

# On Lenovo, cron job every hour
*/30 * * * * ~/sync-from-macbook.sh

Manual (when needed)

# MacBook → Lenovo
./sync_openclaw_settings.sh lenovo@home-server
 
# MacBook → China (separate script)
./sync_to_china.sh

For MacBook + Lenovo:

  • Use sync scripts (already built)
  • MacBook = source of truth
  • Lenovo = mirror

For China node:

  • Separate config file
  • Manual sync when needed
  • Different endpoints

Quick Commands

# Check which config is active
grep 'baseUrl' ~/.openclaw/openclaw.json | head -3
 
# Backup current config
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.$(date +%Y%m%d)
 
# Switch to China config
cp ~/.openclaw/openclaw.json.china ~/.openclaw/openclaw.json
openclaw gateway restart
 
# View all node statuses
openclaw status --all

Decision Matrix

TaskMacBookLenovoChina
Voice clone gen✅ Primary❌ No❌ No
API key updates✅ Source🔄 Sync🔄 Manual
Model testing✅ Full✅ Full⚠️ Limited
24/7 runtime❌ No✅ Yes✅ Yes
TTS (ElevenLabs)✅ Yes✅ Yes⚠️ VPN needed

Next Steps

  1. Choose strategy (recommend: MacBook source + China separate)
  2. Set up China node config (different endpoints)
  3. Test sync MacBook ↔ Lenovo
  4. Document China-specific settings

Want me to:

  • Create the China-specific config?
  • Set up the git-based sync?
  • Build the switch-config script?