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 your account email and a Personal Access Token. The token has the same access as your account — keep it secret. Tokens can only be created on the web.
- 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 with your account email + the token — saves them to
~/.bkpdrive/config.json:$ bkp login Email: [email protected] Enter token: bkp_pat_xxxxxxxx
- Verify you're connected:
$ bkp whoami && bkp quota
export [email protected] 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). -r for a whole directory. |
bkp dl <path> [-o out] | Download a file. -o - → stdout · -r for a whole folder. |
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 upgrade | Update bkp to the latest version in place (--check to peek first). |
Exit codes: 0 ok · 2 usage · 3 auth · 4 not found · 5 quota · 6 error · 7 network. Large uploads are split and streamed automatically.
⇥ to complete folder and file names (cd completes folders only). Load it in your current shell with source <(bkp completion zsh) (or bash/fish).04Examples
Everyday flows.
# set a working folder and upload into it $ bkp cd /backups $ bkp ul ~/db.dump . $ 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 [email protected] BKPDRIVE_TOKEN=bkp_pat_xxxx $ bkp --json ls | jq -r '.files[].id'