---
name: install-duckdb
version: 1.0.0
category: 生活与工具
trigger_words:
tags:
  - ai
platform: coze
source: DeepseekModel
source_url: https://deepseekmodel.com/skill?id=duckdb-duckdb-skills-skills-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.