Upload a model
With the hf CLI
Section titled “With the hf CLI”HF_TOKEN=<your-key> HF_ENDPOINT=https://siahub.app \ hf upload <owner>/<repo> ./path/to/filesThis works for single files (./model.safetensors) or directories
(./my-model/). Recursion is on by default.
Filtering
Section titled “Filtering”Upload only the weights:
HF_TOKEN=<your-key> HF_ENDPOINT=https://siahub.app \ hf upload <owner>/<repo> . --include="*.safetensors"Multiple patterns are supported (--include="*.json" --include="*.md").
What gets stored where
Section titled “What gets stored where”- Small text files (README,
config.json,tokenizer.json) land as inline LFS in Postgres — shown once on the model page, cheap to fetch. - Large binaries go through the Xet chunk pipeline:
hf_xetchunks and compresses them, SiaHub receives xorbs, caches them locally, and queues a Sia pin. The Sia upload runs asynchronously; thehf uploadcommand returns as soon as SiaHub has durable bytes.
Authentication
Section titled “Authentication”HF_TOKEN is your SiaHub API key, not your huggingface.co token. They
can coexist — your hf auth login for huggingface.co keeps working. The
per-command prefix (HF_TOKEN=... HF_ENDPOINT=...) only applies to that
invocation.