Skip to content
Data
Skill

/install-duckdb

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 update extensions instead of installing.

From plugin
duckdb-skills
6149 skills

Claude Code

$ npx -y skills add duckdb/duckdb-skills --skill install-duckdb --agent claude-code

SKILL.md

install-duckdb.SKILL.md
name: install-duckdb
description: >
  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 update extensions instead of installing.
argument-hint: "[--update] [ext1 ext2@repo ext3 ...]"
allowed-tools: Bash

Arguments: `$@`

Each extension argument has the form `name` or `name@repo`.

  • `name` → `INSTALL name;`
  • `name@repo` → `INSTALL name FROM repo;`

Step 1 — Locate DuckDB

DUCKDB=$(command -v duckdb)

If not found, tell the user:

> **DuckDB is not installed.** Install it first with one of: > - macOS: `brew install duckdb` > - Linux: `curl -fsSL https://install.duckdb.org | sh` > - Windows: `winget install DuckDB.cli` > > Then re-run `/duckdb-skills:install-duckdb`.

Stop if DuckDB is not found.

Step 2 — Check for --update flag

If `--update` is present in `$@`, remove it from the argument list and set mode to **update**. Otherwise mode is **install**.

Step 3 — Build and run statements

**Install mode:**

Parse each remaining argument:

  • If it contains `@`, split on `@` → `INSTALL <name> FROM <repo>;`
  • Otherwise → `INSTALL <name>;`

Run all in a single DuckDB call:

"$DUCKDB" :memory: -c "INSTALL <ext1>; INSTALL <ext2> FROM <repo2>; ..."

**Update mode:**

First, check if the DuckDB CLI itself is up to date:

CURRENT=$(duckdb --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
LATEST=$(curl -fsSL https://duckdb.org/data/latest_stable_version.txt)
  • If `CURRENT` == `LATEST` → report DuckDB CLI is up to date.
  • If `CURRENT` != `LATEST` → ask the user:

> **DuckDB CLI is outdated** (installed: `CURRENT`, latest: `LATEST`). Upgrade now?

If the user agrees, detect the platform and run the appropriate upgrade command:

  • macOS (`brew` available): `brew upgrade duckdb`
  • Linux: `curl -fsSL https://install.duckdb.org | sh`
  • Windows: `winget upgrade DuckDB.cli`

Then update extensions:

  • No extension names → update all: `UPDATE EXTENSIONS;`
  • With extension names → update in a single call (ignore `@repo`):

`UPDATE EXTENSIONS (<name1>, <name2>, ...);`

"$DUCKDB" :memory: -c "UPDATE EXTENSIONS;"
# or
"$DUCKDB" :memory: -c "UPDATE EXTENSIONS (<ext1>, <ext2>, ...);"

Report success or failure after the call completes.

Read more
@duckdb
Ships withduckdb-skills

A Claude Code plugin that adds DuckDB-powered skills for data exploration and session memory.

Stars on GitHub

Momentum

stars in total
614
Star history of duckdb/duckdb-skills on GitHub, a chart by star-history.com

Other skills on duckdb-skills.

attach-db

attach-db

Attach a DuckDB database file for use with /duckdb-skills:query. Explores the schema (tables, columns, row counts) and writes a…

convert-file

convert-file

Convert any data file to another format: CSV, Parquet, JSON, Excel, GeoJSON, and more. Use when the user says "convert to…

duckdb-docs

duckdb-docs

Search DuckDB and DuckLake documentation and blog posts. Returns relevant doc chunks for a question or keyword using full-text…

query

query

Run SQL queries against the attached DuckDB database or ad-hoc against files. Accepts raw SQL or natural language questions. Uses…

read-file

read-file

Read any data file (CSV, JSON, Parquet, Avro, Excel, spatial, SQLite) or remote URL (S3, HTTPS). Use when user references a data…

read-memories

read-memories

Search past Claude Code session logs to recall prior decisions, patterns, or unresolved work. Use when user says "do you…

More skills from other plugins.

context-loader
Auto-invoked

context-loader

Search memories from earlier Pi sessions in this repository. Use it when earlier work may already explain the code, error,…

mem05d69k
@mem0ai@mem0aiInstall Skill
analyzing-ai-citations

analyzing-ai-citations

Answer AI citation and answer engine optimization (AEO) questions in PostHog: whether AI answer engines (ChatGPT, Claude, and an…

posthog11d41k
@posthog@posthogInstall Skill

Questions about install-duckdb.

Which coding agents can use install-duckdb?
install-duckdb installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.