Modeler
sidequery/sidemantic
Build, validate, and manage semantic models using Sidemantic.
Run SQL queries against the attached DuckDB database or ad-hoc against files.
$ npx skills add duckdb/duckdb-skills --skill query -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install duckdb/duckdb-skills query --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/duckdb/duckdb-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/query .claude/skills/query && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "query" agent skill from https://github.com/duckdb/duckdb-skills/tree/main/skills/query into .claude/skills/query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "query", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/duckdb/duckdb-skills/tree/main/skills/queryType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add duckdb/duckdb-skills --skill query -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install duckdb/duckdb-skills query --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duckdb/duckdb-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/query .agents/skills/query && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "query" agent skill from https://github.com/duckdb/duckdb-skills/tree/main/skills/query into .agents/skills/query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "query", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add duckdb/duckdb-skills --skill query -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install duckdb/duckdb-skills query --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duckdb/duckdb-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/query .cursor/skills/query && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "query" agent skill from https://github.com/duckdb/duckdb-skills/tree/main/skills/query into .cursor/skills/query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "query", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/duckdb/duckdb-skills.git --path skills/query--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add duckdb/duckdb-skills --skill query -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install duckdb/duckdb-skills query --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duckdb/duckdb-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/query .gemini/skills/query && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "query" agent skill from https://github.com/duckdb/duckdb-skills/tree/main/skills/query into .gemini/skills/query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "query", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install duckdb/duckdb-skills queryInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add duckdb/duckdb-skills --skill query -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/duckdb/duckdb-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/query .github/skills/query && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "query" agent skill from https://github.com/duckdb/duckdb-skills/tree/main/skills/query into .github/skills/query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "query", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add duckdb/duckdb-skills --skill query -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install duckdb/duckdb-skills query --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duckdb/duckdb-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/query .opencode/skills/query && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "query" agent skill from https://github.com/duckdb/duckdb-skills/tree/main/skills/query into .opencode/skills/query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "query", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
queryRun SQL queries against the attached DuckDB database or ad-hoc against files.
Query is an agent skill from duckdb/duckdb-skills, published by the product's own GitHub organization. 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.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Databases, covering SQL. It works with SQL and DuckDB. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7feda8e. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
duckdbgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Query loads about 2k tokens when it runs. Until then it costs about 41 tokens; SKILL.md has 887 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from duckdb/duckdb-skills at commit 7feda8e, republished under its MIT licence (© duckdb). 887 words, ~1,983 tokens.
.claude/skills/query/SKILL.md (or your agent's skills folder).You are helping the user query data using DuckDB.
Input: $@
Follow these steps in order.
Look for an existing state file in either location:
STATE_DIR=""
test -f .duckdb-skills/state.sql && STATE_DIR=".duckdb-skills"
PROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || echo "$PWD")"
PROJECT_ID="$(echo "$PROJECT_ROOT" | tr '/' '-')"
test -f "$HOME/.duckdb-skills/$PROJECT_ID/state.sql" && STATE_DIR="$HOME/.duckdb-skills/$PROJECT_ID"If found, verify the databases it references are still accessible:
duckdb -init "$STATE_DIR/state.sql" -c "SHOW DATABASES;"Now determine the mode:
--file flag is present, or the SQL references file paths/literals (e.g. FROM 'data.csv'), or STATE_DIR is empty.STATE_DIR is set and the input references table names, is natural language, or is SQL without file references.If no state file exists and no file is referenced, fall back to ad-hoc mode against :memory: — the user must reference files directly in their SQL.
If the state file exists but any ATTACH in it fails, warn the user and fall back to ad-hoc mode.
command -v duckdbIf not found, delegate to /duckdb-skills:install-duckdb and then continue.
If the input is natural language (not valid SQL), generate SQL using the Friendly SQL reference below.
In session mode, first retrieve the schema to inform query generation:
duckdb -init "$STATE_DIR/state.sql" -csv -c "
SELECT table_name FROM duckdb_tables() ORDER BY table_name;
"Then for relevant tables:
duckdb -init "$STATE_DIR/state.sql" -csv -c "DESCRIBE <table_name>;"Use the schema context and the Friendly SQL reference to generate the most appropriate query.
Before executing, estimate whether the query could produce a very large result that would consume excessive tokens when returned to this conversation.
Session mode — check row counts for the tables involved:
duckdb -init "$STATE_DIR/state.sql" -csv -c "
SELECT table_name, estimated_size, column_count
FROM duckdb_tables()
WHERE table_name IN ('<table1>', '<table2>');
"Ad-hoc mode — probe the source:
duckdb :memory: -csv -c "
SET allowed_paths=['FILE_PATH'];
SET enable_external_access=false;
SET allow_persistent_secrets=false;
SET lock_configuration=true;
SELECT count() AS row_count FROM 'FILE_PATH';
"Evaluate:
LIMIT, count(), or other aggregation that bounds the output -> safe, proceed.LIMIT 1000 or an aggregation to keep the output manageable."
Ask for confirmation before running as-is.Skip this step for queries that are intrinsically bounded (e.g. DESCRIBE, SUMMARIZE, aggregations, count()).
Ad-hoc mode (sandboxed — only the referenced file is accessible):
duckdb :memory: -csv <<'SQL'
SET allowed_paths=['FILE_PATH'];
SET enable_external_access=false;
SET allow_persistent_secrets=false;
SET lock_configuration=true;
<QUERY>;
SQLReplace FILE_PATH with the actual file path extracted from the query or --file argument.
If multiple files are referenced, include all paths in the allowed_paths list.
Session mode (user-trusted database):
duckdb -init "$STATE_DIR/state.sql" -csv -c "<QUERY>"For multi-line queries, use a heredoc with -init:
duckdb -init "$STATE_DIR/state.sql" -csv <<'SQL'
<QUERY>;
SQLAlways use heredocs (<<'SQL') for multi-line queries to avoid shell quoting issues.
Extension "X" not loaded): delegate to /duckdb-skills:install-duckdb <ext>, then retry.FROM duckdb_tables() and suggest corrections.find "$PWD" -name "<filename>" 2>/dev/null to locate the file and suggest the corrected path./duckdb-skills:duckdb-docs <error message or relevant keywords> to search the documentation for guidance, then apply the fix and retry.Show the query output to the user. If the result has more than 100 rows, note the truncation and suggest adding LIMIT to the query.
For natural language questions, also provide a brief interpretation of the results.
When generating SQL, prefer these idiomatic DuckDB constructs:
FROM table WHERE x > 10 (implicit SELECT *)LIMIT 10% returns a percentage of rowsSELECT x: 42 instead of SELECT 42 AS xcount(*)SELECT i+1 AS j, j+2 AS kcount() FILTER (WHERE x > 10) for conditional aggregationmax(col, 3) returns top 3 as a list; also arg_max(arg, val, n), min_by(arg, val, n)getvariable('x')FROM 'file.csv', FROM 'data.parquet'FROM 'data/part-*.parquet' reads multiple files'hello'.upper() or col.trim().lower()[x*2 FOR x IN list_col]col[1:3], negative indexing col[-1]SELECT s.* FROM (SELECT {'a': 1, 'b': 2} AS s)[1, 2, 3]format('{}->{}', a, b) for string formattingDROP TABLE IF EXISTS first© duckdb, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/query of duckdb/duckdb-skills.
Open the folder on GitHubat commit 7feda8e
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in duckdb/duckdb-skills, which our catalogue first saw on October 7, 2026.
Query next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Query this skillduckdb/duckdb-skills | 599 | 1 repos | ~2k | Automated safety check: Notes | MIT | |
| Modelersidequery/sidemantic | 129 | — | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Semantic Analystsidequery/sidemantic | 129 | — | ~982 | Automated safety check: Pass | AGPL-3.0 | |
| Ops Telemetry Queryboundless-xyz/boundless | 193 | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| Matlab Use Databasematlab/matlab-agentic-toolkit | 1.1k | — | ~3.1k | Automated safety check: Pass | Custom licence | |
| Matlab Use Duckdbmatlab/matlab-agentic-toolkit | 1.1k | — | ~3.9k | Automated safety check: Pass | Custom licence |
sidequery/sidemantic
Build, validate, and manage semantic models using Sidemantic.
sidequery/sidemantic
Answer analytical, KPI, metric, trend, cohort, and business-performance questions through a Sidemantic semantic layer.
boundless-xyz/boundless
Internal — for Boundless team members only. An agent skill from boundless-xyz/boundless.
matlab/matlab-agentic-toolkit
Reads from, writes to, and manages relational databases using MATLAB Database Toolbox.
matlab/matlab-agentic-toolkit
Use DuckDB from MATLAB via Database Toolbox (R2026a+) as a non-math operations engine on large tabular files (CSV/Parquet/JSON) and as a zero-config embedded database.
ericrisco/rsc-harness
A skill your agent uses when writing or reviewing advanced SQL query logic independent of any one engine — multi-table joins, window functions, CTEs including recursive ones, GROUP BY and GROUPING…
duckdb/duckdb-skills
Answer questions about spatial data using DuckDB. An agent skill from duckdb/duckdb-skills.
duckdb/duckdb-skills
Convert any data file to another format: CSV, Parquet, JSON, Excel, GeoJSON, and more.
duckdb/duckdb-skills
Explore and query data on S3, Cloudflare R2, GCS, MinIO, or any S3-compatible storage.
duckdb/duckdb-skills
Read any data file (CSV, JSON, Parquet, Avro, Excel, spatial, SQLite) or remote URL (S3, HTTPS).
duckdb/duckdb-skills
Attach a DuckDB database file for use with /duckdb-skills:query.
duckdb/duckdb-skills
Search DuckDB and DuckLake documentation and blog posts. An agent skill from duckdb/duckdb-skills.
Categories
Run SQL queries against the attached DuckDB database or ad-hoc against files. Query is an agent skill from duckdb/duckdb-skills, published by the product's own GitHub organization. Run SQL queries against the attached DuckDB database or ad-hoc against files.
Query fits situations like: tasks that involve SQL.
Run `npx skills add duckdb/duckdb-skills --skill query -a claude-code`. Or copy the skill folder (skills/query in duckdb/duckdb-skills) into .claude/skills/query in your project. Claude Code loads it when a task matches its description.
Run `npx skills add duckdb/duckdb-skills --skill query -a codex`. Or copy the skill folder (skills/query in duckdb/duckdb-skills) into .agents/skills/query in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add duckdb/duckdb-skills --skill query -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/query, .gemini/skills/query, .github/skills/query and .opencode/skills/query in your project.
Going by SKILL.md and its folder, Query needs the command-line tools its instructions call (duckdb and git). Its frontmatter pre-approves these tools: Bash.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Query is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Query: Modeler (sidequery/sidemantic, 129 stars), Semantic Analyst (sidequery/sidemantic, 129 stars), Ops Telemetry Query (boundless-xyz/boundless, 193 stars) and Matlab Use Database (matlab/matlab-agentic-toolkit, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
duckdb (a GitHub organization, an official publisher) maintains it in duckdb/duckdb-skills, which has 599 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on April 23, 2026.
Source: duckdb/duckdb-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.