Tools
Tools: Instalar OpenClaw en MacMini, Parte 3.
2026-02-22
0 views
admin
Fase 2: Instalar prerrequisitos de desarrollo ## Step 7: Instalar Xcode Command Line Tools ## Step 8: Instalar Homebrew ## Step 9: Instalar Node.js (Version 22 o posterior) ## Step 10: Instalar pnpm (Recommended) ## Fase 3: Instalar OpenClaw ## Step 11: Ejecutar el OpenClaw Installer ## Fase 4: Onboarding y configuración ## Step 12: Ejecutar el Onboarding Wizard ## Step 13: Configurar Web Search ## Step 13b: Arreglar el Heartbeat Model (Important Cost Savings) ## Step 13c: Nota sobre Model Routing (Optional, para después) ## Fase 5: Verificar y arrancar ## Step 14: Revisar Gateway Status ## Step 15: Correr Health Checks ## Step 16: Verificar el Control UI Abre Terminal (Applications > Utilities > Terminal) y ejecuta: Haz click en “Install” en el diálogo que aparece. Esto te da Git, compilers y otras tools que OpenClaw necesita. Espera a que termine la descarga e instalación. Homebrew es el package manager de macOS. Hará que instalar Node.js y otras tools sea straightforward. Método más fácil: Abre Safari en la Mac Mini, ve a brew.sh, y haz click en el botón de copiar junto al install command. Luego abre Terminal y pégalo. O escribe esto directamente en Terminal: Sigue las instrucciones en pantalla. Después de la instalación, Homebrew te dirá que ejecutes un par de comandos para agregarlo a tu PATH. En Apple Silicon Mac Minis, típicamente es: Verifica que funciona: Homebrew probablemente instalará Node 22 como “keg-only”, lo que significa que no estará en tu PATH por defecto. Verás un mensaje sobre esto. Ejecuta lo siguiente para arreglarlo Si node --version todavía dice “command not found”, cierra Terminal y vuelve a abrirlo, y luego intenta de nuevo. pnpm se recomienda si planeas build from source o hack on OpenClaw: Este es el one-liner oficial que maneja la instalación. Abre Safari en la Mac Mini, ve a openclaw.ai, y copia el install command. O escribe esto en Terminal: El installer detectará tu operating system, verificará prerequisites, e instalará el OpenClaw CLI. Verás output de progreso confirmando la instalación y detalles de versión. Método alternativo (si prefieres un manual global install vía npm): Verifica la instalación: Este es el paso principal de configuración. El wizard te guía por todo de forma interactiva: El wizard te irá pidiendo estas decisiones: El flag --install-daemon es crítico porque configura el servicio launchd que mantiene OpenClaw corriendo 24/7, que es exactamente lo que quieres para una máquina dedicada. Important gotchas de instalaciones reales: Model string importa: Cuando el wizard te pida el model, usa las arrow keys para scrollear la lista y seleccionar Opus 4.5 (el model string subyacente es anthropic/claude-opus-4-6). No selecciones una versión Opus más vieja — puede no estar disponible en tu API tier y causará silent failures. Puedes verificar que el model funciona después enviando un mensaje; si recibes “(no output)”, lo más probable es que la selección de model esté mal. Telegram allowlist por username puede fallar: Cuando el wizard pregunte quién puede hacer DM al bot, ingresar tu Telegram username puede no resolver. Si no funciona, obtén tu numeric Telegram user ID enviándole mensaje a @userinfobot en Telegram, y luego ingresa ese número. Rate limits en Opus: Si estás en un Anthropic API tier más bajo, puedes pegarle a rate limits (HTTP 429) durante la sesión inicial de hatching. Espera 60 segundos y vuelve a intentar. Esto es normal. openclaw command not found después del install: El installer agrega OpenClaw a tu shell PATH, pero tu sesión actual de terminal no lo verá hasta que recargues. Abre una nueva ventana de terminal o corre source ~/.zshrc. Esto le pasa a la mayoría cuando intentan correr comandos openclaw inmediatamente después de que termina el wizard. Después del onboarding, configura web search si no lo hiciste durante el wizard: El wizard primero preguntará por tu gateway location — Selecciona Local (esta máquina). esto permite que tu agent lea artículos y páginas web directamente. Alternativamente, una vez que tu agent esté live puedes configurarlo en natural language: “Set up web search with my Brave API key.” Más allá de Brave: Perplexity y Exa.ai. OpenClaw soporta dos search providers built-in (Brave y Perplexity) y se puede extender con custom skills para proveedores adicionales como Exa.ai. Cada uno tiene fortalezas distintas. Brave es la elección correcta para el initial setup. Una vez que tu sistema esté corriendo y quieras expandir tus capacidades de búsqueda, revisa Appendix D: Expanding OpenClaw’s Search Capabilities para instrucciones paso a paso sobre cómo configurar Perplexity (un simple config swap con un gotcha importante) y construir un custom Exa.ai skill desde cero. OpenClaw corre un “heartbeat” check a intervalos regulares para monitorear system health, revisar pending tasks, y correr scheduled cron jobs. Por defecto, este heartbeat dispara cada 10 minutos y usa el model que definiste como brain — que, si seguiste la recomendación, es Opus. El problema: Opus corriendo cada 10 minutos, 24/7, solo para heartbeat checks, se acumula rápido en API fees. El heartbeat no necesita un frontier model. Cámbialo a Haiku y extiende el intervalo. Edita ~/.openclaw/openclaw.json y mergea lo siguiente en tu config existente bajo la sección agents.defaults. Si agents.defaults todavía no existe, créalo: Alternativamente, si tu agent ya está respondiendo en Telegram o Discord, solo dile: “Change your heartbeat to use Haiku and set the interval to 1 hour instead of 10 minutes.” Tu agent presentará un plan y pedirá tu aprobación antes de hacer el cambio. Esto baja el costo del heartbeat a casi cero. Si tienes cron jobs que necesitan correr más frecuentemente que cada hora, ajusta el intervalo acorde — pero para la mayoría de setups, una hora es suficiente. OpenClaw te deja asignar distintos AI models a distintas tareas — un model para conversación, otro para coding, otro para web browsing, etc. Esto es potente tanto para performance como para optimización de costos. Por ejemplo, podrías usar Opus 4.6 como brain para conversación pero rutear tareas de coding a un modelo especializado, o usar un modelo más barato para web search. Esta es una optimización que puedes explorar una vez estés up and running y cómodo con cómo funciona OpenClaw. Para el initial setup, un solo model (Anthropic Claude) para todo está perfectamente bien. Siempre puedes decirle a tu agent que cambie de models después vía natural language. Vea la Fase 9 para una guía completa de model routing con recomendaciones específicas por tipo de tarea. El daemon ya debería estar corriendo desde el onboarding. Verifica: Si no está corriendo, arráncalo manualmente: O adminístralo vía launchd: Si openclaw health muestra “no auth configured”, vuelve y define tu API key vía el wizard o manualmente. Para un full debug report que puedes pegar en algún lado si necesitas ayuda: El Control UI requiere un gateway token para conectarse. No navegues a: http://127.0.0.1:18789/ directamente — te dará un error de “gateway token missing”. En su lugar, corre esto en Terminal: Esto imprime una URL tokenizada (con ?token=... al final) y la copia a tu clipboard. Pégala en la barra de direcciones de Safari. Deberías ver el OpenClaw Gateway Dashboard con Health OK arriba a la derecha. Haz bookmark de esa URL — la usarás para administrar tu agent desde el browser. El token también se guarda en ~/.openclaw/openclaw.json, así que siempre puedes regenerar la URL corriendo el comando otra vez. Si quieres que se abra automáticamente en su lugar: Templates let you quickly answer FAQs or store snippets for re-use. Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse CODE_BLOCK:
xcode-select --install Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
xcode-select --install CODE_BLOCK:
xcode-select --install CODE_BLOCK:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" CODE_BLOCK:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" COMMAND_BLOCK:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)" Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)" COMMAND_BLOCK:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)" CODE_BLOCK:
brew --version Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
brew --version CODE_BLOCK:
brew --version CODE_BLOCK:
OpenClaw requiere Node.js >= 22. Instálalo via Homebrew:
brew install node@22 Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
OpenClaw requiere Node.js >= 22. Instálalo via Homebrew:
brew install node@22 CODE_BLOCK:
OpenClaw requiere Node.js >= 22. Instálalo via Homebrew:
brew install node@22 COMMAND_BLOCK:
echo 'export PATH="/opt/homebrew/opt/node@22/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
echo 'export PATH="/opt/homebrew/opt/node@22/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc COMMAND_BLOCK:
echo 'export PATH="/opt/homebrew/opt/node@22/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc COMMAND_BLOCK:
node --version # Debería mostrar v22.x.x o superior
npm --version # Debería mostrar 10.x.x o superior Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
node --version # Debería mostrar v22.x.x o superior
npm --version # Debería mostrar 10.x.x o superior COMMAND_BLOCK:
node --version # Debería mostrar v22.x.x o superior
npm --version # Debería mostrar 10.x.x o superior COMMAND_BLOCK:
npm install -g pnpm Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
npm install -g pnpm COMMAND_BLOCK:
npm install -g pnpm CODE_BLOCK:
pnpm --version Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
pnpm --version CODE_BLOCK:
pnpm --version COMMAND_BLOCK:
curl -fsSL https://openclaw.ai/install.sh | bash Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
curl -fsSL https://openclaw.ai/install.sh | bash COMMAND_BLOCK:
curl -fsSL https://openclaw.ai/install.sh | bash COMMAND_BLOCK:
npm install -g openclaw@latest Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
npm install -g openclaw@latest COMMAND_BLOCK:
npm install -g openclaw@latest CODE_BLOCK:
openclaw --version Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
openclaw --version CODE_BLOCK:
openclaw --version CODE_BLOCK:
openclaw onboard --install-daemon Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
openclaw onboard --install-daemon CODE_BLOCK:
openclaw onboard --install-daemon CODE_BLOCK:
openclaw configure --section web Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
openclaw configure --section web CODE_BLOCK:
openclaw configure --section web CODE_BLOCK:
{ "agents": { "defaults": { "heartbeat": { "model": "anthropic/claude-3-5-haiku-20241022", "every": "1h" } } }
} Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
{ "agents": { "defaults": { "heartbeat": { "model": "anthropic/claude-3-5-haiku-20241022", "every": "1h" } } }
} CODE_BLOCK:
{ "agents": { "defaults": { "heartbeat": { "model": "anthropic/claude-3-5-haiku-20241022", "every": "1h" } } }
} CODE_BLOCK:
openclaw gateway status Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
openclaw gateway status CODE_BLOCK:
openclaw gateway status CODE_BLOCK:
openclaw gateway --port 18789 --verbose Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
openclaw gateway --port 18789 --verbose CODE_BLOCK:
openclaw gateway --port 18789 --verbose COMMAND_BLOCK:
# Start
launchctl start ~/Library/LaunchAgents/ai.openclaw.gateway.plist # Stop
launchctl stop ~/Library/LaunchAgents/ai.openclaw.gateway.plist Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# Start
launchctl start ~/Library/LaunchAgents/ai.openclaw.gateway.plist # Stop
launchctl stop ~/Library/LaunchAgents/ai.openclaw.gateway.plist COMMAND_BLOCK:
# Start
launchctl start ~/Library/LaunchAgents/ai.openclaw.gateway.plist # Stop
launchctl stop ~/Library/LaunchAgents/ai.openclaw.gateway.plist CODE_BLOCK:
openclaw status
openclaw health
openclaw security audit --deep Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
openclaw status
openclaw health
openclaw security audit --deep CODE_BLOCK:
openclaw status
openclaw health
openclaw security audit --deep CODE_BLOCK:
openclaw status --all Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
openclaw status --all CODE_BLOCK:
openclaw status --all CODE_BLOCK:
openclaw dashboard --no-open Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
openclaw dashboard --no-open CODE_BLOCK:
openclaw dashboard --no-open CODE_BLOCK:
openclaw dashboard Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
openclaw dashboard CODE_BLOCK:
openclaw dashboard - Local vs Remote gateway: Elige Local ya que estás corriendo directo en la Mac Mini.
- Auth/LLM provider: Ingresa tu Anthropic API key (u otras credenciales de proveedor).
- Chat channels: Configura Telegram (bot token del Step 4) y Discord (bot token del Step 5). Si te saltaste esos pasos, puedes agregar channels después del onboarding.
- Pairing defaults: Configura manejo seguro de DMs para que remitentes desconocidos no puedan abusar del bot.
- Skills setup: Cuando te pregunte, di “Yes” para set up skills y selecciona pnpm como tu preferred node manager (lo instalamos en el Step 10). Evita seleccionar bun — algunos usuarios han reportado problemas de compatibilidad con installs de skills. Puedes saltarte la selección individual de skills por ahora y agregarlas después.
- Hooks: El wizard preguntará si quieres habilitar hooks — acciones automatizadas disparadas por eventos específicos. Vale la pena habilitar tres: Boot hook: Corre una rutina de inicio cuando el gateway arranca, permitiendo que el agent se oriente. Command logger: Loggea todos los slash commands para debugging y audit trails. Session memory: Guarda automáticamente el contexto de conversación en memoria cuando la context window se acerca a su límite. Este es el más importante: sin esto, conversaciones largas simplemente se truncarán y se pierde contexto. Con esto, el agent escribe un resumen en sus memory files antes de que la ventana se llene, para poder retomar donde lo dejó en una nueva sesión.
Habilita los tres. Siempre puedes deshabilitarlos después con openclaw hooks.
- Boot hook: Corre una rutina de inicio cuando el gateway arranca, permitiendo que el agent se oriente.
- Command logger: Loggea todos los slash commands para debugging y audit trails.
- Session memory: Guarda automáticamente el contexto de conversación en memoria cuando la context window se acerca a su límite. Este es el más importante: sin esto, conversaciones largas simplemente se truncarán y se pierde contexto. Con esto, el agent escribe un resumen en sus memory files antes de que la ventana se llene, para poder retomar donde lo dejó en una nueva sesión.
Habilita los tres. Siempre puedes deshabilitarlos después con openclaw hooks.
- Daemon installation: El wizard instalará un servicio launchd para que el Gateway corra en background y arranque automáticamente al boot.
- Gateway token: El wizard genera un security token automáticamente. - Boot hook: Corre una rutina de inicio cuando el gateway arranca, permitiendo que el agent se oriente.
- Command logger: Loggea todos los slash commands para debugging y audit trails.
- Session memory: Guarda automáticamente el contexto de conversación en memoria cuando la context window se acerca a su límite. Este es el más importante: sin esto, conversaciones largas simplemente se truncarán y se pierde contexto. Con esto, el agent escribe un resumen en sus memory files antes de que la ventana se llene, para poder retomar donde lo dejó en una nueva sesión.
Habilita los tres. Siempre puedes deshabilitarlos después con openclaw hooks. - Model string importa: Cuando el wizard te pida el model, usa las arrow keys para scrollear la lista y seleccionar Opus 4.5 (el model string subyacente es anthropic/claude-opus-4-6). No selecciones una versión Opus más vieja — puede no estar disponible en tu API tier y causará silent failures. Puedes verificar que el model funciona después enviando un mensaje; si recibes “(no output)”, lo más probable es que la selección de model esté mal.
- Telegram allowlist por username puede fallar: Cuando el wizard pregunte quién puede hacer DM al bot, ingresar tu Telegram username puede no resolver. Si no funciona, obtén tu numeric Telegram user ID enviándole mensaje a @userinfobot en Telegram, y luego ingresa ese número.
- Rate limits en Opus: Si estás en un Anthropic API tier más bajo, puedes pegarle a rate limits (HTTP 429) durante la sesión inicial de hatching. Espera 60 segundos y vuelve a intentar. Esto es normal.
- openclaw command not found después del install: El installer agrega OpenClaw a tu shell PATH, pero tu sesión actual de terminal no lo verá hasta que recargues. Abre una nueva ventana de terminal o corre source ~/.zshrc. Esto le pasa a la mayoría cuando intentan correr comandos openclaw inmediatamente después de que termina el wizard. - Luego preguntará por web search. Habilita web_search (Brave Search) e ingresa tu API key cuando te lo pida. También habilita web_fetch (keyless HTTP fetch)
how-totutorialguidedev.toaillmbashshellcronroutingnodesslgitgithub