Hub Overview
What is Pipe Hub?
Pipe Hub is a central registry for sharing and versioning pipelines. Instead of copying YAML files between machines, you can push a pipeline to Hub and pull it anywhere:
pipe push myorg/deploypipe pull myorg/deployLocal store layout
Hub pipelines are stored under ~/.pipe/hub/ using a git-like content-addressable layout:
~/.pipe/hub/<owner>/<name>/├── index.json # Metadata, tags, active tag├── HEAD # Symlink → tags/<tag> or blobs/sha256/<hex>├── blobs/│ └── sha256/│ └── <hex> # Content-addressable YAML blob└── tags/ ├── latest # Symlink → ../blobs/sha256/<hex> └── dev # Regular file (editable tag)index.json
Schema-versioned metadata including the pipeline owner, name, all pulled tags with their SHA-256 checksums, sizes, and timestamps.
HEAD
A symlink pointing to the currently active tag (or directly to a blob in detached HEAD state). Pipe reads HEAD to determine which content to run.
Blobs
Content-addressable storage keyed by SHA-256 hash. When you push or pull, Pipe deduplicates content — identical YAML produces the same blob.
Tags
Tags point to blobs. A symlink tag is immutable (the content at that tag is frozen). A regular file tag (editable) is an independent copy that can be modified locally.
Mutable vs immutable pipelines
| Type | Behavior |
|---|---|
| Immutable | Tags cannot be overwritten once pushed (except latest). Guarantees reproducibility. |
| Mutable | Tags can be reassigned to new content. Useful for living pipelines that evolve. |
The mutability is set when the pipeline is created on Hub.
Resolution
When you run pipe myorg/deploy, Pipe:
- Loads
index.jsonfrom~/.pipe/hub/myorg/deploy/ - Reads
HEADto find the active tag (or blob) - Reads the YAML content from the tag/blob path
- Parses and executes the pipeline