Command line interface to pCloud API written in Go.
Download a pre-built binary from the releases page.
Builds are provided for Linux, macOS, and Windows (amd64 and arm64).
Download the archive for your platform, extract it, and place the pcloud-cli binary somewhere on your PATH.
Or install with Go:
go install github.com/saintedlama/pcloud-cli@latestClone the repository and run make build to compile the binary locally — Go 1.26 or later is required.
Run go test ./... to execute the test suite, and make fmt to verify formatting before opening a pull request.
The CI pipeline enforces gofmt, go vet, a full build, and all tests, so running those locally first is the fastest way to spot issues.
git clone https://github.com/saintedlama/pcloud-cli.git
cd pcloud-cli
make build # produces ./pcloud-cli
go test ./...
make install # optional, moves binary to $GOPATH/bin or $GOBINRun onboard once to authenticate and save credentials to ~/.pcloud.json:
pcloud-cli onboardThe wizard will ask for your region (US / EU), email, and password. Only a session token is stored — your password is never saved.
Usage:
pcloud-cli [flags]
pcloud-cli [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
file Actions to manage files.
folder Actions to manage folders.
help Help about any command
onboard Set up pcloud-cli for the first time.
sync Sync between a pCloud folder and a local directory.
tui Open an interactive file browser.
version Print the version number of pCloud-cli
Flags:
--config string config file (default is $HOME/.pcloud.json)
-h, --help help for pcloud-cli
-v, --verbose verbose output for debugging
Usage:
pcloud-cli file [command]
Available Commands:
checksum Calculate checksums of file.
copy Copy file to another location.
delete Delete file.
get Get remote file url and download it.
rename Rename / Move source file.
upload Upload local file to remote folder.
Usage:
pcloud-cli folder [command]
Available Commands:
create Create folder.
delete Delete folder.
download Download and extract a remote folder.
list List folders in pCloud directory.
rename Rename / Move folder.
Sync keeps a local directory and a pCloud directory in step.
Usage:
pcloud-cli sync <pcloud-path> [local-dir] [flags]
pcloud-cli sync [command]
Available Commands:
daemon Sync continuously, polling pCloud for changes.
systemd Install a systemd user service for continuous sync.
Flags:
--interval duration polling interval used by the daemon (default 1m0s)
--mode string sync direction: "down" (pCloud → local) or "up" (local → pCloud) (default "down")
Download (pCloud → local) — default direction:
pcloud-cli sync /Music ./Music
# or explicitly:
pcloud-cli sync /Music ./Music --mode downOnly files newer on pCloud are downloaded; files deleted from pCloud are removed locally.
Upload (local → pCloud):
pcloud-cli sync /Music ./Music --mode upFiles locally newer or absent on pCloud are uploaded; remote files no longer
present locally are deleted from pCloud. Both <pcloud-path> and <local-dir>
are required in upload mode.
Continuous daemon:
pcloud-cli sync daemon /Music ./Music --interval 5mInstall as a systemd user service:
pcloud-cli sync systemd /Music ./Music --interval 5m
# dry-run to preview unit file without writing anything:
pcloud-cli sync systemd /Music ./Music --dry-runpcloud-cli tuiOpens a terminal UI for browsing, downloading, and managing files.
Clone the repository and run:
make buildmake install

