API y Guía para Desarrolladores

Amplía ClawBox con habilidades personalizadas, integraciones de REST API y webhooks. Crea automatizaciones potentes y conéctate a servicios externos.

Inicio Rápido

Terminal
# Connect to your ClawBox via SSH
# Default credentials: user "clawbox", password "clawbox"
ssh clawbox@clawbox.local

# Check API status
curl http://clawbox.local:8080/api/status

# Send a message
curl -X POST http://clawbox.local:8080/api/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Hello, ClawBox!"}'

REST API

ClawBox expone una REST API local para control programático.

GET/api/status

Verifica el estado actual de tu ClawBox.

Ejemplo:

curl http://clawbox.local:8080/api/status
POST/api/chat

Envía un mensaje y recibe una respuesta de IA.

Ejemplo:

curl -X POST -H "Content-Type: application/json" -d {"message": "Hello"} http://clawbox.local:8080/api/chat
GET/api/skills

Lista todas las habilidades instaladas y su estado.

Ejemplo:

curl http://clawbox.local:8080/api/skills
PUT/api/config

Actualiza los ajustes de configuración de ClawBox.

Ejemplo:

curl -X PUT -H "Content-Type: application/json" -d {"voice": true} http://clawbox.local:8080/api/config

Creando Habilidades Personalizadas

Las habilidades son módulos de Python que amplían la funcionalidad de ClawBox. Pueden responder a disparadores, llamar APIs e integrarse con servicios externos.

Estructura de Habilidad

my-skill/
├── manifest.json      # Skill metadata
├── handler.py         # Main skill logic
├── requirements.txt   # Python dependencies
└── README.md          # Documentation

manifest.json

{
  "name": "weather-skill",
  "version": "1.0.0",
  "description": "Get weather information",
  "triggers": ["weather", "forecast", "temperature"],
  "author": "Your Name",
  "permissions": ["network"]
}

handler.py

from openclaw import Skill, Response

class WeatherSkill(Skill):
    def handle(self, message: str, context: dict) -> Response:
        # Parse location from message
        location = self.extract_location(message)

        # Fetch weather data
        weather = self.get_weather(location)

        return Response(
            text=f"Weather in {location}: {weather['temp']}°C",
            data=weather
        )

Instalando Habilidades

Terminal
# Install a skill from GitHub
openclaw skill install github.com/user/weather-skill

# Install from local directory
openclaw skill install ./my-skill

# List installed skills
openclaw skill list

# Remove a skill
openclaw skill remove weather-skill

Webhooks

Recibe notificaciones en tiempo real cuando ocurren eventos en tu ClawBox.

Eventos Disponibles

🔔message.received
🔔message.sent
🔔skill.triggered
🔔system.status

Autenticación

Las solicitudes a la API requieren autenticación usando tokens bearer. Genera tokens usando el CLI.

# Generate API token
openclaw token generate --name "my-app"

# Use token in requests
curl -H "Authorization: Bearer YOUR_TOKEN" \
  http://clawbox.local:8080/api/chat

Recursos para Desarrolladores