Skills Agentes

Read File

Lee cualquier archivo de datos (CSV, JSON, Parquet, Avro, Excel, spatial, SQLite) o URL remota (S3, HTTPS) usando DuckDB. No sirve para código fuente.

Solicitabash
Estrellas
538

en todo el repo

Actividad
34

0–100, la ruta de este skill

Actualizado
hace 5 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
919 tok

56 tok en reposo

Paquete
1 archivo

4 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add duckdb/duckdb-skills --skill read-file --agent claude-code

Se instala solo en este repositorio.

Este skill runs shell commands.

Qué hace

  • Ejecuta un único comando DuckDB con una macro inline read_any que detecta el formato del archivo por extensión y lo lee
  • Resuelve rutas de archivo con find si se da solo el nombre, sin ruta completa
  • Antepone LOAD/CREATE SECRET necesarios para leer URLs remotas en S3, HTTPS, GCS o Azure
  • Muestra DESCRIBE, row count y las primeras 20 filas del archivo, y responde una pregunta sobre los datos

Úsalo cuando

  • El usuario menciona un archivo de datos (CSV, JSON, Parquet, Avro, Excel, spatial, SQLite) o una URL remota
  • El usuario pregunta 'qué hay en este archivo'
  • El usuario quiere previsualizar o perfilar un dataset

No lo uses cuando

  • El archivo es código fuente, no un archivo de datos

Qué lo activa

Di cualquiera de estas frases y el agente debería cargar este skill.

  • ¿Qué hay en este archivo data.csv?
  • Léeme el archivo s3://mi-bucket/datos.parquet y descríbelo
  • Previsualiza este archivo Excel y dime cuántas filas tiene

SKILL.md

En inglés

You are helping the user read and analyze a data file using DuckDB.

Filename given: $0 Question: ${1:-describe the data}

Step 1 — Read it

RESOLVED_PATH is $0. If the user gave a bare filename (no /), resolve it to a full path with find first.

Run a single DuckDB command that defines the read_any macro inline and reads the file.

For remote files, prepend the necessary LOAD/SECRET before the macro:

Protocol Prepend
https:// / http:// LOAD httpfs;
s3:// LOAD httpfs; CREATE SECRET (TYPE S3, PROVIDER credential_chain);
gs:// / gcs:// LOAD httpfs; CREATE SECRET (TYPE GCS, PROVIDER credential_chain);
az:// / azure:// / abfss:// LOAD httpfs; LOAD azure; CREATE SECRET (TYPE AZURE, PROVIDER credential_chain);

For local files, no prefix needed.

duckdb -csv -c "
CREATE OR REPLACE MACRO read_any(file_name) AS TABLE
  WITH json_case AS (FROM read_json_auto(file_name))
     , csv_case AS (FROM read_csv(file_name))
     , parquet_case AS (FROM read_parquet(file_name))
     , avro_case AS (FROM read_avro(file_name))
     , blob_case AS (FROM read_blob(file_name))
     , spatial_case AS (FROM st_read(file_name))
     , excel_case AS (FROM read_xlsx(file_name))
     , sqlite_case AS (FROM sqlite_scan(file_name, (SELECT name FROM sqlite_master(file_name) LIMIT 1)))
     , ipynb_case AS (
         WITH nb AS (FROM read_json_auto(file_name))
         SELECT cell_idx, cell.cell_type,
                array_to_string(cell.source, '') AS source,
                cell.execution_count
         FROM nb, UNNEST(cells) WITH ORDINALITY AS t(cell, cell_idx)
         ORDER BY cell_idx
     )
  FROM query_table(
    CASE
      WHEN file_name ILIKE '%.json' OR file_name ILIKE '%.jsonl' OR file_name ILIKE '%.ndjson' OR file_name ILIKE '%.geojson' OR file_name ILIKE '%.geojsonl' OR file_name ILIKE '%.har' THEN 'json_case'
      WHEN file_name ILIKE '%.csv' OR file_name ILIKE '%.tsv' OR file_name ILIKE '%.tab' OR file_name ILIKE '%.txt' THEN 'csv_case'
      WHEN file_name ILIKE '%.parquet' OR file_name ILIKE '%.pq' THEN 'parquet_case'
      WHEN file_name ILIKE '%.avro' THEN 'avro_case'
      WHEN file_name ILIKE '%.xlsx' OR file_name ILIKE '%.xls' THEN 'excel_case'
      WHEN file_name ILIKE '%.shp' OR file_name ILIKE '%.gpkg' OR file_name ILIKE '%.fgb' OR file_name ILIKE '%.kml' THEN 'spatial_case'
      WHEN file_name ILIKE '%.ipynb' THEN 'ipynb_case'
      WHEN file_name ILIKE '%.db' OR file_name ILIKE '%.sqlite' OR file_name ILIKE '%.sqlite3' THEN 'sqlite_case'
      ELSE 'blob_case'
    END
  );

