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.
- Generate a token in the web app at app.bkpdrive.com/settings → Personal access tokens → Generate token. Copy it (it's shown once).
- Log in — saves the token to
~/.bkpdrive/config.json:$ bkp login --token bkp_pat_xxxxxxxx - Verify you're connected:
$ bkp whoami && bkp quota
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 pwd | Print 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 quota | Storage used and available. |
bkp whoami | Who you're signed in as. |
bkp token new|ls|rm | Manage 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'