Files
claudetools/fleet/mac-setup.sh
OC-5070 c51cdbdabc Add fleet setup: Mac OpenClaw deployment scripts and workspace templates
- mac-setup.sh: Install script for OpenClaw on MacBook Air
- mac-workspace/: BOOTSTRAP.md, SOUL.md, USER.md templates
- DISCORD_BOT_SETUP.md: Guide for creating Discord bots per machine
- README.md: Fleet overview and deployment instructions

Part of multi-machine OpenClaw network (OC-5070, OC-Mac, OC-Beast)
2026-03-24 15:29:16 -07:00

127 lines
4.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# =============================================================================
# OpenClaw Mac Setup - Mikes-MacBook-Air
# Run this on the Mac after cloning the ClaudeTools repo from Gitea
# =============================================================================
set -euo pipefail
echo "[INFO] OpenClaw Mac Setup - Starting"
echo "================================================"
# --- Step 1: Install OpenClaw ---
echo ""
echo "[INFO] Step 1: Installing OpenClaw..."
if command -v openclaw &>/dev/null; then
echo "[OK] OpenClaw already installed: $(openclaw --version)"
else
echo "[INFO] Installing via install script..."
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
fi
# --- Step 2: Install 1Password CLI (if needed) ---
echo ""
echo "[INFO] Step 2: Checking 1Password CLI..."
if command -v op &>/dev/null; then
echo "[OK] op CLI found: $(op --version)"
else
echo "[INFO] Installing 1Password CLI via brew..."
brew install --cask 1password-cli
fi
# --- Step 3: Verify Ollama ---
echo ""
echo "[INFO] Step 3: Checking Ollama..."
if command -v ollama &>/dev/null; then
echo "[OK] Ollama found"
echo "[INFO] Available models:"
ollama list
# Pull required models if missing
for model in "qwen3:14b" "codestral:22b" "nomic-embed-text"; do
if ! ollama list | grep -q "$model"; then
echo "[INFO] Pulling $model..."
ollama pull "$model"
else
echo "[OK] $model already available"
fi
done
else
echo "[WARNING] Ollama not found. Install from https://ollama.com/download"
echo " Then run: ollama pull qwen3:14b codestral:22b nomic-embed-text"
fi
# --- Step 4: Install tmux (needed for 1Password) ---
echo ""
echo "[INFO] Step 4: Checking tmux..."
if command -v tmux &>/dev/null; then
echo "[OK] tmux found: $(tmux -V)"
else
echo "[INFO] Installing tmux..."
brew install tmux
fi
# --- Step 5: Onboard OpenClaw ---
echo ""
echo "[INFO] Step 5: OpenClaw onboarding..."
echo "[INFO] You'll need your Anthropic API key."
echo "[INFO] If stored in 1Password, retrieve it first:"
echo " op item get 'Anthropic' --fields label=credential --reveal"
echo ""
echo "[INFO] Run: openclaw onboard"
echo "[INFO] Select Anthropic, enter API key, install daemon."
echo ""
echo "[WARNING] DO NOT run onboard automatically - it needs interactive input."
echo " Run it manually after this script completes."
# --- Step 6: Post-onboard configuration ---
# This generates a script to run AFTER onboarding completes
cat > /tmp/oc-mac-post-onboard.sh << 'POSTEOF'
#!/usr/bin/env bash
set -euo pipefail
echo "[INFO] Post-onboard configuration..."
# Set model chain: Claude primary, Ollama fallback
openclaw config set agents.defaults.model '{"primary":"anthropic/claude-opus-4-6","fallbacks":["ollama/qwen3:14b"]}'
echo "[OK] Model chain configured: Claude Opus -> ollama/qwen3:14b"
# Enable Ollama auto-discovery
# The systemd/launchd service needs OLLAMA_API_KEY in env
# On macOS with launchd, we set it in the config instead
openclaw config set models.providers.ollama.apiKey "ollama-local" 2>/dev/null || true
# Enable web search
openclaw config set tools.web.search.enabled true
openclaw config set tools.web.search.provider duckduckgo
# Enable plugins
openclaw config set plugins.entries.duckduckgo.enabled true
echo "[OK] Post-onboard config applied"
echo "[INFO] Restart gateway: openclaw gateway restart"
echo ""
echo "[INFO] Next steps:"
echo " 1. Set up Discord bot (get token from Mike/OC-5070)"
echo " 2. Configure workspace files (AGENTS.md, SOUL.md, etc.)"
echo " 3. Connect to Tailscale mesh"
echo ""
echo "[OK] Mac setup complete!"
POSTEOF
chmod +x /tmp/oc-mac-post-onboard.sh
echo ""
echo "================================================"
echo "[OK] Pre-onboard setup complete!"
echo ""
echo "Next steps (in order):"
echo " 1. Run: openclaw onboard"
echo " - Select Anthropic provider"
echo " - Enter API key"
echo " - Install daemon: yes"
echo " 2. Run: bash /tmp/oc-mac-post-onboard.sh"
echo " 3. Set up Discord bot (see fleet/DISCORD_BOT_SETUP.md)"
echo " 4. Copy fleet/mac-workspace/* into OpenClaw workspace:"
echo " cp fleet/mac-workspace/* \$(openclaw config get agents.defaults.workspace)/"
echo " 5. Start chatting - bot will read BOOTSTRAP.md and set itself up"
echo "================================================"