Get the Command-Line Tool

Now that you have created an account, you're ready to get the command-line tool that gives easy access to all of the capabilities of B2 Cloud Storage

The B2 command-line tool is available from the Python Package Index (PyPI) using the standard pip installation tool. Your first step is to make sure that you have either Python 2 (2.6 or later) or Python 3 (3.2 or later) installed.

Installing on Mac (OSX)

You're lucky. Python is already installed by Apple. If you haven't already installed the pip installation tool, you need to install it:

  1. sudo easy_install pip

Once you have Python, and the pip command, installation is simple:

  1. sudo pip install --upgrade b2

If you see a message like this, it's because Apple installs a really old version of one of the Python libraries that B2 uses:

  1. OSError: [Errno 1] Operation not permitted: '/tmp/pip-BMa2Su-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'

You can work around this with the --ignore-installed option:

  1. sudo pip install --upgrade --ignore-installed b2

Installing on Windows

To install Python2, pip, and the B2 command-line tool on Windows:

  1. Go to Python Releases for Windows and select the "Latest Python 2 Release".
  2. Download the "Windows x86-64 MSI installer" or "Windows x86 MSI installer" depending on your Windows operating system.
  3. Run the installer, by default it will install Python to C:\Python27
  4. Edit your PATH environment variable to include C:\Python27\;C:\Python27\Scripts\
  5. Open a command window and type pip install --upgrade b2

Alternative Method

The alternative installation procedure is first make sure that you have Python installed, and then download the latest version of the source code from Github:

  1. git clone
  2. cd B2_Command_Line_Tool
  3. python install


Once you have the b2 command-line tool installed, you can type "b2" on the command-line to see all of the options.

This program provides command-line access to the B2 service.

    b2 authorize-account [<applicationKeyId>] [<applicationKey>]
    b2 cancel-all-unfinished-large-files <bucketName>
    b2 cancel-large-file <fileId>
    b2 clear-account
    b2 create-bucket [--bucketInfo <json>] [--corsRules <json>] [--lifecycleRules <json>] <bucketName> [allPublic | allPrivate]
    b2 create-key [--duration <validDurationSeconds>] [--bucket <bucketName>] [--namePrefix <namePrefix>] <keyName> <capabilities>
    b2 delete-bucket <bucketName>
    b2 delete-file-version [<fileName>] <fileId>
    b2 delete-key <applicationKeyId>
    b2 download-file-by-id [--noProgress] <fileId> <localFileName>
    b2 download-file-by-name [--noProgress] <bucketName> <fileName> <localFileName>
    b2 get-account-info
    b2 get-bucket [--showSize] <bucketName>
    b2 get-download-auth [--prefix <fileNamePrefix>] [--duration <durationInSeconds>] <bucketName>
    b2 get-download-url-with-auth [--duration <durationInSeconds>] <bucketName> <fileName>
    b2 get-file-info <fileId>
    b2 help [commandName]
    b2 hide-file <bucketName> <fileName>
    b2 list-buckets
    b2 list-file-names <bucketName> [<startFileName>] [<maxToShow>]
    b2 list-file-versions <bucketName> [<startFileName>] [<startFileId>] [<maxToShow>]
    b2 list-keys
    b2 list-parts <largeFileId>
    b2 list-unfinished-large-files <bucketName>
    b2 ls [--long] [--versions] [--recursive] <bucketName> [<folderName>]
    b2 make-url <fileId>
    b2 sync [--delete] [--keepDays N] [--skipNewer] [--replaceNewer] \
        [--compareVersions <option>] [--compareThreshold N] \
        [--threads N] [--noProgress] [--dryRun ] [--allowEmptySource ] \
        [--excludeRegex <regex> [--includeRegex <regex>]] \
        [--excludeDirRegex <regex>] \
        <source> <destination>
    b2 update-bucket [--bucketInfo <json>] [--corsRules <json>] [--lifecycleRules <json>] <bucketName> [allPublic | allPrivate]
    b2 upload-file [--sha1 <sha1sum>] [--contentType <contentType>] \
        [--info <key>=<value>]* [--minPartSize N] \
        [--noProgress] [--threads N] <bucketName> <localFilePath> <b2FileName>
    b2 version

The environment variable B2_ACCOUNT_INFO specifies the sqlite
file to use for caching authentication information.
The default file to use is: ~/.b2_account_info

For more details on one command: b2 help <command>

Now that you have the command-line tool, you're ready to make a bucket to hold your files.