The Harbor registry is getting an upgrade
March 27, 2026
Introducing a new way to package and distribute Harbor tasks and datasets.
One of Harbor's core principles is that environments should be portable and easily flow between parties. We designed the Harbor task format, and released the open-source package to make it easy for users to create environments and run rollouts. We created the Harbor registry to simplify distributing Harbor tasks and datasets.
Today we're announcing our next step on that journey: a self-service Harbor registry.
The Harbor registry makes distributing Harbor tasks and datasets simple. Using the Harbor CLI, you can now publish your data and share it with anyone. Similar to all other Harbor features, the task is the atomic unit of the registry. Datasets are collection of tasks at specific versions. Registered data can be private or public.
Publishing a task or dataset is a simple three-step process:
For a full walkthrough, see Publishing a dataset.
Create a task or dataset
To create a task, run
harbor init --task hello/taskYou can then edit the task files to implement your task.
You can then initialize a dataset in the same directory by running
harbor init --dataset hello/datasetwhich creates a dataset.toml manifest and automatically adds any tasks from the directory to the manifest.
You can add other tasks from the registry or locally by running
harbor add org/task --to "<path/to/dataset>" # or harbor add "<path/to/task>"Publish to the registry
First, log in or create an account using
harbor auth loginThen publish the task using
harbor publish "<path>" # optionally add --public to make it publicHarbor automatically publishes tasks and datasets at the path.
Run the task or dataset
Once your task is published, anyone in your org (or if it's public, any Harbor user) can run
harbor run -d hello/datasetor
harbor run -t hello/worldto run the dataset or task.
We encourage Harbor users to distribute benchmarks and datasets through the Harbor registry.
We don't anticipate that task development itself happens in the registry, but rather on existing version control platforms and then published to the registry, similar to how Docker or PyPI work.
Every published task or dataset is versioned by its digest, a revision number, and optional tags. This maximizes reproducibility and emphasizes registered data as snapshots or tasks and datasets to be distributed, rather than a development platform.
We welcome feedback on the registry and will continue to develop tools to maximize the usability, portability, and creation of environments.
The Harbor Team