id = "woodpecker-cli"
name = "woodpecker-cli"
homepage = "https://woodpecker-ci.org/docs/cli"
description = "CLI client for the Woodpecker Continuous Integration server"
executables = ["woodpecker-cli"]
[dotfiles]
paths = [
"~/.config/woodpecker/contexts.json",
"~/.config/woodpecker/config.json",
"~/Library/Application Support/woodpecker/contexts.json",
"~/Library/Application Support/woodpecker/config.json",
"%LOCALAPPDATA%/woodpecker/contexts.json",
"%LOCALAPPDATA%/woodpecker/config.json",
]
secret = []
[commands]
format = 1
label = "Woodpecker CLI"
description = "Run a pipeline locally with exec, with the common global server options. Auth tokens (kept in the OS keyring), metadata overrides and per-backend options are not covered."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "cli-docs"
kind = "manual"
url = "https://woodpecker-ci.org/docs/cli"
revision = "2026-10-27"
evidence = """
--log-level="": set logging level (default: info)
--server, -s="": server address
--skip-verify: skip ssl verification (default: false)
"""
[[commands.field]]
id = "server"
label = "Server address"
type = "url"
option = ["--server", "-s"]
sources = ["cli-docs"]
[[commands.field]]
id = "skip_verify"
label = "Skip TLS verification"
type = "boolean"
option = ["--skip-verify"]
sources = ["cli-docs"]
[[commands.field]]
id = "log_level"
label = "Log level"
type = "string"
option = ["--log-level"]
suggestions = [
{ value = "debug", label = "debug" },
{ value = "info", label = "info" },
{ value = "warn", label = "warn" },
{ value = "error", label = "error" },
]
sources = ["cli-docs"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["server", "log_level", "skip_verify"]
[[commands.subcommand]]
path = ["exec"]
label = "Run a pipeline locally"
description = "Execute a pipeline from a local repository."
[[commands.subcommand.source]]
id = "cli-docs"
kind = "manual"
url = "https://woodpecker-ci.org/docs/cli"
revision = "2026-10-27"
evidence = """
--backend-engine="": backend engine to run pipelines on (default: auto-detect)
--local: run from local directory (default: true)
--repo-path="": path to local repository
--timeout="": pipeline timeout (default: 1h0m0s)
--volumes="": pipeline volumes
--network="": external networks
"""
[[commands.subcommand.field]]
id = "repo_path"
label = "Repository path"
type = "path"
path = { kind = "directory", role = "input" }
option = ["--repo-path"]
sources = ["cli-docs"]
[[commands.subcommand.field]]
id = "timeout"
label = "Pipeline timeout"
description = "Duration such as 30m or 1h."
type = "string"
option = ["--timeout"]
sources = ["cli-docs"]
[[commands.subcommand.field]]
id = "backend_engine"
label = "Backend engine"
type = "string"
option = ["--backend-engine"]
suggestions = [
{ value = "docker", label = "docker" },
{ value = "local", label = "local" },
]
sources = ["cli-docs"]
[[commands.subcommand.field]]
id = "volumes"
label = "Volumes"
type = "string"
option = ["--volumes"]
sources = ["cli-docs"]
[[commands.subcommand.field]]
id = "network"
label = "External networks"
type = "string"
option = ["--network"]
sources = ["cli-docs"]
[[commands.subcommand.task]]
id = "exec"
label = "Run pipeline"
fields = ["repo_path", "timeout"]
required = []
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["repo_path", "timeout"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["backend_engine", "volumes", "network"]