DESCRIBE FROM read_any('RESOLVED_PATH');
SELECT count(*) AS row_count FROM read_any('RESOLVED_PATH');
FROM read_any('RESOLVED_PATH') LIMIT 20;
"

If this fails:

  • duckdb: command not found → invoke /duckdb-skills:install-duckdb and retry.
  • Missing extension (e.g. spatial files, xlsx, sqlite) → retry with INSTALL spatial; LOAD spatial; or INSTALL sqlite_scanner; LOAD sqlite_scanner; prepended before the macro.
  • Wrong reader / parse error → use the correct read_* function directly instead of read_any.

Step 2 — Answer

Using the schema, row count, and sample rows, answer:

${1:-describe the data: summarize column types, row count, and any notable patterns.}

Reproducido de duckdb/duckdb-skills bajo licencia MIT. Leer esta página en markdown.

Archivos

1 archivo en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

Antes de instalar

Requiere el binario duckdb instalado (si falta, se sugiere usar la skill install-duckdb) y, según el formato, extensiones como spatial, sqlite_scanner o httpfs/azure.

Detalles

Creador
duckdb
Licencia
MIT
Recursos incluidos
Solo SKILL.md
Código fuente
Ver SKILL.md

Etiquetas

Más de duckdb/duckdb-skills

Este repo incluye 9 skills. Si instalas uno, normalmente ya tienes los demás. Ver el pack duckdb-skills entero y su comando de instalación

Convierte cualquier archivo de datos a otro formato: CSV, Parquet, JSON, Excel, GeoJSON y más, usando DuckDB.

Costo de contexto al activarse
725 tok
Tamaño del paquete
1 archivo
Última actualización
hace 5 meses
Permisos
datos analitica

Explora y consulta datos en S3, Cloudflare R2, GCS, MinIO o cualquier almacenamiento compatible con S3, sin necesidad de descargarlos.

Costo de contexto al activarse
852 tok
Tamaño del paquete
1 archivo
Última actualización
hace 5 meses
Permisos
datos analitica

Responde preguntas sobre datos espaciales con DuckDB: ubicaciones, coordenadas, distancias, mapas, direcciones, formatos como GeoJSON, Shapefile, GeoPackage, GPX o GeoParquet, usando también Overture Maps.

Costo de contexto al activarse
1k tok
Tamaño del paquete
3 archivos
Última actualización
hace 5 meses
Permisos
datos analitica

Busca en la documentación de DuckDB y DuckLake y en posts del blog, devolviendo fragmentos relevantes mediante búsqueda de texto completo contra un índice local cacheado.

Costo de contexto al activarse
1.4k tok
Tamaño del paquete
1 archivo
Última actualización
hace 5 meses
Permisos
bases de datos

Busca en los logs de sesiones pasadas de Claude Code para recordar decisiones, patrones o trabajo pendiente. Úsalo cuando el usuario mencione conversaciones anteriores o necesites contexto previo.

Costo de contexto al activarse
348 tok
Tamaño del paquete
1 archivo
Última actualización
hace 5 meses
Permisos
productividad

Adjunta un archivo de base de datos DuckDB para usarlo con /duckdb-skills:query. Explora el esquema (tablas, columnas, conteos) y escribe un state file SQL para restaurar la sesión con duckdb -init.

Costo de contexto al activarse
1.2k tok
Tamaño del paquete
1 archivo
Última actualización
hace 5 meses
Permisos
bases de datos

Skills relacionados

Convierte cualquier archivo de datos a otro formato: CSV, Parquet, JSON, Excel, GeoJSON y más, usando DuckDB.

Costo de contexto al activarse
725 tok
Tamaño del paquete
1 archivo
Última actualización
hace 5 meses
Permisos
datos analitica

Explora y consulta datos en S3, Cloudflare R2, GCS, MinIO o cualquier almacenamiento compatible con S3, sin necesidad de descargarlos.

Costo de contexto al activarse
852 tok
Tamaño del paquete
1 archivo
Última actualización
hace 5 meses
Permisos
datos analitica

Responde preguntas sobre datos espaciales con DuckDB: ubicaciones, coordenadas, distancias, mapas, direcciones, formatos como GeoJSON, Shapefile, GeoPackage, GPX o GeoParquet, usando también Overture Maps.

Costo de contexto al activarse
1k tok
Tamaño del paquete
3 archivos
Última actualización
hace 5 meses
Permisos
datos analitica