Agent-skills motherduck-duckdb-sql
DuckDB SQL reference for MotherDuck. Use when you need exact DuckDB syntax, function behavior, supported MotherDuck SQL features, or to resolve whether PostgreSQL-oriented SQL will fail on MotherDuck.
install
source · Clone the upstream repo
git clone https://github.com/motherduckdb/agent-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/motherduckdb/agent-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/motherduck-skills-claude/skills/motherduck-duckdb-sql" ~/.claude/skills/motherduckdb-agent-skills-motherduck-duckdb-sql && rm -rf "$T"
manifest:
plugins/motherduck-skills-claude/skills/motherduck-duckdb-sql/SKILL.mdsource content
DuckDB SQL Reference for MotherDuck
Use this skill when you need exact DuckDB syntax, function behavior, or a quick sanity check that a statement will actually work on MotherDuck.
Source Of Truth
- Prefer current DuckDB SQL docs for language features and function semantics.
- Use current MotherDuck SQL docs for MotherDuck-only commands such as shares, secrets, snapshots, and Dive operations.
- Check MotherDuck version-lifecycle docs for newly released DuckDB features before promising they are available in MotherDuck.
- If the connection path matters, verify behavior against the current Postgres-endpoint docs before promising server-mode support.
Default Posture
- Write DuckDB SQL, not PostgreSQL SQL, even when the client connects through the Postgres endpoint.
- Use fully qualified
names once more than one database or share is in scope."database"."schema"."table" - Prefer DuckDB-native constructs when they simplify the query:
,GROUP BY ALL
,QUALIFY
,UNION BY NAME
,arg_max
, andEXCLUDE
.REPLACE - For DuckDB 1.5-era syntax such as
,MERGE INTO
, or new type support, verify current MotherDuck support before adding it to production guidance.FILL() - Check whether the statement depends on local files, extension install/load, temporary-table behavior, or other client-only features before claiming it will work in MotherDuck.
- Treat MotherDuck SQL as an additional surface on top of DuckDB SQL, not a replacement for it.
Workflow
- Confirm the connection path and whether the question is about syntax, feature support, or a specific error.
- Write or repair the statement in DuckDB SQL first.
- Verify any MotherDuck-only command or server-mode limitation against the current docs.
- If the user needs exact syntax or function details, open
.references/SYNTAX_REFERENCE.md
Open Next
for DuckDB data types, friendly SQL features, functions, complex types, and common MotherDuck-specific gotchasreferences/SYNTAX_REFERENCE.md
Related Skills
for writing and validating analytical SQL against live MotherDuck datamotherduck-query
when syntax support depends on PG endpoint versus native DuckDB behaviormotherduck-connect
when the problem is really missing schema context rather than missing syntax knowledgemotherduck-explore