TL;DR
El poder de OpenClaw reside en su extensibilidad a través de las habilidades (skills). Con más de 700 habilidades creadas por la comunidad disponibles a través de ClawHub y la capacidad de crear habilidades personalizadas usando archivos SKILL.md o TypeScript, puedes transformar tu asistente OpenClaw en una herramienta especializada para prácticamente cualquier tarea. Esta guía cubre todo, desde la instalación de habilidades existentes hasta la creación y publicación de las tuyas propias.
Introducción
OpenClaw ya ofrece potentes capacidades de serie, pero su verdadero potencial se desbloquea a través de las habilidades. Ya sea que necesites asistencia especializada en codificación, automatización de DevOps, herramientas de investigación o funcionalidad específica de la industria, es probable que exista una habilidad para ello, y si no, puedes crear una.
Con más de 700 habilidades creadas por la comunidad disponibles a través de ClawHub y la capacidad de crear habilidades personalizadas, OpenClaw se convierte en el asistente de IA que necesites.
En esta guía completa, cubriremos:
- Cómo encontrar e instalar habilidades desde ClawHub
- Gestionar y organizar tus habilidades
- Crear habilidades personalizadas desde cero
- Publicar tus habilidades para la comunidad
- Buenas prácticas de seguridad
Comprendiendo las habilidades de OpenClaw
¿Qué son las habilidades?
Las habilidades son extensiones modulares que añaden capacidades específicas a OpenClaw. Piensa en ellas como plugins que le dan a tu asistente de IA nuevas habilidades, desde enviar tipos específicos de correos electrónicos hasta interactuar con APIs particulares.
Tipos de habilidades
1. Habilidades de lenguaje natural (SKILL.md)
La forma más simple: escrita en Markdown con un encabezado YAML. Estas definen los manuales operativos que OpenClaw sigue cuando se cumplen ciertas condiciones.
2. Habilidades de TypeScript
Habilidades completas construidas con TypeScript que pueden acceder a APIs, ejecutar lógica compleja e integrarse profundamente con servicios externos.
3. Habilidades basadas en CLI
Habilidades que envuelven herramientas de línea de comandos, permitiendo a OpenClaw usar cualquier herramienta disponible en tu sistema.
Cómo funcionan las habilidades
Las habilidades se cargan dinámicamente cuando son necesarias (carga just-in-time), lo que mantiene el uso de la memoria manejable. Cuando una solicitud de usuario coincide con los activadores de una habilidad, OpenClaw ejecuta las acciones definidas por la habilidad.
Categorías de habilidades
ClawHub alberga habilidades en numerosas categorías:
- Agentes de codificación e IDEs (más de 133 habilidades)
- DevOps y Nube (más de 212 habilidades)
- Búsqueda e Investigación (más de 253 habilidades)
- IA y LLMs (más de 287 habilidades)
- Productividad (más de 150 habilidades)
- Datos y Análisis (más de 100 habilidades)
- Y muchas más...

