Official agent skill

Duckdb Docs

by duckdb in duckdb/duckdb-skills

Search DuckDB and DuckLake documentation and blog posts. An agent skill from duckdb/duckdb-skills.

OfficialMITAuto-check: notesWriting & Content

Install Duckdb Docs

skills CLI
$ npx skills add duckdb/duckdb-skills --skill duckdb-docs -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install duckdb/duckdb-skills duckdb-docs --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/duckdb/duckdb-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/duckdb-docs .claude/skills/duckdb-docs && rm -rf skills-src

Use ~/.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/

Facts

Skill name
duckdb-docs
GitHub stars
599
Used in
1 other repo
Token cost
~1.4k tokens
SKILL.md length
563 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

Search DuckDB and DuckLake documentation and blog posts. An agent skill from duckdb/duckdb-skills.

  • Works in 7 steps: Check DuckDB is installed → Ensure required extensions are installed → Choose the data source and extract… → …
  • Tasks that involve Blog and article writing
  • SKILL.md covers Step 1 — Check DuckDB is…, Step 2 — Ensure required…, Step 3 — Choose the data… and Step 4 — Ensure local cache is…, plus 3 more sections
  • Calls duckdb; reaches duckdb.org and ducklake.select

What it does

Duckdb Docs is an agent skill from duckdb/duckdb-skills, published by the product's own GitHub organization. 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 index.

Its SKILL.md is about 1.4k 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 Writing & Content, covering Blog and article writing and Search implementation. It works with DuckDB and SQL. The licence is MIT.

When your agent uses it

  • Tasks that involve Blog and article writing
  • Tasks that involve Search implementation

Example prompts

  • “/duckdb-docs”

Requirements

  • Pre-approved tools (allowed-tools): Bash

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Check DuckDB is installed
  2. Ensure required extensions are installed
  3. Choose the data source and extract search terms
  4. Ensure local cache is fresh
  5. Search the docs
  6. Handle errors
  7. Present results

What it can do on your machine

Read from SKILL.md and the folder at commit 7feda8e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • duckdb

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • duckdb.org
    • ducklake.select

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Duckdb Docs loads about 1.4k tokens when it runs. Until then it costs about 44 tokens; SKILL.md has 563 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~44
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash

Automated 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.

SKILL.md

The full file from duckdb/duckdb-skills at commit 7feda8e, republished under its MIT licence (© duckdb). 563 words, ~1,418 tokens.

