duckdb-extension

Build, debug, test, and ship DuckDB C++ extensions with CMake and CI pipelines.

15|4|Updated Jan 20, 2026
One-click install
npx skills add https://github.com/cofin/flow --skill duckdb-extension
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: duckdb-extension
Source: https://github.com/cofin/flow/tree/main/skills/duckdb-extension
Command: npx skills add https://github.com/cofin/flow --skill duckdb-extension

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes agents (resource) components.

What problem does it solve?

This Skill streamlines the development of DuckDB C++ extensions, ensuring they are built, tested, and shipped according to best practices.

Core Features & Use Cases

  • Extension Configuration: Validates and configures extension_config.cmake and CMakeLists.txt.
  • Build Orchestration: Leverages existing Makefile and CI targets for building extensions.
  • Testing: Facilitates running unit and integration SQL tests.
  • Packaging & Distribution: Assists in validating CI pipelines for shipping binaries.
  • Use Case: When developing a new C++ extension for DuckDB, use this Skill to ensure your CMake configuration is correct, your tests are comprehensive, and your release process is robust.

Quick Start

Use the duckdb-extension skill to confirm the build wiring for the 'my_duckdb_extension' project.

Frequently Asked Questions about duckdb-extension

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I configure CMake to build a DuckDB C++ extension?

To build a DuckDB C++ extension, validate and configure your `extension_config.cmake` and `CMakeLists.txt` files to ensure correct build wiring. This process leverages existing Makefile and CI targets for reproducible builds of loadable and static extension targets.

How do I run SQL tests for a DuckDB extension?

Running SQL tests for a DuckDB extension involves executing unit and integration tests located in the `test/*.test` directory. This ensures your C++ extension functions correctly and satisfies requirements for comprehensive testing before distribution.

What files do I need in my DuckDB extension repository to start building?

A DuckDB extension repository requires `extension_config.cmake`, `CMakeLists.txt`, `src/*.cpp` source files, `test/*.test` scripts, and GitHub Actions pipelines. These files enable reproducible builds, testing, and efficient binary distribution.

How do I validate GitHub Actions pipelines for shipping DuckDB extension binaries?

Validating GitHub Actions pipelines for DuckDB extension binaries involves checking the CI configuration to ensure robust release processes. This step confirms that loadable and static extension targets are packaged and distributed efficiently.

Does this DuckDB extension build process support both loadable and static targets?

Yes, the DuckDB extension build process supports both loadable and static extension targets. It ensures reproducible builds and efficient distribution by validating the CMake configuration and leveraging existing CI targets.

Why is my DuckDB C++ extension build failing during CMake configuration?

DuckDB C++ extension builds often fail due to incorrect `extension_config.cmake` or `CMakeLists.txt` configuration. Validating these files against current best practices ensures proper build wiring and resolves reproducible build issues.