Instalación de habilidades desde ClawHub
Encontrar habilidades
Explora el marketplace de ClawHub en clawhub.ai o busca directamente a través de OpenClaw:
# Buscar habilidades
openclaw skills search "github"
# Listar habilidades populares
openclaw skills popular
# Explorar una categoría
openclaw skills browse devops
Instalar una habilidad
Una vez que hayas encontrado una habilidad que quieras, instalarla es sencillo:
# Instalar una habilidad específica
openclaw skills install github-actions
# Instalar con una versión específica
openclaw skills install github-actions@1.2.0
# Instalar desde un editor específico
openclaw skills install @username/skill-name
Instalar todas las habilidades recomendadas
# Instalar habilidades populares para empezar
openclaw skills install-recommended
Verificar la instalación
# Listar todas las habilidades instaladas
openclaw skills list
# Comprobar detalles de la habilidad
openclaw skills info github-actions
Gestionando tus habilidades instaladas
Habilitar y deshabilitar habilidades
# Deshabilitar una habilidad (la mantiene instalada pero sin usar)
openclaw skills disable github-actions
# Habilitar una habilidad deshabilitada
openclaw skills enable github-actions
Actualizar habilidades
# Actualizar una habilidad específica
openclaw skills update github-actions
# Actualizar todas las habilidades
openclaw skills update-all
Eliminar habilidades
# Desinstalar una habilidad
openclaw skills uninstall github-actions
Configuración de habilidades
Muchas habilidades admiten la configuración personalizada:
# Configurar una habilidad
openclaw skills config github-actions --set token=tu-token-github
O edita el archivo de configuración de la habilidad directamente:
# ~/.openclaw/skills/github-actions/config.yaml
token: tu-token-github
default-branch: main
auto-merge: false
Creación de habilidades personalizadas
Cuándo crear habilidades personalizadas
Crea una habilidad personalizada cuando necesites:
- Integraciones de API específicas no cubiertas por las habilidades existentes
- Flujos de trabajo de automatización personalizados
- Funcionalidad específica de la industria
- Herramientas internas propietarias
Estructura de la habilidad
Una habilidad básica consta de:
mi-habilidad-personalizada/
├── SKILL.md # Definición de la habilidad (para habilidades de lenguaje natural)
├── config.yaml # Esquema de configuración
└── icon.svg # Icono de la habilidad (opcional)
Para habilidades de TypeScript:
mi-habilidad-typescript/
├── src/
│ └── index.ts # Código principal de la habilidad
├── package.json
├── tsconfig.json
├── config.schema.json
└── skill.yaml # Manifiesto de la habilidad
Creación de habilidades SKILL.md
Estructura básica de SKILL.md
Aquí tienes un archivo SKILL.md mínimo:
---
name: alerta-clima
description: Obtener alertas meteorológicas para tu ubicación
triggers:
- "clima"
- "alerta clima"
- "pronóstico"
requires:
- location
actions:
- name: obtener_clima
api: https://api.weather.com/v3
params:
location: "{location}"
---
# Habilidad de alerta meteorológica
Esta habilidad proporciona alertas meteorológicas y pronósticos para tu ubicación.
## Configuración
Establece tu ubicación en la configuración de la habilidad:
- city: Nombre de tu ciudad
- units: metric o imperial
Ejemplo completo: Habilidad de resumen de correo electrónico
---
name: resumen-email-diario
description: Recibir un resumen diario de tus correos electrónicos importantes
triggers:
- "resumen email"
- "emails diarios"
- "resumir mis emails"
requires:
- email_access
- api_key
actions:
- name: buscar_emails
method: gmail.users.messages.list
params:
q: "is:unread"
maxResults: 10
- name: resumir
model: gpt-4
prompt: "Resumir estos correos electrónicos en viñetas"
---
# Habilidad de resumen de correo electrónico diario
Mantente al tanto de tu bandeja de entrada con resúmenes diarios automatizados.
## Características
- Recupera correos electrónicos no leídos de Gmail
- Utiliza IA para resumir los puntos clave
- Envía el resumen a tu canal preferido
## Configuración
1. Configura el acceso a la API de Gmail en tus ajustes de OpenClaw
2. Establece tu hora preferida para el resumen
3. Elige tu canal de entrega (Telegram, Discord, etc.)
## Ejemplo de uso
Tú: Envíame mi resumen de correo electrónico
OpenClaw: Aquí tienes un resumen de tus 8 correos electrónicos no leídos:
- Solicitud de reunión de John sobre la planificación del tercer trimestre
- Confirmación de pedido de Amazon
- Boletín de TechCrunch...
### Activadores avanzados
Utiliza activadores más sofisticados:
```markdown
---
name: recordatorio-inteligente
triggers:
# Frases exactas
- "recuérdame {acción}"
# Patrones
- "recuérdame en {duración}"
# Contextual
context:
- channel: trabajo
patterns: ["reunión", "fecha límite", "proyecto"]
---
# Habilidad de recordatorio inteligente
Gestiona todas las solicitudes de recordatorio con análisis inteligente.
Creación de habilidades de TypeScript
Para integraciones más complejas, las habilidades de TypeScript proporcionan control total.
Configuración de tu entorno de desarrollo
# Crear un nuevo proyecto de habilidad
openclaw skills create mi-habilidad-genial
# Navegar al directorio de la habilidad
cd mi-habilidad-genial
# Instalar dependencias
npm install
# Iniciar servidor de desarrollo
npm run dev
Estructura de la habilidad de TypeScript
// src/index.ts
import { Skill, SkillContext, SkillResult } from '@openclaw/skill-sdk';
export default class MyAwesomeSkill implements Skill {
name = 'mi-habilidad-genial';
description = 'Una habilidad que hace algo increíble';
// Se llama cuando se carga la habilidad
async onLoad(context: SkillContext): Promise<void> {
console.log('¡Habilidad cargada!');
}
// Se llama cuando la habilidad coincide con un activador
async execute(context: SkillContext): Promise<SkillResult> {
const { userMessage, config } = context;
// Tu lógica de habilidad aquí
const result = await this.doSomethingAwesome(userMessage.content);
return {
message: result,
actions: []
};
}
private async doSomethingAwesome(input: string): Promise<string> {
// Implementa tu lógica de habilidad
return `Dijiste: ${input}`;
}
}
Manifiesto de la habilidad (skill.yaml)
name: mi-habilidad-genial
version: 1.0.0
description: Una habilidad que hace algo increíble
author:
name: Tu Nombre
email: tu@ejemplo.com
triggers:
- pattern: "hacer algo genial"
type: exact
config:
apiKey:
type: string
required: true
description: Clave API para el servicio
permissions:
- network
- filesystem
runtime: nodejs18
Esquema de configuración (config.schema.json)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"description": "Clave API para el servicio"
},
"enabled": {
"type": "boolean",
"default": true
}
},
"required": ["apiKey"]
}
Compilación y prueba
# Compilar la habilidad
npm run build
# Ejecutar pruebas
npm test
# Empaquetar para distribución
npm run package
Ejemplo: Habilidad de integración con GitHub
Aquí tienes un ejemplo más completo que muestra la integración de API:
import { Skill, SkillContext, SkillResult } from '@openclaw/skill-sdk';
import axios from 'axios';
export default class GitHubSkill implements Skill {
name = 'github';
description = 'Interactuar con repositorios de GitHub';
async execute(context: SkillContext): Promise<SkillResult> {
const { userMessage, config } = context;
const message = userMessage.content.toLowerCase();
if (message.includes('listar repos')) {
return this.listRepositories(config);
} else if (message.includes('crear incidencia')) {
return this.createIssue(context);
}
return {
message: 'Puedo ayudar con la lista de repositorios, la creación de incidencias y más.',
actions: []
};
}
private async listRepositories(config: any): Promise<SkillResult> {
const response = await axios.get('https://api.github.com/user/repos', {
headers: {
Authorization: `token ${config.githubToken}`
}
});
const repos = response.data.slice(0, 5).map((r: any) => r.name).join('\n');
return {
message: `Tus repositorios recientes:\n${repos}`,
actions: []
};
}
private async createIssue(context: SkillContext): Promise<SkillResult> {
// Extraer detalles de la incidencia del mensaje del usuario
return {
message: 'Necesito más detalles para crear una incidencia. Por favor, especifica el repositorio, el título y la descripción.',
actions: [
{
type: 'request_input',
fields: ['repo', 'title', 'description']
}
]
};
}
}
Publicar habilidades en ClawHub
Preparar tu habilidad para la publicación
- Probar a fondo: Asegúrate de que tu habilidad funciona en varios escenarios
- Añadir documentación: SKILL.md claro con ejemplos
- Establecer permisos adecuados: Solicita solo el acceso necesario
- Añadir un icono: Crea un icono SVG simple
- Versionado: Utiliza el versionado semántico (1.0.0, 1.1.0, etc.)
Proceso de publicación
# Iniciar sesión en ClawHub
openclaw skills login
# Comprobar que tu habilidad está lista
openclaw skills validate
# Publicar tu habilidad
openclaw skills publish
Requisitos de publicación
- Manifiesto de habilidad válido (skill.yaml)
- Obligatorio: nombre, versión, descripción, autor
- Al menos un activador definido
- Escaneo de VirusTotal (realizado automáticamente)
- Verificación de identidad
Gestión de versiones
# Aumentar versión
openclaw skills version patch # 1.0.0 -> 1.0.1
openclaw skills version minor # 1.0.0 -> 1.1.0
openclaw skills version major # 1.0.0 -> 2.0.0
# Publicar nueva versión
openclaw skills publish
Mejores prácticas de seguridad
Instalar habilidades de terceros
Nota de seguridad importante: El incidente de ClawHavoc a principios de 2026 reveló habilidades maliciosas en ClawHub. Siempre sigue estas precauciones:
- Verifica los editores: Instala habilidades solo de editores de confianza y verificados
- Revisa los permisos: Comprueba qué permisos solicita la habilidad
- Audita el código: Para habilidades de TypeScript, revisa el código fuente
- Inicia de forma aislada: Prueba las habilidades en un entorno separado primero
# Comprobar permisos de la habilidad antes de instalar
openclaw skills inspect github-actions
Construcción de habilidades seguras
Al construir tus propias habilidades:
# Especifica siempre los permisos mínimos requeridos
permissions:
- network # Solo si es necesario
- filesystem # Solo si es necesario
# Nunca codifiques secretos
# MALO:
const apiKey = "sk-1234567890";
# BUENO:
const apiKey = process.env.API_KEY;
Configuración de seguridad recomendada
# ~/.openclaw/security.yaml
skill_security:
require_virustotal: true
require_verified_publisher: false # Establecer en true para producción
audit_permissions: true
sandbox_mode: true
Desarrollo avanzado de habilidades
Dependencias de habilidades
Las habilidades pueden depender de otras habilidades:
# skill.yaml
dependencies:
- name: github
version: ">=1.0.0"
- name: slack
version: ">=2.0.0"
Habilidades impulsadas por eventos
Reacciona a los eventos de OpenClaw:
export default class EventSkill implements Skill {
async onMessage(context: SkillContext): Promise<SkillResult> {
// Se llama en cada mensaje
}
async onTimer(context: SkillContext): Promise<SkillResult> {
// Se llama según el horario
}
async onStartup(context: SkillContext): Promise<void> {
// Se llama cuando OpenClaw se inicia
}
async onShutdown(context: SkillContext): Promise<void> {
// Se llama cuando OpenClaw se detiene
}
}
Uso de MCP con habilidades
Combina habilidades con servidores MCP:
# skill.yaml
mcpServers:
- name: filesystem
command: npx @modelcontextprotocol/server-filesystem ./data
- name: github
command: npx @modelcontextprotocol/server-github
Resolución de problemas
La habilidad no se carga
# Comprobar el estado de la habilidad
openclaw skills status mi-habilidad
# Ver registros de la habilidad
openclaw logs --skill mi-habilidad
Causas comunes:
- Dependencias faltantes
- Configuración inválida
- Problemas de permisos
El activador no coincide
# Probar coincidencia de activadores
openclaw skills test-trigger "tu frase de activador"
Problemas de rendimiento
# Comprobar el uso de recursos de la habilidad
openclaw skills monitor
# Deshabilitar temporalmente habilidades que consumen muchos recursos
openclaw skills disable habilidad-pesada
Conclusión
El sistema de habilidades de OpenClaw lo transforma de un simple asistente de IA en una plataforma potente y extensible. Ya sea que instales habilidades creadas por la comunidad desde ClawHub o construyas tus propias soluciones personalizadas, las posibilidades son prácticamente ilimitadas.
El ecosistema de OpenClaw se fortalece con cada nueva habilidad. ¡Empieza a construir hoy mismo!

