convert-file — скилл для Claude Code: конвертация файлов
Скилл переводит файлы данных в другие форматы через DuckDB. Пригодится, когда нужно получить CSV, Parquet, Excel, JSON или GeoJSON.
npx skills add duckdb/duckdb-skills --skill convert-file -a claude-codeЧто делает convert-file
Скилл использует DuckDB, чтобы прочитать входной файл и записать результат в формате, который задаёт расширение выходного файла. Если путь для результата не передан, он сохраняет файл с тем же именем и расширением .parquet. Поддерживаются также TSV, JSONL, NDJSON и геоформаты GeoPackage и Shapefile.
Перед конвертацией скилл загружает нужные расширения DuckDB: для Excel — excel, для геоформатов — spatial. Для источников s3://, gs://, gcs://, http:// и https:// предусмотрена настройка протокола. Разбиение на партиции доступно для CSV и Parquet, а сжатие zstd — для Parquet. Это значит, что без команды duckdb конвертация не запустится; при ошибке установки скилл предлагает перейти к /duckdb-skills:install-duckdb.
После выполнения он сообщает входной и выходной файлы, их форматы и размер результата; число строк — если его быстро посчитать. При ошибке разбора входных данных предлагает проверить формат или сначала осмотреть файл через /duckdb-skills:read-file.
Какие задачи решает
- перевести CSV в Parquet
- сохранить таблицу в Excel или JSON
- экспортировать данные в GeoJSON или Shapefile
- разбить CSV или Parquet на партиции
- сжать Parquet с помощью
zstd
Примеры запросов агенту
- Преобразуй
sales.csvв Parquet и сохрани результат какsales.parquet. - Экспортируй
places.geojsonвplaces.gpkg. - Разбей
events.csvна партиции поyear.
Как установить convert-file
1Через Skills CLI (Vercel)
npx skills add duckdb/duckdb-skills --skill convert-file -a claude-code2Вручную: положить файлы
~/.claude/skills/convert-file/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/convert-file/
1Через Skills CLI (Vercel)
npx skills add duckdb/duckdb-skills --skill convert-file -a codex2Вручную: положить файлы
.agents/skills/convert-file/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add duckdb/duckdb-skills --skill convert-file -a cursor2Вручную: положить файлы
.cursor/skills/convert-file/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install duckdb/duckdb-skills convert-file2Вручную: положить файлы
.github/skills/convert-file/SKILL.md1Через Skills CLI (Vercel)
npx skills add duckdb/duckdb-skills --skill convert-file -a gemini-cli2Командой платформы
gemini skills install https://github.com/duckdb/duckdb-skills --path skills/convert-fileВручную: положить файлы
.devin/skills/convert-file/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add duckdb/duckdb-skills --skill convert-file -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о convert-file
Как установить convert-file в Claude Code?
Выполните npx skills add duckdb/duckdb-skills --skill convert-file -a claude-code. Файл скилла появится по пути ~/.claude/skills/convert-file/SKILL.md.
Что делает convert-file?
Скилл с помощью DuckDB преобразует файл данных в формат, заданный расширением выходного файла. Он также может настроить партиционирование и сжатие для поддерживаемых форматов.
Какие форматы и расширения поддерживает convert-file?
Среди форматов — CSV, TSV, Parquet, JSON, JSONL, NDJSON, XLSX, GeoJSON, GeoPackage и Shapefile. Для XLSX требуется расширение DuckDB excel, для геоформатов — spatial.
Исходный текст
SKILL.md · MIT
---
name: convert-file
description: >
Convert any data file to another format: CSV, Parquet, JSON, Excel, GeoJSON, and more.
Use when the user says "convert to parquet", "save as xlsx", "export as JSON", "make this a CSV",
"turn into parquet", or any variation of format-to-format conversion for data files.
Also triggers when the user wants to write Parquet, Excel, or other binary formats that Claude cannot produce natively.
argument-hint: <input-file> [output-file]
allowed-tools: Bash
---
You are helping the user convert a data file from one format to another using DuckDB.
Input file: `$0`
Output file: `${1:-}`
## Step 1 — Resolve input and output
**Input**: `$0`. If it's a bare filename (no `/`), resolve to a full path with `find "$PWD" -name "$0" -not -path '*/.git/*' 2>/dev/null | head -1`.
**Output**: If `$1` is provided, use it as the output path. If not, default to the same stem as the input with a `.parquet` extension (e.g., `data.csv` → `data.parquet`).
Infer the output format from the output file extension:
| Extension | Format clause |
|---|---|
| `.parquet`, `.pq` | *(default, no clause needed)* |
| `.csv` | `(FORMAT csv, HEADER)` |
| `.tsv` | `(FORMAT csv, HEADER, DELIMITER '\t')` |
| `.json` | `(FORMAT json, ARRAY true)` |
| `.jsonl`, `.ndjson` | `(FORMAT json, ARRAY false)` |
| `.xlsx` | `(FORMAT xlsx)` — requires `INSTALL excel; LOAD excel;` |
| `.geojson` | `(FORMAT GDAL, DRIVER 'GeoJSON')` — requires `LOAD spatial;` |
| `.gpkg` | `(FORMAT GDAL, DRIVER 'GPKG')` — requires `LOAD spatial;` |
| `.shp` | `(FORMAT GDAL, DRIVER 'ESRI Shapefile')` — requires `LOAD spatial;` |
## Step 2 — Convert
Run a single DuckDB command. Prepend extension loads as needed based on both the input and output formats.
```bash
duckdb -c "
<EXTENSION_LOADS>
COPY (FROM '<INPUT_PATH>') TO '<OUTPUT_PATH>' <FORMAT_CLAUSE>;
"
```
For remote inputs (`s3://`, `https://`, etc.), prepend the same protocol setup as `read-file`:
| Protocol | Prepend |
|---|---|
| `s3://` | `LOAD httpfs; CREATE SECRET (TYPE S3, PROVIDER credential_chain);` |
| `gs://` / `gcs://` | `LOAD httpfs; CREATE SECRET (TYPE GCS, PROVIDER credential_chain);` |
| `https://` / `http://` | `LOAD httpfs;` |
**If the user mentions partitioning** (e.g., "partition by year"), add `PARTITION_BY (col)` to the format clause. This only works with Parquet and CSV output.
**If the user mentions compression** (e.g., "use zstd"), add `CODEC 'zstd'` for Parquet output.
## Step 3 — Report
On success, report:
- Input file and detected format
- Output file, format, and size (`ls -lh`)
- Row count if quick to compute
On failure:
- **`duckdb: command not found`** → delegate to `/duckdb-skills:install-duckdb`
- **Missing extension** → install it and retry
- **Input parse error** → suggest the user check the input format or try `/duckdb-skills:read-file` first to inspect it
© duckdb · MIT · duckdb/duckdb-skills