Download SKILL.mdSave it as .claude/skills/duckdb-docs/SKILL.md (or your agent's skills folder).
name
duckdb-docs
description
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 index.
allowed-tools
Bash
argument-hint
<question or keyword>

You are helping the user find relevant DuckDB or DuckLake documentation.

Query: $@

Follow these steps in order.

Step 1 — Check DuckDB is installed

bash
command -v duckdb

If not found, delegate to /duckdb-skills:install-duckdb and then continue.

Step 2 — Ensure required extensions are installed

bash
duckdb :memory: -c "INSTALL httpfs; INSTALL fts;"

If this fails, report the error and stop.

Step 3 — Choose the data source and extract search terms

The query is: $@

Data source selection

There are two search indexes available:

IndexRemote URLLocal cache filenameVersionsUse when
DuckDB docs + bloghttps://duckdb.org/data/docs-search.duckdbduckdb-docs.duckdblts, current, blogDefault — any DuckDB question
DuckLake docshttps://ducklake.select/data/docs-search.duckdbducklake-docs.duckdbstable, previewQuery mentions DuckLake, catalogs, or DuckLake-specific features

Both indexes share the same schema:

ColumnTypeDescription
chunk_idVARCHAR (PK)e.g. stable/sql/functions/numeric#absx
page_titleVARCHARPage title from front matter
sectionVARCHARSection heading (null for page intros)
breadcrumbVARCHARe.g. SQL > Functions > Numeric
urlVARCHARURL path with anchor
versionVARCHARSee table above
textTEXTFull markdown of the chunk

By default, search DuckDB docs and filter to version = 'lts'. Use different versions when:

  • The user explicitly asks about current/nightly features → version = 'current'
  • The user asks about a blog post or wants background/motivation → version = 'blog'
  • The user asks about DuckLake → search the DuckLake index with version = 'stable'
  • When unsure, omit the version filter to search across all versions.
Search terms

If the input is a natural language question (e.g. "how do I find the most frequent value"), extract the key technical terms (nouns, function names, SQL keywords) to form a compact BM25 query string. Drop stop words like "how", "do", "I", "the".

If the input is already a function name or technical term (e.g. arg_max, GROUP BY ALL), use it as-is.

Use the extracted terms as SEARCH_QUERY in the next step.

Step 4 — Ensure local cache is fresh

The cache lives at $HOME/.duckdb/docs/CACHE_FILENAME (where CACHE_FILENAME is duckdb-docs.duckdb or ducklake-docs.duckdb per Step 3).

First, ensure the directory exists:

bash
mkdir -p "$HOME/.duckdb/docs"

Then check whether the cache file exists and is fresh (≤2 days old):

bash
CACHE_FILE="$HOME/.duckdb/docs/CACHE_FILENAME"
if [ -f "$CACHE_FILE" ]; then
    MTIME=$(stat -f %m "$CACHE_FILE" 2>/dev/null || stat -c %Y "$CACHE_FILE")
    CACHE_AGE_DAYS=$(( ( $(date +%s) - MTIME ) / 86400 ))
else
    CACHE_AGE_DAYS=999
fi
echo "Cache age: $CACHE_AGE_DAYS days"

If CACHE_AGE_DAYS ≤ 2 → skip to Step 5.

Otherwise (stale or missing) → fetch the index:

bash
duckdb -c "
LOAD httpfs;
LOAD fts;
ATTACH 'REMOTE_URL' AS remote (READ_ONLY);
ATTACH '$HOME/.duckdb/docs/CACHE_FILENAME.tmp' AS tmp;
COPY FROM DATABASE remote TO tmp;
" && mv "$HOME/.duckdb/docs/CACHE_FILENAME.tmp" "$HOME/.duckdb/docs/CACHE_FILENAME"

Replace REMOTE_URL and CACHE_FILENAME per Step 3. If the fetch fails (network error), report the error and stop.

Show full SKILL.md (205 more words)Show less

Step 5 — Search the docs

bash
duckdb "$HOME/.duckdb/docs/CACHE_FILENAME" -readonly -json -c "
LOAD fts;
SELECT
    chunk_id, page_title, section, breadcrumb, url, version, text,
    fts_main_docs_chunks.match_bm25(chunk_id, 'SEARCH_QUERY') AS score
FROM docs_chunks
WHERE score IS NOT NULL
  AND version = 'VERSION'
ORDER BY score DESC
LIMIT 8;
"

Replace CACHE_FILENAME, SEARCH_QUERY, and VERSION per Step 3. Remove the AND version = 'VERSION' line if searching across all versions.

If the user's question could benefit from both DuckDB docs and blog results, run two queries (one with version = 'stable', one with version = 'blog') or omit the version filter entirely.

Step 6 — Handle errors

  • Extension not installed (httpfs or fts not found): run duckdb :memory: -c "INSTALL httpfs; INSTALL fts;" and retry.
  • ATTACH fails / network unreachable: inform the user that the docs index is unavailable and suggest checking their internet connection. The DuckDB index is hosted at https://duckdb.org/data/docs-search.duckdb and the DuckLake index at https://ducklake.select/data/docs-search.duckdb.
  • No results (all scores NULL or empty result set): try broadening the query — drop the least specific term, or try a single-word version of the query — then retry Step 5. If still no results, tell the user no matching documentation was found and suggest visiting https://duckdb.org/docs or https://ducklake.select/docs directly.

Step 7 — Present results

For each result chunk returned (ordered by score descending), format as:

### {section} — {page_title}
{url}

{text}

---

After presenting all chunks, synthesize a concise answer to the user's original question ($@) based on the retrieved documentation. If the chunks directly answer the question, lead with the answer before showing the sources.

© duckdb, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/duckdb-docs of duckdb/duckdb-skills.

Open the folder on GitHubat commit 7feda8e

Used in 1 other repository

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.

Compare with similar skills

Duckdb Docs 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.

Duckdb Docs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Duckdb Docs this skillduckdb/duckdb-skills5991 repos~1.4kAutomated safety check: NotesMIT
Pp Visit Detroit Blogmvanhorn/printing-press-library2.1k—~3.1kAutomated safety check: NotesApache-2.0
Figurevectorize-io/hindsight46k—~1.9kAutomated safety check: PassMIT
Nuxt Contentsecondsky/claude-skills227—~4.3kAutomated safety check: PassMIT
Ops Telemetry Queryboundless-xyz/boundless193—~3.8kAutomated safety check: PassApache-2.0
Pp Pokeapimvanhorn/printing-press-library2.1k—~7.6kAutomated safety check: NotesApache-2.0

Similar skills

  • Pp Visit Detroit Blog

    mvanhorn/printing-press-library

    Detroit's official "Inside the D" blog as a CLI: offline full-text search, cross-axis filtering by category and neighborhood, related reads, and reading-list exports.

    2.1k GitHub stars~3.1k tokensUpdated yesterday
    Backend & APIsAuto-check: notes
  • Figure

    vectorize-io/hindsight

    Draw an animated figure (boxes, arrows, moving data) as one self-contained SVG for a GitHub README, PR, issue or blog post.

    46k GitHub stars~1.9k tokensUpdated today
    Writing & ContentAuto-check passed
  • Nuxt Content

    secondsky/claude-skills

    Nuxt Content v3 Git-based CMS for Markdown/MDC content sites.

    227 GitHub stars~4.3k tokensUpdated 9 days ago
    Frontend & DesignAuto-check passed
  • Ops Telemetry Query

    boundless-xyz/boundless

    Internal — for Boundless team members only. An agent skill from boundless-xyz/boundless.

    193 GitHub stars~3.8k tokensUpdated 1 mo ago
    DatabasesAuto-check passed
  • Pp Pokeapi

    mvanhorn/printing-press-library

    PokéAPI as a fully offline Pokédex with SQL, full-text search, type math, and a damage calculator no other Pokémon tool ships as a CLI.

    2.1k GitHub stars~7.6k tokensUpdated yesterday
    Backend & APIsAuto-check: notes
  • Release Post

    quarto-dev/quarto-r

    Create professional package release blog posts following Tidyverse or Shiny blog conventions.

    160 GitHub starsUsed in 1 repo~2.5k tokens
    Writing & ContentAuto-check passed

More from duckdb/duckdb-skills

All 8 skills in this repo
  • Spatial

    duckdb/duckdb-skills

    Official

    Answer questions about spatial data using DuckDB. An agent skill from duckdb/duckdb-skills.

    599 GitHub starsUsed in 1 repo~1k tokens
    Auto-check: notes
  • Convert File

    duckdb/duckdb-skills

    Official

    Convert any data file to another format: CSV, Parquet, JSON, Excel, GeoJSON, and more.

    599 GitHub starsUsed in 1 repo~720 tokens
    Auto-check: notes
  • S3 Explore

    duckdb/duckdb-skills

    Official

    Explore and query data on S3, Cloudflare R2, GCS, MinIO, or any S3-compatible storage.

    599 GitHub starsUsed in 1 repo~848 tokens
    Auto-check: notes
  • Read File

    duckdb/duckdb-skills

    Official

    Read any data file (CSV, JSON, Parquet, Avro, Excel, spatial, SQLite) or remote URL (S3, HTTPS).

    599 GitHub starsUsed in 1 repo~917 tokens
    Auto-check: notes
  • Attach DB

    duckdb/duckdb-skills

    Official

    Attach a DuckDB database file for use with /duckdb-skills:query.

    599 GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check: notes
  • Query

    duckdb/duckdb-skills

    Official

    Run SQL queries against the attached DuckDB database or ad-hoc against files.

    599 GitHub starsUsed in 1 repo~2k tokens
    Auto-check: notes

Works with

Questions about Duckdb Docs

What does Duckdb Docs do?

Search DuckDB and DuckLake documentation and blog posts. An agent skill from duckdb/duckdb-skills. Duckdb Docs is an agent skill from duckdb/duckdb-skills, published by the product's own GitHub organization. Search DuckDB and DuckLake documentation and blog posts.

When should I use Duckdb Docs?

Duckdb Docs fits situations like: tasks that involve Blog and article writing; tasks that involve Search implementation.

How do I install Duckdb Docs in Claude Code?

Run `npx skills add duckdb/duckdb-skills --skill duckdb-docs -a claude-code`. Or copy the skill folder (skills/duckdb-docs in duckdb/duckdb-skills) into .claude/skills/duckdb-docs in your project. Claude Code loads it when a task matches its description.

How do I install Duckdb Docs in Codex?

Run `npx skills add duckdb/duckdb-skills --skill duckdb-docs -a codex`. Or copy the skill folder (skills/duckdb-docs in duckdb/duckdb-skills) into .agents/skills/duckdb-docs in your project. Codex loads it when a task matches its description.

Can I use Duckdb Docs in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add duckdb/duckdb-skills --skill duckdb-docs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/duckdb-docs, .gemini/skills/duckdb-docs, .github/skills/duckdb-docs and .opencode/skills/duckdb-docs in your project.

What does Duckdb Docs need to run?

Going by SKILL.md and its folder, Duckdb Docs needs the command-line tools its instructions call (duckdb). Its frontmatter pre-approves these tools: Bash.

Does Duckdb Docs access the network?

SKILL.md names 2 domains. In commands or code: duckdb.org and ducklake.select; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Duckdb Docs safe to install?

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.

What licence does Duckdb Docs use?

Duckdb Docs is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Duckdb Docs use?

About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Duckdb Docs?

Skills that share tags, products or a category with Duckdb Docs: Pp Visit Detroit Blog (mvanhorn/printing-press-library, 2.1k stars), Figure (vectorize-io/hindsight, 46k stars), Nuxt Content (secondsky/claude-skills, 227 stars) and Ops Telemetry Query (boundless-xyz/boundless, 193 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Duckdb Docs?

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.