Edit on GitHub


A set of commands to set up and manage remote storage: add, default, list, modify, remove, and rename.


usage: dvc remote [-h] [-q | -v] {add,default,remove,modify,list} ...

positional arguments:
    add                 Add remote.
    default             Set/unset default remote.
    remove              Remove remote.
    modify              Modify remote.
    list                List available remotes.


DVC remotes are distributed storage locations for your data sets and ML models (similar to Git remotes, but for cached assets). This optional feature is typically used to share or back up copies of all or some of your data. Several types are supported: Amazon S3, Google Drive, SSH, HTTP, local file systems, among others.

Learn more about remote storage.

dvc remote subcommands read or modify DVC config files (.dvc/config by default). Alternatively, the config files can be edited manually.


  • -h, --help - prints the usage/help message, and exit.

  • -q, --quiet - do not write anything to standard output. Exit with 0 if no problems arise, otherwise 1.

  • -v, --verbose - displays detailed tracing information.

Example: Add a default local remote

Learn more about local remotes.

We use the -d (--default) option of dvc remote add for this:

$ dvc remote add -d myremote /path/to/remote

The project's config file should now look like this:

['remote "myremote"']
    url = /path/to/remote
    remote = myremote

Example: List all remotes in the project

$ dvc remote list
myremote	/path/to/remote
newremote	s3://mybucket/path

Example: Customize an additional S3 remote

💡 Before adding an S3 remote, be sure to Create a Bucket.

$ dvc remote add newremote s3://mybucket/path
$ dvc remote modify newremote endpointurl https://object-storage.example.com

The project's config file should now look something like this:

['remote "myremote"']
    url = /path/to/remote
    remote = myremote
['remote "newremote"']
    url = s3://mybucket/path
    endpointurl = https://object-storage.example.com

Example: Change the name of a remote

dvc remote modify can't change the name of a DVC remote, but there's a specific subcommand for this:

$ dvc remote rename oldremote newremote

Example: Remove a remote

$ dvc remote remove oldremote