bkpdrive
CLI · Quickstart

Your drive, from the terminal.

bkp is the bkpdrive command-line client — upload, download, list, and manage your files from any shell. One static binary, no dependencies.

01Install

macOS, Linux, and WSL — one line. It detects your OS and architecture and drops a single binary on your PATH.

$ curl -fsSL https://bkpdrive.com/cli/install.sh | sh

Windows: download bkp-windows-amd64.exe and put it on your PATH. Prefer a custom location? BKP_INSTALL_DIR=~/.local/bin curl … | sh.

02Set up

Authenticate once with a Personal Access Token. The token has the same access as your account — keep it secret.

  1. Generate a token in the web app at app.bkpdrive.com/settingsPersonal access tokensGenerate token. Copy it (it's shown once).
  2. Log in — saves the token to ~/.bkpdrive/config.json:
    $ bkp login --token bkp_pat_xxxxxxxx
  3. Verify you're connected:
    $ bkp whoami && bkp quota
Scripts & automation: skip the prompt entirely with an environment variable — export BKPDRIVE_TOKEN=bkp_pat_…. Every command also takes --json for machine-readable output.

03Usage

Address files by name or by a /path (e.g. /photos/trip.zip) — no ids to copy around. Set a working folder with cd and relative paths resolve against it, just like a shell.

bkp cd [path]Set the working folder (no arg → root). Relative .. works.
bkp pwdPrint the current working folder.
bkp ls [path]List names like ls. -l details · -a hidden · --trash · --recent.
bkp tree [path]Show a folder as a tree. -L <depth> to limit.
bkp ul <file> [dest]Upload a local file (into an optional folder).
bkp dl <path> [-o out]Download a file. -o - writes to stdout.
bkp cp <src> <dst>Copy local ↔ bkpdrive, scp-style. Prefix remote paths with bkp:
bkp mkdir <name>Create a folder.
bkp mv <src> <dest>Move or rename.
bkp rm [-r] <path>…Delete to trash (-r for folders).
bkp quotaStorage used and available.
bkp whoamiWho you're signed in as.
bkp token new|ls|rmManage access tokens.

Exit codes: 0 ok · 2 usage · 3 auth · 4 not found · 5 quota · 6 error · 7 network. Large uploads are split and streamed automatically.

04Examples

Everyday flows.

# work inside a folder and copy in, scp-style
$ bkp cd /backups
$ bkp cp ~/db.dump bkp:.
$ bkp ls
# make a folder and upload into it
$ bkp mkdir reports
$ bkp ul ~/q3-report.pdf /reports
$ bkp ls /reports
# download by path (or by id)
$ bkp dl /reports/q3-report.pdf -o ./q3.pdf
# back up a directory as an archive
$ tar czf project.tar.gz ~/project
$ bkp ul ./project.tar.gz
# scripting — no prompts, JSON output
$ export BKPDRIVE_TOKEN=bkp_pat_xxxx
$ bkp --json ls | jq -r '.files[].id'