{
    "name": "install-duckdb",
    "version": "1.0.0",
    "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.",
    "system_prompt": "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.",
    "model_config": {
        "provider": "deepseek",
        "model": "deepseek-chat",
        "temperature": 0.7,
        "max_tokens": 4096,
        "top_p": 0.9
    },
    "trigger_words": [],
    "source": "DeepseekModel",
    "source_url": "https://deepseekmodel.com/skill?id=duckdb-duckdb-skills-skills-install-duckdb-skill-md"
}