Dale a Claude Code acceso a datos eléctricos de España
Instala la CLI de python-esios y añade un skill para que Claude Code pueda buscar, descargar y analizar indicadores de ESIOS desde la terminal.
Si trabajas con datos del mercado eléctrico español, probablemente has dedicado tiempo a escribir scripts para extraer precios, demanda o generación de ESIOS. ¿Y si tu asistente de programación con IA pudiera hacerlo directamente desde la terminal?
python-esios incluye una CLI y un archivo skill para Claude Code — un documento markdown que enseña a Claude cómo usar la CLI. Colócalo en tu proyecto y Claude podrá buscar indicadores, descargar datos históricos, ejecutar expresiones pandas y exportar resultados sin que escribas una sola línea de código.
¿Qué es un skill de Claude Code?
Un skill es un archivo markdown que Claude Code lee automáticamente cuando es relevante para tu pregunta. Contiene instrucciones, referencias de comandos y convenciones — todo lo que Claude necesita para usar una herramienta correctamente.
El skill de python-esios enseña a Claude:
- La referencia completa de comandos CLI (
esios indicators search,history,meta,exec) - IDs de indicadores comunes (precios spot, demanda, eólica, solar)
- Comportamiento de la caché (para no re-descargar datos innecesariamente)
- Convenciones geográficas (geo IDs, resolución de nombres)
- Formatos de salida (tabla, CSV, JSON, parquet)
Configuración
1. Instalar la librería
pip install python-esios 2. Configurar el token de la API
Solicita un token gratuito en la página de la API de REE, luego:
# Opción A: variable de entorno
export ESIOS_API_KEY=tu-token-aquí
# Opción B: configuración persistente
esios config set token tu-token-aquí 3. Añadir el skill al proyecto
Copia el archivo skill en el directorio .claude/skills/ de tu proyecto:
mkdir -p .claude/skills/esios
curl -o .claude/skills/esios/SKILL.md \
https://raw.githubusercontent.com/datons/python-esios/main/skills/esios/SKILL.md Eso es todo. La próxima vez que abras Claude Code en este proyecto, descubrirá el skill automáticamente.
Qué puede hacer Claude ahora
Buscar indicadores
Tú: “¿Qué indicadores de ESIOS hay disponibles para generación eólica?”
Claude ejecuta:
esios indicators search "eólica" Out10 lines
┌──────┬──────────────────────────────────────────────────┬─────────────────────┐
│ id │ name │ short_name │
├──────┼──────────────────────────────────────────────────┼─────────────────────┤
│ 12 │ Generación programada PBF Eólica terrestre │ Eólica terrestre │
│ 47 │ Generación programada PVP Eólica terrestre │ Eólica terrestre │
│ 82 │ Generación programada P48 Eólica terrestre │ Eólica terrestre │
│ 83 │ Generación programada P48 Eólica marina │ Eólica marina │
│ 1159 │ Generación medida Eólica terrestre │ Eólica terrestre │
│ ... │ ... │ ... │
└──────┴──────────────────────────────────────────────────┴─────────────────────┘Inspeccionar un indicador
Tú: “¿Qué geografías cubre el indicador 600?”
esios indicators meta 600 Out13 lines
╭──────────── Indicator 600 ────────────╮
│ Name: Precio mercado SPOT │
│ Unit: €/MWh │
│ Granularity: Hora │
│ │
│ Geographies: │
│ 1 Portugal │
│ 2 Francia │
│ 3 España │
│ 8826 Alemania │
│ 8827 Bélgica │
│ 8828 Países Bajos │
╰────────────────────────────────────────╯Descargar datos históricos
Tú: “Descarga los precios spot de España de enero 2025”
esios indicators history 600 -s 2025-01-01 -e 2025-01-31 --geo España Out9 lines
┌─────────────────────────┬─────────┐
│ datetime │ España │
├─────────────────────────┼─────────┤
│ 2025-01-01 00:00:00 │ 108.27 │
│ 2025-01-01 01:00:00 │ 99.00 │
│ 2025-01-01 02:00:00 │ 90.10 │
│ ... │ ... │
└─────────────────────────┴─────────┘
Showing 50 of 744 rowsEjecutar expresiones pandas
Aquí está la jugada maestra. El comando exec descarga datos y evalúa cualquier expresión pandas — sin necesidad de scripts:
Tú: “¿Cuál fue el precio spot medio diario en España en enero pasado?”
esios indicators exec 600 -s 2025-01-01 -e 2025-01-31 --geo España \
-x "df.resample('D').mean().round(2)" Out8 lines
┌─────────────────────────┬─────────┐
│ datetime │ España │
├─────────────────────────┼─────────┤
│ 2025-01-01 │ 100.52 │
│ 2025-01-02 │ 117.40 │
│ 2025-01-03 │ 73.17 │
│ ... │ ... │
└─────────────────────────┴─────────┘Tú: “Muéstrame estadísticas descriptivas”
esios indicators exec 600 -s 2025-01-01 -e 2025-01-31 --geo España \
-x "df.describe()" Tú: “Expórtalo a CSV”
esios indicators history 600 -s 2025-01-01 -e 2025-01-31 --geo España \
--format csv --output prices.csv Comparar múltiples indicadores
Tú: “Compara la generación P48 eólica y solar de la última semana”
esios indicators exec 82 84 -s 2025-01-20 -e 2025-01-26 \
-x "df.resample('D').sum().round(0)" Flujo real: analizando picos de precio
Así es como se ve una conversación real. Haces una pregunta, Claude se encarga del resto:
Tú: “Encuentra los días de enero 2025 donde el precio spot de España superó los 150 €/MWh durante al menos una hora. Muéstrame qué horas y cuáles fueron los precios.”
Claude:
- Descarga los datos:
esios indicators history 600 -s 2025-01-01 -e 2025-01-31 --geo España \
--format csv --output /tmp/prices.csv - Los analiza con exec:
esios indicators exec 600 -s 2025-01-01 -e 2025-01-31 --geo España \
-x "df[df['España'] > 150].sort_values('España', ascending=False)" - Resume: “Hubo 12 horas por encima de 150 €/MWh, concentradas en el 8-9 de enero durante una ola de frío. El pico fue 183.42 €/MWh el 8 de enero a las 19:00.”
Sin scripts. Sin notebooks. Solo una pregunta y una respuesta respaldada por datos reales.
La caché lo hace rápido
La CLI almacena datos localmente como archivos parquet en ~/.cache/esios/. Una vez que Claude descarga un indicador para un rango de fechas, las consultas posteriores sobre los mismos datos son instantáneas — sin llamadas a la API.
Reglas clave de la caché:
- Los datos con más de 48h se consideran definitivos (no se vuelven a descargar)
- Los datos recientes (últimas 48h) se actualizan en cada petición (correcciones del mercado eléctrico)
- Cada indicador tiene su propio directorio de caché
esios cache statusmuestra el tamaño y contenido de la cachéesios cache clearresetea todo
Consejos para escribir buenos prompts
- Sé específico con las fechas: “enero 2025” es mejor que “el mes pasado” — Claude conoce los flags exactos
--starty--end - Nombra el indicador si lo conoces: “indicador 600” ahorra un paso de búsqueda
- Pide exportaciones: Claude usará
--format csv --outputautomáticamente - Encadena análisis: “descarga precios, calcula medias diarias, encuentra los 5 días más caros” — Claude encadenará llamadas
exec
Conclusiones
Con el skill de python-esios, Claude Code se convierte en un analista del mercado eléctrico:
esios indicators search— busca cualquier indicador en el catálogo de más de 2.000esios indicators history— descarga datos para cualquier rango de fechas y geografíaesios indicators exec— ejecuta expresiones pandas sin escribir scriptsesios indicators meta— inspecciona unidades, granularidad y geografías- Caché automática — consultas repetidas rápidas, sin llamadas innecesarias a la API
El archivo skill es el puente: le da a Claude el conocimiento para usar estos comandos correctamente, con los flags y convenciones adecuados.