dbxcli is a scriptable Dropbox CLI for files, shared links, teams, and
automation workflows. It is built for humans in the terminal, scripts, CI jobs,
and agent-style workflows.
- Work with Dropbox from the terminal
- Upload and download files, folders, and streams
- Create, inspect, update, revoke, and download shared links
- Use JSON output for scripts and automation
- Pipe generated content directly into Dropbox
- Manage team workflows with member-scoped access
dbxcli login
dbxcli ls /
dbxcli put local.txt /remote.txt
dbxcli get /remote.txt ./remote.txt
dbxcli share-link create /remote.txtOn team accounts where / is not writable, run dbxcli ls / and use a
writable personal or team folder instead.
For automation, use structured command output and JSON help discovery:
dbxcli ls --output=json /
dbxcli --help --output=json
dbxcli put --help --output=jsonStable JSON envelopes, error codes, and process exit codes are documented in Automation and JSON output.
For commands that support structured execution output, --output=json runs the
command and emits stable schema v1 success and error envelopes for automation.
JSON help is the machine-readable command-discovery surface. Use it to discover command paths, arguments, flags, aliases, input schemas, auth behavior, stdin/stdout behavior, schema references, and whether structured command execution output is supported:
dbxcli --help --output=json
dbxcli put --help --output=jsonSee the JSON schema v1 docs for schemas, stability policy, command contracts, and examples.
Upload a file:
dbxcli put report.pdf /Reports/report.pdfUpload without overwriting:
dbxcli put --if-exists fail report.md /Reports/report.mdUpload from a pipe:
tar cz ./project | dbxcli put - /Backups/project.tgzDownload to stdout:
dbxcli get /Backups/project.tgz - | tar tzCreate a shared link:
dbxcli share-link create /Reports/report.pdfIn text mode, share-link create prints only the shared-link URL to stdout:
url="$(dbxcli share-link create /Reports/report.pdf)"Some team accounts may not have a writable Dropbox root namespace. Run
dbxcli ls / first, then upload under a writable folder, such as your personal
folder or a team folder.
dbxcli uses Go's standard HTTP proxy behavior, so HTTPS_PROXY,
HTTP_PROXY, and NO_PROXY apply to Dropbox API requests and OAuth token
exchange/refresh requests made by the CLI.
For Dropbox API and OAuth requests, set HTTPS_PROXY:
HTTPS_PROXY=http://127.0.0.1:8080 dbxcli ls /For a shell session:
export HTTPS_PROXY=http://proxy.company.example:8080
export NO_PROXY=localhost,127.0.0.1,.company.example
dbxcli loginOn Windows PowerShell:
$env:HTTPS_PROXY = "http://127.0.0.1:8080"
dbxcli loginOn Windows cmd:
set HTTPS_PROXY=http://127.0.0.1:8080
dbxcli loginHTTP_PROXY is also honored for plain HTTP requests. Use NO_PROXY to bypass
the proxy for local or internal hosts. Lowercase forms such as https_proxy
and no_proxy are also supported by Go's HTTP stack.
If your proxy requires basic authentication, include credentials in the proxy URL:
HTTPS_PROXY=http://user:password@proxy.company.example:8080 dbxcli ls /URL-encode special characters in proxy usernames or passwords. Be careful with proxy credentials in environment variables, shell history, CI logs, and process listings.
The browser authorization step in dbxcli login is outside dbxcli; configure
your browser or operating-system proxy separately if that page also needs a
proxy.
- File operations:
ls,cp,mkdir,mv,rm,put, andget - Recursive upload and download with
put -randget -r - Pipe-friendly transfers with stdin upload and stdout download
- Conflict control with
put --if-exists overwrite|skip|autorename|failandcp/mv --if-exists fail|skip|autorename - Shared-link creation, listing, inspection, update, revoke, and download
- Search, file revisions, restore, flexible sorting, and time formatting
- Chunked uploads for large files and paginated listing for large directories
- OAuth login with refreshable saved credentials
- Direct token automation with
DBXCLI_ACCESS_TOKEN - Alternate saved-credential files with
DBXCLI_AUTH_FILE - Structured JSON success and error envelopes for supported commands
- JSON help manifests for machine-readable command discovery
- Team administration commands and member-scoped access with
--as-member
brew install dbxcliHomebrew formula: formulae.brew.sh/formula/dbxcli
Download the archive for your platform from the
releases page, verify its
checksum, and install the dbxcli binary somewhere on your PATH.
Linux example:
curl -LO https://github.com/dropbox/dbxcli/releases/download/vX.Y.Z/dbxcli_X.Y.Z_linux_amd64.tar.gz
curl -LO https://github.com/dropbox/dbxcli/releases/download/vX.Y.Z/SHA256SUMS
grep 'dbxcli_X.Y.Z_linux_amd64.tar.gz' SHA256SUMS | sha256sum -c -
tar -xzf dbxcli_X.Y.Z_linux_amd64.tar.gz
sudo mv dbxcli_X.Y.Z_linux_amd64/dbxcli /usr/local/bin/Release assets include:
dbxcli_X.Y.Z_darwin_amd64.tar.gzdbxcli_X.Y.Z_darwin_arm64.tar.gzdbxcli_X.Y.Z_linux_amd64.tar.gzdbxcli_X.Y.Z_linux_arm64.tar.gzdbxcli_X.Y.Z_linux_arm.tar.gzdbxcli_X.Y.Z_openbsd_amd64.tar.gzdbxcli_X.Y.Z_windows_amd64.zipSHA256SUMS
go install github.com/dropbox/dbxcli/v3@latestOr build from a clone:
git clone https://github.com/dropbox/dbxcli.git
cd dbxcli
go build .dbxcli is maintained in the Dropbox GitHub organization by Dropbox engineers,
but it is not a formally supported Dropbox product. Use GitHub issues and pull
requests for bugs and contributions; Dropbox Support does not provide support
for this CLI. The CLI implements a practical subset of Dropbox API features,
not the full API surface.
The complete generated command reference is available here:
For command-specific help, run:
dbxcli --help
dbxcli put --help
dbxcli share-link --help
dbxcli share-link create --helpFor machine-readable command discovery, use JSON help:
dbxcli --help --output=json
dbxcli put --help --output=jsonGenerated Cobra command docs live under docs/commands/, and CI verifies they
stay in sync with the CLI.
- If you are submitting a non-trivial change, please fill out the Dropbox Contributor License Agreement first.
- Open a pull request with a clear description of the change.
- Include tests or manual validation details when relevant.