attach-db
Attach a DuckDB database file for use with /duckdb-skills:query. Explores the schema (tables, columns, row counts) and writes a SQL state file so subsequent…
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
$ npx -y skills add duckdb/duckdb-skills --skill convert-file --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/convert-fileContext preview
The summary Claude sees to decide when to auto-load this skill.
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
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.
Repo: duckdb/duckdb-skills
Attach a DuckDB database file for use with /duckdb-skills:query. Explores the schema (tables, columns, row counts) and writes a SQL state file so subsequent…
Search DuckDB and DuckLake documentation and blog posts. Returns relevant doc chunks for a question or keyword using full-text search against a locally cached…
Install or update DuckDB extensions. Each argument is either a plain extension name (installs from core) or name@repo (e.g. magic@community). Pass --update to…
Run SQL queries against the attached DuckDB database or ad-hoc against files. Accepts raw SQL or natural language questions. Uses DuckDB Friendly SQL idioms.
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…
Search past Claude Code session logs to recall prior decisions, patterns, or unresolved work. Use when user says "do you remember", "what did we do",…