Getting Started

What is ExoHub?

ExoHub lets you manage datasets like code using Git. You get easy versioning, change tracking, and collaboration — the same workflow you use for source code, now for your data.

Under the hood, ExoHub uses git-annex to handle large files efficiently, but the exo CLI abstracts that complexity away.

Install the CLI

Run the installer (Linux/macOS):

curl -fsSL https://github.com/Genentech/exohub/releases/latest/download/install.sh | bash

This downloads and installs exo along with its dependencies (git-annex, s5cmd) to ~/.local/bin.

Add it to your PATH if needed:

export PATH="$HOME/.local/bin:$PATH"

Verify the installation:

exo version

Authenticate

Before accessing datasets, authenticate with your credentials:

exo login

This opens a browser window for SSO authentication. Once complete, your credentials are cached locally for future use.

Clone and Sync a Dataset

Let’s walk through cloning the MNIST tutorial dataset — a classic “hello world” for machine learning.

Clone the repository

exo clone https://github.com/genentech/exohub-data-tutorials/mnist.git
cd mnist

This downloads the repository metadata and structure, but not the actual data files yet. Large files are tracked as lightweight pointers until you need them.

Initialize the repository

exo init

This sets up the local repository for data operations, configuring the necessary remotes and git-annex settings.

Sync the data

exo sync

This downloads the actual data files from remote storage to your local machine. Depending on the dataset size, this may take a moment.

Once complete, your data is ready to use:

ls data/

Next Steps