# CLI

# NAME

woodpecker-cli - command line utility

# SYNOPSIS

woodpecker-cli

```
[--config|-c]=[value]
[--disable-update-check]
[--log-file]=[value]
[--log-level]=[value]
[--nocolor]
[--pretty]
[--server|-s]=[value]
[--token|-t]=[value]
```

# DESCRIPTION

Woodpecker command line utility

**Usage**:

```
woodpecker-cli [GLOBAL OPTIONS] [command [COMMAND OPTIONS]] [ARGUMENTS...]
```

# GLOBAL OPTIONS

**--config, -c**="": path to config file

**--disable-update-check**: disable update check

**--log-file**="": Output destination for logs. 'stdout' and 'stderr' can be used as special keywords. (default: stderr)

**--log-level**="": set logging level (default: info)

**--nocolor**: disable colored debug output, only has effect if pretty output is set too

**--pretty**: enable pretty-printed debug output

**--server, -s**="": server address

**--token, -t**="": server auth token

# COMMANDS

## admin

administer server settings

### registry

manage global registries

#### add

adds a registry

**--hostname**="": registry hostname (default: docker.io)

**--password**="": registry password

**--username**="": registry username

#### rm

remove a registry

**--hostname**="": registry hostname (default: docker.io)

#### update

update a registry

**--hostname**="": registry hostname (default: docker.io)

**--organization, --org**="": organization id or full name (e.g. 123 or octocat)

**--password**="": registry password

**--username**="": registry username

#### info

display registry info

**--hostname**="": registry hostname (default: docker.io)

#### ls

list registries

## org

manage organizations

### registry

manage organization registries

#### add

adds a registry

**--hostname**="": registry hostname (default: docker.io)

**--organization, --org**="": organization id or full name (e.g. 123 or octocat)

**--password**="": registry password

**--username**="": registry username

#### rm

remove a registry

**--hostname**="": registry hostname (default: docker.io)

**--organization, --org**="": organization id or full name (e.g. 123 or octocat)

#### update

update a registry

**--hostname**="": registry hostname (default: docker.io)

**--organization, --org**="": organization id or full name (e.g. 123 or octocat)

**--password**="": registry password

**--username**="": registry username

#### info

display registry info

**--hostname**="": registry hostname (default: docker.io)

**--organization, --org**="": organization id or full name (e.g. 123 or octocat)

#### ls

list registries

**--organization, --org**="": organization id or full name (e.g. 123 or octocat)

## repo

manage repositories

### ls

list all repos

**--format**="": format output (default: {{ .FullName }} (id: {{ .ID }}, forgeRemoteID: {{ .ForgeRemoteID }}))

**--org**="": filter by organization

### info

show repository details

**--format**="": format output (default: Owner: {{ .Owner }}
Repo: {{ .Name }}
URL: {{ .ForgeURL }}
Config path: {{ .Config }}
Visibility: {{ .Visibility }}
Private: {{ .IsSCMPrivate }}
Trusted: {{ .IsTrusted }}
Gated: {{ .IsGated }}
Clone url: {{ .Clone }}
Allow pull-requests: {{ .AllowPullRequests }}
)

### add

add a repository

### update

update a repository

**--config**="": repository configuration path (e.g. .woodpecker.yml)

**--gated**: repository is gated

**--pipeline-counter**="": repository starting pipeline number (default: 0)

**--timeout**="": repository timeout (default: 0s)

**--trusted**: repository is trusted

**--unsafe**: validate updating the pipeline-counter is unsafe

**--visibility**="": repository visibility

### rm

remove a repository

### repair

repair repository webhooks

### chown

assume ownership of a repository

### sync

synchronize the repository list

**--format**="": format output (default: {{ .FullName }} (id: {{ .ID }}, forgeRemoteID: {{ .ForgeRemoteID }}))

### registry

manage registries

#### add

adds a registry

**--hostname**="": registry hostname (default: docker.io)

**--password**="": registry password

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

**--username**="": registry username

#### rm

remove a registry

**--hostname**="": registry hostname (default: docker.io)

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

#### update

update a registry

**--hostname**="": registry hostname (default: docker.io)

**--password**="": registry password

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

**--username**="": registry username

#### info

display registry info

**--hostname**="": registry hostname (default: docker.io)

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

#### ls

list registries

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

## pipeline

manage pipelines

### ls

show pipeline history

**--branch**="": branch filter

**--event**="": event filter

**--limit**="": limit the list size (default: 25)

**--output**="": output format (default: table)

**--output-no-headers**: don't print headers

**--status**="": status filter

### last

show latest pipeline details

**--branch**="": branch name (default: main)

