attach-db
Attach a DuckDB database file for use with /duckdb-skills:query. Explores the schema (tables, columns, row counts) and writes a…
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
Claude Code
$ npx -y skills add duckdb/duckdb-skills --skill convert-file --agent claude-code
Codex
$ npx skills add duckdb/duckdb-skills --skill convert-file -a codex -y
Cursor
$ npx skills add duckdb/duckdb-skills --skill convert-file -a cursor -y
Gemini CLI
$ npx skills add duckdb/duckdb-skills --skill convert-file -a gemini-cli -y
GitHub Copilot
$ npx skills add duckdb/duckdb-skills --skill convert-file -a github-copilot -y
OpenCode
$ npx skills add duckdb/duckdb-skills --skill convert-file -a opencode -y
Windsurf
$ npx skills add duckdb/duckdb-skills --skill convert-file -a windsurf -y
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:-}`
**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;` |
Run a single DuckDB command. Prepend extension loads as needed based on both the input and output formats.
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.
On success, report:
On failure:
A Claude Code plugin that adds DuckDB-powered skills for data exploration and session memory.
Attach a DuckDB database file for use with /duckdb-skills:query. Explores the schema (tables, columns, row counts) and writes a…
Search DuckDB and DuckLake documentation and blog posts. Returns relevant doc chunks for a question or keyword using full-text…
Install or update DuckDB extensions. Each argument is either a plain extension name (installs from core) or name@repo (e.g.…
Run SQL queries against the attached DuckDB database or ad-hoc against files. Accepts raw SQL or natural language questions. Uses…
Read any data file (CSV, JSON, Parquet, Avro, Excel, spatial, SQLite) or remote URL (S3, HTTPS). Use when user references a data…
Search past Claude Code session logs to recall prior decisions, patterns, or unresolved work. Use when user says "do you…
Use this skill to extract structured Markdown/JSON from PDFs and document images—tables with cell-level precision, formulas as…
Estimates intracellular metabolic fluxes from steady-state carbon-13 isotope-tracing measurements using validated atom maps,…