mcpField
I
install-duckdb

install-duckdb

github.com/duckdbData & databases613952 installsUpdated 28w ago
Repository

About install-duckdb

install-duckdb is a skill for installing DuckDB extensions or updating extensions and the DuckDB CLI. It accepts extension names, optionally with a repository, and supports an update mode.

Key features

  1. 01Installs named DuckDB extensions
  2. 02Accepts an optional extension repository
  3. 03Updates selected or all extensions
  4. 04Checks and can upgrade the DuckDB CLI

Use cases

  1. 01Installing extensions needed for a task
  2. 02Updating DuckDB extensions and CLI

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/duckdb/duckdb-skills --skill install-duckdb

After installing, type/install-duckdbin Claude Code to confirm it loaded.

Bundled fileseval.sh

Details

From the project README

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.

Comments

Markdown supported