К основному содержанию
скилл CX Codex

read-file — скилл для Claude Code: читает файл данных через DuckDB

Открывает CSV, Parquet, Excel, SQLite или файл по S3 и HTTPS, показывает схему и первые строки. Пригодится, когда в проекте лежит датасет и надо быстро понять, что внутри.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add duckdb/duckdb-skills --skill read-file -a claude-code
Открыть на GitHub

Что делает read-file

Скилл вызывается с путём к файлу или ссылкой: $0 — это имя файла, а ${1:-describe the data} — ваш вопрос. Если указано голое имя без слэша, агент сначала ищет полный путь через find, потом одним запросом создаёт макрос read_any и прогоняет по нему три команды в duckdb: DESCRIBE, подсчёт строк, выборка первых 20 записей.

Читатель выбирается по расширению. JSON и JSONL идут через read_json_auto, CSV и TSV — через read_csv, есть ветки для Parquet, Avro, read_xlsx, st_read для пространственных форматов и sqlite_scan для баз. Ноутбуки .ipynb разбираются отдельно: достаются тип ячейки, её исходник и счётчик выполнения. Всё, что не подошло, попадает в ветку с read_blob.

Для удалённых файлов перед макросом надо подгрузить расширение httpfs, а для s3://, gs:// и az:// ещё и создать секрет с credential_chain. Без установленного duckdb в PATH скилл упадёт на первом шаге: в этом случае он передаёт управление /duckdb-skills:install-duckdb. Отсутствующие расширения вроде spatial или sqlite_scanner ставятся флагами INSTALL и LOAD перед вызовом. Исходники на языках программирования скилл не разбирает — для этого есть другие инструменты.

Какие задачи решает

  • посмотреть схему и число строк в чужом датасете
  • открыть Parquet без установки отдельной библиотеки
  • глянуть, что лежит в Excel-выгрузке или SQLite-базе
  • прочитать файл данных прямо из S3 или по ссылке HTTPS
  • просмотреть содержимое ячеек ноутбука в текстовом виде

Примеры запросов агенту

  • Прочитай orders.parquet и скажи, какие там колонки и сколько записей
  • Что лежит в report.xlsx? Опиши типы полей
  • Открой s3://bucket/events.jsonl и покажи первые строки

Как установить read-file

1Через Skills CLI (Vercel)

npx skills add duckdb/duckdb-skills --skill read-file -a claude-code

2Вручную: положить файлы

~/.claude/skills/read-file/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/read-file/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о read-file

Как установить read-file в Claude Code?

Выполните npx skills add duckdb/duckdb-skills --skill read-file -a claude-code, затем проверьте, что появился файл ~/.claude/skills/read-file/SKILL.md.

Что делает read-file?

Создаёт в DuckDB макрос, который по расширению выбирает нужный ридер, и отвечает на вопрос о данных по схеме, количеству строк и первым записям.

Какие форматы он понимает?

CSV, TSV, JSON и JSONL, Parquet, Avro, Excel, пространственные форматы, SQLite и ноутбуки .ipynb; остальное читается как блоб.

Исходный текст

SKILL.md · MIT
---
name: read-file
description: >
  Read any data file (CSV, JSON, Parquet, Avro, Excel, spatial, SQLite) or remote URL (S3, HTTPS).
  Use when user references a data file, asks "what's in this file", or wants to preview/profile a dataset.
  Not for source code.
argument-hint: <filename or URL> [question about the data]
allowed-tools: Bash
---

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.

```bash
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.}`

© duckdb · MIT · duckdb/duckdb-skills

Похожие скиллы

Все скиллы по теме «Данные и базы» →
xlsx официальный anthropics Работает с табличными файлами: создаёт, читает, правит и преобразует книги. Подходит, когда итогом должен стать файл Excel или другой табличный формат. 187 223установок google-agents-cli-observability официальный Google Помогает настроить трассировку и сбор данных о работе ИИ-агентов, включая агентов на ADK. Пригодится, когда нужно разбирать выполнение запросов или наблюдать за агентом после развёртывания. CX Codex +1 511 300установок caveman-evidence-review JuliusBrussee Скилл читает данные Caveman Cloud о расходах LLM, трассах и маршрутизации. Подходит для проверки того, куда уходит бюджет проекта. CX Codex +1 104 500установок migration JuliusBrussee Скилл задаёт правила безопасных миграций схем, данных и API с обязательным откатом. Пригодится при изменениях, где нельзя терять данные или ломать совместимость. CX Codex +1 103 900установок performance-optimization addyosmani Скилл для агентов ИИ-кодинга: сначала замеряет, потом чинит узкое место — от Core Web Vitals до N+1 запросов и индексов в базе. CX Codex +1 65 200установок supabase официальный supabase Скилл помогает настраивать базу данных, аутентификацию и RLS в Supabase без скрытых дыр в безопасности. CX Codex GP ChatGPT 8установок

Из того же набора7

query Запускает SQL-запросы в DuckDB по подключённой базе или файлам. Принимает SQL и вопросы обычным языком, когда нужно изучить данные прямо из агента. CX Codex +1 1 400установок duckdb-docs Ищет фрагменты документации и блога DuckDB, а также DuckLake, по вопросу или ключевому слову. Пригодится, когда агенту нужен ответ со ссылкой на исходный раздел. CX Codex +1 1 300установок attach-db Подключает файл базы DuckDB к сессии, разбирает схему и сохраняет состояние, чтобы следующие запросы работали сразу. CX Codex +1 1 000установок read-memories Ищет прошлые решения и договорённости в логах сессий Claude Code через DuckDB. Помогает восстановить контекст диалога без ручного поиска по файлам. CX Codex +1 810установок spatial Скилл помогает анализировать географические координаты, границы и файлы GeoJSON или GeoParquet через DuckDB, а также искать объекты в Overture Maps. CX Codex +1 720установок s3-explore Скилл показывает, что лежит в бакете, и выполняет SQL-запросы к Parquet, CSV и JSON прямо в объектном хранилище. CX Codex +1 703установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой