Skip to content

CLI

Use woodpecker to list fixes and recipes, check datasets, preview repairs, and apply selected recipes or fix ids from the terminal.

Use --format json when another tool needs machine-readable output.

Common Commands

Task Command
List fixes woodpecker list-fixes
List recipes woodpecker list-recipes
Check with a recipe woodpecker check ./data --recipe-id cmip6.core_units
Preview an apply run woodpecker apply ./data --recipe-id cmip6.core_units --dry-run
Apply a recipe woodpecker apply ./data --recipe-id cmip6.core_units
Check one fix id woodpecker check ./data --select woodpecker.normalize_tas_units_to_kelvin

check exits with status 1 when findings are reported and 0 when no issues are found.

List Fixes

woodpecker list-fixes
woodpecker list-fixes --dataset CMIP6-decadal
woodpecker list-fixes --category metadata
woodpecker list-fixes --format json

Fix listings include labels. Severity labels use categories such as risk-low, risk-medium, and risk-high. JSON output includes labels, label_titles, and label_metadata.

Labels help users understand fixes. They do not affect recipe selection, priority, or automation.

Use Fix Reference or Interactive Fix Browser to browse the same registered ids.

List Recipes

woodpecker list-recipes
woodpecker list-recipes --store catalog
woodpecker list-recipes --store json --recipe recipes.json
woodpecker list-recipes --store duckdb --recipe recipes.duckdb
woodpecker list-recipes --store auto

catalog discovers recipes from package resources, user and system config directories, environment paths, and extra paths passed with --recipe.

Use Recipe Reference for the generated recipe table.

Check

woodpecker check ./data --recipe-id cmip6.core_units
woodpecker check ./data --select cmip6_decadal.time_metadata
woodpecker check ./data --dataset CMIP6-decadal
woodpecker check ./data --category metadata

Repeat --select to run more than one fix id:

woodpecker check ./data \
  --select woodpecker.normalize_tas_units_to_kelvin \
  --select woodpecker.ensure_latitude_is_increasing

Text findings show the selected fix severity label. JSON findings include the complete label metadata.

Apply

woodpecker apply ./data --recipe-id cmip6.core_units --dry-run
woodpecker apply ./data --recipe-id cmip6.core_units
woodpecker apply ./data --select cmip6_decadal.time_metadata --dry-run
woodpecker apply ./data --select cmip6_decadal.time_metadata

Dry-run output shows the input path, selected fix id, fix name, severity label, and whether the apply step would change the dataset. Use --format json for the same preview data as structured output.

Recipe Stores

Recipe-backed commands accept:

Store Use
catalog Discovered package, user, system, environment, and explicit recipe paths.
json Local JSON or YAML recipe document.
duckdb DuckDB-backed recipe catalog.
auto Read-only one-step recipes generated from registered fix functions.

Examples:

woodpecker apply ./data --store catalog --recipe-id c3s.atlas --dry-run
woodpecker apply ./data --store json --recipe recipes.json --recipe-id c3s.atlas --dry-run
woodpecker apply ./data --store duckdb --recipe recipes.duckdb --recipe-id c3s.atlas --dry-run
woodpecker apply ./data --store auto \
  --recipe-id woodpecker.normalize_tas_units_to_kelvin --dry-run

When no explicit --recipe is provided, --recipe-id uses the discovered catalog.

Load Recipes

woodpecker load-recipes --store json --recipe recipes.json \
  --from-store catalog --recipe-id cmip6.core_units

woodpecker load-recipes --store duckdb --recipe recipes.duckdb \
  --from-store json --from-recipe recipes.json

Safety And Output

Need Option
Preview writes --dry-run
Disable provenance --no-provenance
Write provenance elsewhere --provenance-path woodpecker.prov.json
Treat I/O fallback as an error --strict-io
Choose NetCDF output --output-format netcdf
Choose Zarr output --output-format zarr

apply writes W3C PROV-JSON provenance by default.

Use --force-apply only with explicit fix or recipe selection:

woodpecker apply ./data --select cmip6_decadal.time_metadata --force-apply

Check optional I/O backend availability:

woodpecker io-status
woodpecker io-status --format json