
Una alternativa ligera a OpenClaw que se ejecuta en contenedores por seguridad. Se conecta a WhatsApp, Telegram, Slack, Discord, Gmail y otras aplicaciones de mensajería,, tiene memoria, trabajos programados y se ejecuta directamente en el SDK de Agents de Anthropic.
Un asistente de IA que ejecuta agentes de forma segura en sus propios contenedores. Ligero, diseñado para ser fácilmente entendido y completamente personalizado según tus necesidades.
nanoclaw.dev •
documentación •
中文 •
日本語 •
한국어 •
•
OpenClaw es un proyecto impresionante, pero no habría podido dormir si le hubiera dado a un software complejo que no entiendo acceso completo a mi vida. OpenClaw tiene casi medio millón de líneas de código, 53 archivos de configuración y más de 70 dependencias. Su seguridad está a nivel de aplicación (listas blancas, códigos de emparejamiento) en lugar de un verdadero aislamiento a nivel de sistema operativo. Todo se ejecuta en un solo proceso Node con memoria compartida.
NanoClaw proporciona esa misma funcionalidad principal, pero en una base de código lo suficientemente pequeña como para entenderla: un proceso y un puñado de archivos. Los agentes se ejecutan en sus propios contenedores Linux con aislamiento del sistema de archivos, no solo detrás de comprobaciones de permisos.
git clone https://github.com/nanocoai/nanoclaw.git nanoclaw-v2
cd nanoclaw-v2
bash nanoclaw.sh
nanoclaw.sh te guía desde una máquina limpia hasta un agente con nombre al que puedes enviar mensajes. Instala Node, pnpm y Docker si faltan, registra tu credencial de Anthropic con OneCLI, construye el contenedor del agente y empareja tu primer canal (Telegram, Discord, WhatsApp o una CLI local). Si un paso falla, se invoca a Claude Code automáticamente para diagnosticar y reanudar desde donde se interrumpió.
Ejecuta desde un checkout nuevo de v2 junto a tu instalación v1:
git clone https://github.com/nanocoai/nanoclaw.git nanoclaw-v2
cd nanoclaw-v2
bash migrate-v2.sh
migrate-v2.sh encuentra tu instalación v1 (directorio hermano, o NANOCLAW_V1_PATH=/ruta/a/nanoclaw), migra el estado al checkout v2, luego ejecuta Claude Code para terminar las partes que requieren criterio (siembra del propietario, limpieza de CLAUDE.local.md, reproducción de personalizaciones del fork).
Ejecuta el script directamente, no desde una sesión de Claude — la parte determinista necesita prompts interactivos y E/S real del shell para el arranque de Node/pnpm, Docker, OneCLI y la construcción del contenedor.
Qué hace: fusiona .env, siembra la base de datos v2 desde registered_groups, copia carpetas de grupos + datos de sesión + tareas programadas, instala los adaptadores de canal que selecciones, copia el estado de autenticación de los canales (incluyendo el almacén de claves de Baileys para WhatsApp — la asignación LID ahora se resuelve por mensaje mediante el adaptador Baileys v7, no se migra), construye el contenedor del agente.
Qué no hace: cambiar el servicio del sistema. Elige "cambiar a v2" en el prompt, o hazlo manualmente después de probar — tu instalación v1 queda intacta.
Consulta docs/v1-to-v2-changes.md para ver las diferencias y docs/migration-dev.md para notas de desarrollo.
Suficientemente pequeño para entenderlo. Un proceso, unos pocos archivos fuente y sin microservicios. Si quieres entender toda la base de código de NanoClaw, solo pídele a Claude Code que te la explique.
Seguro por aislamiento. Los agentes se ejecutan en contenedores Linux y solo pueden ver lo que está montado explícitamente. El acceso a Bash es seguro porque los comandos se ejecutan dentro del contenedor, no en tu host.
Construido para el usuario individual. NanoClaw no es un framework monolítico; es un software que se adapta a las necesidades exactas de cada usuario. En lugar de convertirse en un programa inflado, NanoClaw está diseñado para ser a medida. Crea tu propio fork y haz que Claude Code lo modifique para que se ajuste a tus necesidades.
Personalización = cambios en el código. Sin proliferación de configuraciones. ¿Quieres un comportamiento diferente? Modifica el código. La base de código es lo suficientemente pequeña como para que sea seguro hacer cambios.
Nativo de IA, híbrido por diseño. El flujo de instalación y configuración es una ruta automatizada optimizada, rápida y determinista. Cuando un paso necesita criterio, ya sea una instalación fallida, una decisión guiada o una personalización, el control pasa a Claude Code sin problemas. Más allá de la configuración, no hay panel de monitoreo ni interfaz de depuración: describe el problema en el chat y Claude Code lo maneja.
Habilidades sobre funciones. El tronco envía el registro y la infraestructura, no adaptadores de canal específicos ni proveedores de agente alternativos. Los canales (Discord, Slack, Telegram, WhatsApp, …) viven en una rama channels de larga duración; los proveedores alternativos (OpenCode, Ollama) viven en providers. Ejecutas /add-telegram, /add-opencode, etc. y la habilidad copia exactamente el/los módulo(s) que necesitas en tu fork. Ninguna función que no hayas solicitado.
Mejor arnés, mejor modelo. NanoClaw usa nativamente Claude Code a través del SDK oficial de Claude Agent de Anthropic, por lo que obtienes los últimos modelos de Claude y el conjunto completo de herramientas de Claude Code, incluida la capacidad de modificar y expandir tu propio fork de NanoClaw. Otros proveedores son opciones intercambiables: /add-codex para Codex de OpenAI (suscripción a ChatGPT o clave API), /add-opencode para OpenRouter, Google, DeepSeek y más a través de OpenCode, y /add-ollama-provider para modelos locales de peso abierto. El proveedor es configurable por grupo de agentes.
/add-<canal>. Ejecuta uno o varios al mismo tiempo./manage-channels. Consulta docs/isolation-model.md.CLAUDE.md, su propia memoria, su propio contenedor, y solo los montajes que permitas. Nada cruza el límite a menos que lo conectes.ncl groups create --template <ref>. Las plantillas se cargan desde la carpeta local ; pueblala manualmente o copiándola de la . Consulta .Habla con tu asistente usando la palabra de activación (por defecto: @Andy):
@Andy send an overview of the sales pipeline every weekday morning at 9am (has access to my Obsidian vault folder)
@Andy review the git history for the past week each Friday and update the README if there's drift
@Andy every Monday at 8am, compile news on AI developments from Hacker News and TechCrunch and message me a briefing
Desde un canal que poseas o administres, puedes gestionar grupos y tareas:
@Andy list all scheduled tasks across groups@Andy pause the Monday briefing task@Andy join the Family Chat groupNanoClaw no usa archivos de configuración. Para hacer cambios, solo dile a Claude Code lo que quieres:
O ejecuta /customize para cambios guiados.
La base de código es lo suficientemente pequeña como para que Claude pueda modificarla de forma segura.
No añadas funciones. Añade habilidades.
Si quieres añadir un nuevo canal o proveedor de agente, no lo añadas al tronco. Los nuevos adaptadores de canal van a la rama channels; los nuevos proveedores de agente van a providers. Los usuarios los instalan en su propio fork con habilidades /add-<nombre>, que copian el/los módulo(s) relevantes en las rutas estándar, conectan el registro y fijan las dependencias.
Esto mantiene el tronco como registro e infraestructura puros, y cada fork permanece ligero: los usuarios obtienen los canales y proveedores que pidieron y nada más.
Actualmente no se solicitan habilidades de canal o proveedor — propón una mediante un issue.
/customize, /debug, recuperación de errores durante la configuración, y todas las habilidades /add-<canal>messaging apps → host process (router) → inbound.db → container (Bun, Claude Agent SDK) → outbound.db → host process (delivery) → messaging apps
Un único host Node orquesta contenedores de agente por sesión. Cuando llega un mensaje, el host lo enruta mediante el modelo de entidad (usuario → grupo de mensajería → grupo de agente → sesión), lo escribe en inbound.db de la sesión y despierta el contenedor. El ejecutor de agente dentro del contenedor consulta inbound.db, ejecuta el agente y escribe las respuestas en outbound.db. El host consulta outbound.db y entrega de vuelta a través del adaptador de canal.
Dos archivos SQLite por sesión, cada uno con un único escritor — sin contención entre montajes, sin IPC, sin tuberías de stdin. Los canales y proveedores alternativos se autorregistran al inicio; el tronco envía el registro y el puente del Chat SDK, mientras que los adaptadores mismos se instalan como habilidades por fork.
Para el documento completo de arquitectura consulta docs/architecture.md; para el modelo de aislamiento de tres niveles consulta docs/isolation-model.md.
Archivos clave:
src/index.ts — punto de entrada: inicialización BD, adaptadores de canal, sondeos de entrega, barridosrc/router.ts — enrutamiento de entrada: grupo de mensajería → grupo de agente → sesión → inbound.dbsrc/delivery.ts — sondea outbound.db, entrega vía adaptador, maneja acciones del sistemasrc/host-sweep.ts — barrido de 60s: detección de inactividad, activación por mensaje pendiente, recurrenciasrc/session-manager.ts — resuelve sesiones, abre inbound.db / outbound.dbsrc/container-runner.ts — lanza contenedores por grupo de agente, inyección de credenciales OneCLIsrc/db/ — BD central (usuarios, roles, grupos de agente, grupos de mensajería, cableado, migraciones)src/channels/ — infraestructura de adaptadores de canal (adaptadores instalados vía habilidades )¿Por qué Docker?
Docker proporciona soporte multiplataforma (macOS, Linux y Windows via WSL2) y un ecosistema maduro.
¿Puedo ejecutar esto en Linux o Windows?
Sí. Docker es el tiempo de ejecución predeterminado y funciona en macOS, Linux y Windows (via WSL2). Solo ejecuta bash nanoclaw.sh.
¿Es esto seguro?
Los agentes se ejecutan en contenedores, no detrás de comprobaciones de permisos a nivel de aplicación. Solo pueden acceder a directorios montados explícitamente. Las credenciales nunca entran al contenedor — las solicitudes API salientes se enrutan a través del Agent Vault de OneCLI, que inyecta autenticación a nivel de proxy y soporta límites de tasa y políticas de acceso. Aun así, debes revisar lo que estás ejecutando, pero la base de código es lo suficientemente pequeña como para que realmente puedas hacerlo. Consulta la documentación de seguridad para el modelo de seguridad completo.
¿Por qué no hay archivos de configuración?
No queremos proliferación de configuraciones. Cada usuario debe personalizar NanoClaw para que el código haga exactamente lo que quiere, en lugar de configurar un sistema genérico. Si prefieres tener archivos de configuración, puedes decirle a Claude que los añada.
¿Puedo usar modelos de terceros o de código abierto?
Sí. La ruta soportada es /add-opencode (OpenRouter, OpenAI, Google, DeepSeek y más mediante configuración de OpenCode) o /add-ollama-provider (modelos locales de peso abierto mediante Ollama). Ambos son configurables por grupo de agente, por lo que diferentes agentes pueden ejecutarse en diferentes backends en la misma instalación.
Para experimentos puntuales, cualquier endpoint compatible con la API de Claude también funciona mediante .env:
ANTHROPIC_BASE_URL=https://tu-endpoint-api.com
ANTHROPIC_AUTH_TOKEN=tu-token-aqui
¿Cómo depuro problemas?
Pregúntale a Claude Code. "¿Por qué no se está ejecutando el programador?" "¿Qué hay en los registros recientes?" "¿Por qué este mensaje no obtuvo respuesta?" Ese es el enfoque nativo de IA que subyace a NanoClaw.
¿Por qué la configuración no funciona para mí?
Si un paso falla, nanoclaw.sh pasa el control a Claude Code para diagnosticar y reanudar. Si eso no lo resuelve, ejecuta claude, luego /debug. Si Claude identifica un problema que probablemente afecte a otros usuarios, abre un PR contra el paso de configuración o la habilidad correspondiente.
¿Cómo desinstalo NanoClaw?
bash nanoclaw.sh --uninstall
Cada instalación está etiquetada con un ID por checkout, por lo que el desinstalador elimina solo lo que pertenece a esa copia: el servicio en segundo plano, los contenedores y la imagen, los datos de la aplicación y los registros, los archivos de tus agentes y los agentes del vault de OneCLI de esta copia. Las cosas compartidas — la aplicación OneCLI y tus credenciales, otras copias de NanoClaw en la máquina — se dejan intactas. Muestra exactamente lo que encontró y pide confirmación por grupo; nada se elimina hasta que digas que sí. Usa --dry-run para previsualizar sin cambiar nada, o --yes para saltar los prompts. Tu .env se respalda antes de la eliminación. Para terminar, elimina la carpeta del checkout.
¿Qué cambios serán aceptados en la base de código?
Solo se aceptarán correcciones de seguridad, correcciones de errores y mejoras claras en la configuración base. Eso es todo.
Todo lo demás (nuevas capacidades, compatibilidad con SO, soporte de hardware, mejoras) debe contribuirse como habilidades: código de canales y proveedores en las ramas del registro channels/providers, todo lo demás como una habilidad autocontenida. Consulta docs/customizing.md y CONTRIBUTING.md.
Esto mantiene el sistema base mínimo y permite a cada usuario personalizar su instalación sin heredar funciones que no desean.
¿Preguntas? ¿Ideas? Únete al Discord.
Consulta CHANGELOG.md para cambios importantes, o el historial completo de versiones en el sitio de documentación.
MIT

templates//add-<canal>src/providers/ — configuración de proveedores del host (claude incluido; otros mediante habilidades)container/agent-runner/ — ejecutor de agente Bun: bucle de sondeo, herramientas MCP, abstracción de proveedorgroups/<carpeta>/ — sistema de archivos por grupo de agente (CLAUDE.md, habilidades, configuración del contenedor)