Install Duckdb

Install Duckdb

Installs or updates DuckDB extensions from core or community repositories

Category: development Source: duckdb/duckdb-skills

What Is This?

Overview

Install Duckdb is a skill designed to streamline the process of installing and updating DuckDB extensions within your development environment. DuckDB is an in-process analytical database system, and its extension ecosystem allows developers to expand its capabilities significantly. This skill automates the repetitive task of writing raw SQL install statements, letting you manage extensions through a simple command-line interface instead.

The skill accepts one or more extension arguments in the form of plain names or repository-qualified names. A plain name installs the extension from the core DuckDB registry, while the name@repo format installs from a specific source such as the community repository. Passing the --update flag switches the operation from installation to updating existing extensions, making lifecycle management straightforward.

By wrapping DuckDB's native INSTALL SQL command, this skill reduces friction during project setup, CI pipeline configuration, and local development. It is particularly useful when working across multiple machines or environments where consistent extension states are required.

Who Should Use This

  • Data engineers who build analytical pipelines and need specific DuckDB extensions installed reliably across environments
  • Backend developers integrating DuckDB into application stacks who want a repeatable setup process
  • DevOps and platform engineers configuring CI/CD pipelines that depend on DuckDB extension availability
  • Data scientists and analysts who use DuckDB for local data exploration and need community extensions beyond the core set
  • Open-source contributors working on DuckDB-based projects who need to synchronize extension dependencies with collaborators

Why Use It?

Problems It Solves

  • Eliminates the need to manually write and execute INSTALL SQL statements each time a new environment is provisioned
  • Removes ambiguity around extension sources by supporting the name@repo syntax, making the origin of each extension explicit
  • Reduces setup errors in team environments where developers may forget which extensions a project depends on
  • Simplifies updating extensions by providing a single --update flag rather than requiring separate SQL commands for each extension

Core Highlights

  • Supports installing multiple extensions in a single command invocation
  • Handles both core registry installs and community or custom repository installs
  • Provides a --update mode to refresh existing extensions without reinstalling from scratch
  • Works through the Bash tool, making it compatible with standard shell scripting and automation workflows
  • Accepts a flexible argument format that is easy to read and document in project setup scripts
  • Reduces cognitive overhead by abstracting SQL syntax into a developer-friendly CLI pattern
  • Integrates naturally into Makefile targets, shell scripts, and CI configuration files

How to Use It?

Basic Usage

To install a single core extension, pass its name as an argument.

install-duckdb httpfs

To install multiple extensions at once, list them separated by spaces.

install-duckdb httpfs json parquet

To install an extension from the community repository, use the name@repo format.

install-duckdb magic@community

To update all listed extensions instead of installing them, prepend the --update flag.

install-duckdb --update httpfs json

Specific Scenarios

Scenario 1: Setting up a new project environment. When onboarding a new developer or provisioning a fresh machine, run the full list of required extensions in one command to ensure the environment matches the project specification.

install-duckdb httpfs parquet json spatial@community

Scenario 2: Updating extensions in a CI pipeline. In a continuous integration workflow, add an update step before running tests to ensure the latest compatible extension versions are in use.

install-duckdb --update httpfs parquet

Real-World Examples

A data engineering team maintains a setup script that calls this skill as part of environment initialization, ensuring every developer has the same extensions without manual SQL intervention.

A platform engineer includes the skill in a Docker build step, installing required DuckDB extensions during image creation so that containers are ready to use immediately on startup.

When to Use It?

Use Cases

  • Initial project setup on a new development machine
  • Provisioning cloud-based development environments
  • CI/CD pipeline configuration for DuckDB-dependent projects
  • Docker image builds that require specific DuckDB extensions
  • Team onboarding scripts that standardize local environments
  • Periodic maintenance tasks to keep extensions up to date
  • Testing workflows that require community extensions not available in the core registry

Important Notes

Requirements

  • DuckDB must be installed and accessible in the system path before using this skill
  • A network connection is required to download extensions from the core or community registries
  • The executing user must have write permissions to the DuckDB extension directory