read-file
Read any data file (CSV, JSON, Parquet, Avro, Excel, spatial, SQLite) or remote URL (S3, HTTPS).
Skill by duckdb
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/duckdb-read-file
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: spreadsheets, cloud, data
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/read-file
Tools it pre-approves 1
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Bash
What's inside
- Skill 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.
- License
- MIT
- Allowed tools
- Bash
- Instructions
- 73 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves any shell command
Files (1)
- SKILL.md
SKILL.md (first lines)
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.}`From duckdb/duckdb-skills, MIT.
More from duckdb/duckdb-skills
- 0.638score
spatial
duckdb
Answer questions about spatial data using DuckDB.
SkillDFreshness: D★ 610Claude Code +9 - 0.632score
s3-explore
duckdb
Explore and query data on S3, Cloudflare R2, GCS, MinIO, or any S3-compatible storage.
SkillDFreshness: D★ 610Claude Code +9 - 0.632score
convert-file
duckdb
Convert any data file to another format: CSV, Parquet, JSON, Excel, GeoJSON, and more.
SkillDFreshness: D★ 610Claude Code +9 - 0.632score
read-memories
duckdb
Search past Claude Code session logs to recall prior decisions, patterns, or unresolved work.
SkillDFreshness: D★ 610Claude Code +9 - 0.547score
query
duckdb
Run SQL queries against the attached DuckDB database or ad-hoc against files.
SkillDFreshness: D★ 610Claude Code +9 - 0.547score
duckdb-docs
duckdb
Search DuckDB and DuckLake documentation and blog posts.
SkillDFreshness: D★ 610Claude Code +9 - 0.547score
install-duckdb
duckdb
Install or update DuckDB extensions.
SkillDFreshness: D★ 610Claude Code +9 - 0.547score
attach-db
duckdb
Attach a DuckDB database file for use with /duckdb-skills:query.
SkillDFreshness: D★ 610Claude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 610
- Forks
- 37
- Open issues
- 4
- Last commit (this folder)
- Mar 30, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/duckdb/duckdb-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from duckdb
- 0.638score
spatial
duckdb
Answer questions about spatial data using DuckDB.
SkillDFreshness: D★ 610Claude Code +9 - 0.632score
s3-explore
duckdb
Explore and query data on S3, Cloudflare R2, GCS, MinIO, or any S3-compatible storage.
SkillDFreshness: D★ 610Claude Code +9 - 0.632score
convert-file
duckdb
Convert any data file to another format: CSV, Parquet, JSON, Excel, GeoJSON, and more.
SkillDFreshness: D★ 610Claude Code +9 - 0.632score
read-memories
duckdb
Search past Claude Code session logs to recall prior decisions, patterns, or unresolved work.
SkillDFreshness: D★ 610Claude Code +9 - 0.547score
query
duckdb
Run SQL queries against the attached DuckDB database or ad-hoc against files.
SkillDFreshness: D★ 610Claude Code +9 - 0.547score
duckdb-docs
duckdb
Search DuckDB and DuckLake documentation and blog posts.
SkillDFreshness: D★ 610Claude Code +9
Cite this page
read-file skill. Agent Mart. https://agentmart.dev/skills/duckdb-read-file (last updated 2026-10-24)