**--output**="": output format (default: table)

**--output-no-headers**: don't print headers

### logs

show pipeline logs

### info

show pipeline details

**--output**="": output format (default: table)

**--output-no-headers**: don't print headers

### stop

stop a pipeline

### start

start a pipeline

**--param, -p**="": custom parameters to be injected into the step environment. Format: KEY=value (default: [])

### approve

approve a pipeline

### decline

decline a pipeline

### queue

show pipeline queue

**--format**="": format output (default: {{ .FullName }} #{{ .Number }} 
Status: {{ .Status }}
Event: {{ .Event }}
Commit: {{ .Commit }}
Branch: {{ .Branch }}
Ref: {{ .Ref }}
Author: {{ .Author }} {{ if .Email }}<{{.Email}}>{{ end }}
Message: {{ .Message }}
)

### ps

show pipeline steps

**--format**="": format output (default: {{ .workflow.Name }} > {{ .step.Name }} (#{{ .step.PID }}):
Step: {{ .step.Name }}
Started: {{ .step.Started }}
Stopped: {{ .step.Stopped }}
Type: {{ .step.Type }}
State: {{ .step.State }}
)

### create

create new pipeline

**--branch**="": branch to create pipeline from

**--output**="": output format (default: table)

**--output-no-headers**: don't print headers

**--var**="": key=value (default: [])

## log

manage logs

### purge

purge a log

## deploy

trigger a pipeline with the 'deployment' event

**--branch**="": branch filter

**--event**="": event filter (default: push)

**--format**="": format output (default: Number: {{ .Number }}
Status: {{ .Status }}
Commit: {{ .Commit }}
Branch: {{ .Branch }}
Ref: {{ .Ref }}
Message: {{ .Message }}
Author: {{ .Author }}
Target: {{ .Deploy }}
)

**--param, -p**="": custom parameters to be injected into the step environment. Format: KEY=value (default: [])

**--status**="": status filter (default: success)

## exec

execute a local pipeline

**--backend-docker-api-version**="": the version of the API to reach, leave empty for latest.

**--backend-docker-cert**="": path to load the TLS certificates for connecting to docker server

**--backend-docker-host**="": path to docker socket or url to the docker server

**--backend-docker-ipv6**: backend docker enable IPV6

**--backend-docker-network**="": backend docker network

**--backend-docker-tls-verify**: enable or disable TLS verification for connecting to docker server

**--backend-docker-volumes**="": backend docker volumes (comma separated)

**--backend-engine**="": backend engine to run pipelines on (default: auto-detect)

**--backend-http-proxy**="": if set, pass the environment variable down as "HTTP_PROXY" to steps

**--backend-https-proxy**="": if set, pass the environment variable down as "HTTPS_PROXY" to steps

**--backend-k8s-allow-native-secrets**: whether to allow existing Kubernetes secrets to be referenced from steps

**--backend-k8s-namespace**="": backend k8s namespace (default: woodpecker)

**--backend-k8s-pod-annotations**="": backend k8s additional Agent-wide worker pod annotations

**--backend-k8s-pod-annotations-allow-from-step**: whether to allow using annotations from step's backend options

**--backend-k8s-pod-image-pull-secret-names**="": backend k8s pull secret names for private registries (default: [regcred])

**--backend-k8s-pod-labels**="": backend k8s additional Agent-wide worker pod labels

**--backend-k8s-pod-labels-allow-from-step**: whether to allow using labels from step's backend options

**--backend-k8s-pod-node-selector**="": backend k8s Agent-wide worker pod node selector

**--backend-k8s-secctx-nonroot**: `run as non root` Kubernetes security context option

**--backend-k8s-storage-class**="": backend k8s storage class

**--backend-k8s-storage-rwx**: backend k8s storage access mode, should ReadWriteMany (RWX) instead of ReadWriteOnce (RWO) be used? (default: true)

**--backend-k8s-volume-size**="": backend k8s volume size (default 10G) (default: 10G)

**--backend-local-temp-dir**="": set a different temp dir to clone workflows into (default: /tmp/nix-shell.kGX6ZV)

**--backend-no-proxy**="": if set, pass the environment variable down as "NO_PROXY" to steps

**--commit-author-avatar**="":

**--commit-author-email**="":

**--commit-author-name**="":

**--commit-branch**="":

**--commit-message**="":

**--commit-ref**="":

**--commit-refspec**="":

**--commit-sha**="":

**--env**="": (default: [])

**--forge-type**="":

**--forge-url**="":

**--local**: run from local directory

**--netrc-machine**="":

**--netrc-password**="":

**--netrc-username**="":

**--network**="": external networks (default: [])

**--pipeline-created**="": (default: 0)

**--pipeline-deploy-task**="":

**--pipeline-deploy-to**="":

**--pipeline-event**="": (default: manual)

**--pipeline-finished**="": (default: 0)

**--pipeline-number**="": (default: 0)

**--pipeline-parent**="": (default: 0)

**--pipeline-started**="": (default: 0)

**--pipeline-status**="":

**--pipeline-url**="":

**--prev-commit-author-avatar**="":

**--prev-commit-author-email**="":

**--prev-commit-author-name**="":

**--prev-commit-branch**="":

**--prev-commit-message**="":

**--prev-commit-ref**="":

**--prev-commit-refspec**="":

**--prev-commit-sha**="":

**--prev-pipeline-created**="": (default: 0)

**--prev-pipeline-event**="":

**--prev-pipeline-finished**="": (default: 0)

**--prev-pipeline-number**="": (default: 0)

**--prev-pipeline-started**="": (default: 0)

**--prev-pipeline-status**="":

**--prev-pipeline-url**="":

**--privileged**="": privileged plugins (default: [plugins/docker plugins/gcr plugins/ecr woodpeckerci/plugin-docker-buildx codeberg.org/woodpecker-plugins/docker-buildx])

**--repo**="": full repo name

**--repo-clone-ssh-url**="":

**--repo-clone-url**="":

**--repo-path**="": path to local repository

**--repo-private**="":

**--repo-remote-id**="":

**--repo-trusted**:

**--repo-url**="":

**--step-name**="": (default: 0)

**--system-name**="": (default: woodpecker)

**--system-platform**="":

**--system-url**="": (default: https://github.com/woodpecker-ci/woodpecker)

**--timeout**="": pipeline timeout (default: 1h0m0s)

**--volumes**="": pipeline volumes (default: [])

**--workflow-name**="": (default: 0)

**--workflow-number**="": (default: 0)

**--workspace-base**="": (default: /woodpecker)

**--workspace-path**="": (default: src)

## info

show information about the current user

## registry

manage registries

### add

adds a registry

**--hostname**="": registry hostname (default: docker.io)

**--password**="": registry password

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

**--username**="": registry username

### rm

remove a registry

**--hostname**="": registry hostname (default: docker.io)

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

### update

update a registry

**--hostname**="": registry hostname (default: docker.io)

**--password**="": registry password

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

**--username**="": registry username

### info

display registry info

**--hostname**="": registry hostname (default: docker.io)

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

### ls

list registries

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

## secret

manage secrets

### add

adds a secret

**--event**="": secret limited to these events (default: [])

**--global**: global secret

**--image**="": secret limited to these images (default: [])

**--name**="": secret name

**--organization, --org**="": organization id or full name (e.g. 123 or octocat)

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

**--value**="": secret value

### rm

remove a secret

**--global**: global secret

**--name**="": secret name

**--organization, --org**="": organization id or full name (e.g. 123 or octocat)

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

### update

update a secret

**--event**="": secret limited to these events (default: [])

**--global**: global secret

**--image**="": secret limited to these images (default: [])

**--name**="": secret name

**--organization, --org**="": organization id or full name (e.g. 123 or octocat)

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

**--value**="": secret value

### info

display secret info

**--global**: global secret

**--name**="": secret name

**--organization, --org**="": organization id or full name (e.g. 123 or octocat)

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

### ls

list secrets

**--global**: global secret

**--organization, --org**="": organization id or full name (e.g. 123 or octocat)

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

## user

manage users

### ls

list all users

**--format**="": format output (default: {{ .Login }})

### info

show user details

**--format**="": format output (default: User: {{ .Login }}
Email: {{ .Email }})

### add

adds a user

### rm

remove a user

## lint

lint a pipeline configuration file

## log-level

get the logging level of the server, or set it with [level]

## cron

manage cron jobs

### add

add a cron job

**--branch**="": cron branch

**--name**="": cron name

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

**--schedule**="": cron schedule

### rm

remove a cron job

**--id**="": cron id

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

### update

update a cron job

**--branch**="": cron branch

**--id**="": cron id

**--name**="": cron name

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

**--schedule**="": cron schedule

### info

display info about a cron job

**--id**="": cron id

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

### ls

list cron jobs

**--repository, --repo**="": repository id or full name (e.g. 134 or octocat/hello-world)

## setup

setup the woodpecker-cli for the first time

**--server**="": The URL of the woodpecker server

**--token**="": The token to authenticate with the woodpecker server

## update

update the woodpecker-cli to the latest version

**--force**: force update even if the latest version is already installed