HologramHologram

Connect

Hugging Face tools

Point the tools you already have at the hub with one environment variable.

Markdown

Your code already downloads models through huggingface_hub. It reads one variable to decide where from. Set it and nothing else changes: same commands, same cache directory, same file layout.

export HF_ENDPOINT=https://gethologram.ai

What that reaches

Tool Setting Verified
hf CLI, huggingface_hub (hf_hub_download, snapshot_download, HfApi) HF_ENDPOINT 1.x and 0.36
transformers, diffusers, sentence-transformers (from_pretrained) HF_ENDPOINT metadata and download path
vLLM, SGLang, TGI, KServe hf:// HF_ENDPOINT same client path; a full serving run has not been recorded
llama.cpp -hf, llama-server -hf MODEL_ENDPOINT=https://gethologram.ai/ build 11028
transformers.js, @huggingface/hub in a browser the URL, cross-origin every read route sends Access-Control-Allow-Origin: *

docker model pull hf.co/…, LM Studio and Jan hardcode huggingface.co and cannot be pointed here.

Download a model

export HF_ENDPOINT=https://gethologram.ai
hf download hexgrad/Kokoro-82M

Or from Python:

import os
os.environ["HF_ENDPOINT"] = "https://gethologram.ai"

from huggingface_hub import HfApi, hf_hub_download, snapshot_download

api = HfApi()
print([m.id for m in api.list_models(search="kokoro", limit=3)])
# ['hexgrad/Kokoro-82M', 'oddadmix/Kokoro-7M-Distill']

info = api.model_info("hexgrad/Kokoro-82M")
print(info.sha, len(info.siblings))
# f3ff3571791e39611d31c381e3a41a3af07b4987 72

path = hf_hub_download("hexgrad/Kokoro-82M", "EVAL.md")
local = snapshot_download("hexgrad/Kokoro-82M")

main resolves to the indexed revision, so snapshot_download lands in snapshots/f3ff3571…/, the same directory a download from huggingface.co of that commit would use. The two caches are interchangeable.

Load a model

import os
os.environ["HF_ENDPOINT"] = "https://gethologram.ai"

from transformers import AutoConfig, AutoTokenizer
config = AutoConfig.from_pretrained("Qwen/Qwen3-0.6B")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-0.6B")
print(config.model_type, tokenizer("hub")["input_ids"])
# qwen3 [26682]

from_pretrained for weights takes the same path; it needs a framework such as PyTorch installed, which the hub does not change.

llama.cpp

MODEL_ENDPOINT=https://gethologram.ai/ llama-server -hf bartowski/MiniCPM5-2B-GGUF:IQ2_M

The GGUF lands in the shared Hugging Face cache layout and loads.

Verify afterwards

huggingface_hub checks the size of each file, not its hash. For the check that matters, run this inside the downloaded snapshot directory:

cd "$(hf download hexgrad/Kokoro-82M)"
curl -s https://gethologram.ai/hexgrad/Kokoro-82M/resolve/main/SHA256SUMS | sha256sum -c

hf download prints the snapshot directory it filled, so the first line lands you in it.

Search from the command line

The list route is Hugging Face's, with the same filters, plus a hologram block per row. It answers in a few hundred bytes, not a catalogue.

curl -s "https://gethologram.ai/api/models?search=qwen&pipeline_tag=text-generation&filter=gguf&sort=downloads&limit=5"
Parameter Meaning
search case-insensitive substring of the model id
author exact <owner>
pipeline_tag exact task, e.g. text-generation, text-to-speech
library exact library, e.g. transformers, gguf
filter a tag that must be present, e.g. gguf, apache-2.0; repeat or comma-separate for several
sort trendingScore (default), downloads, likes, createdAt
direction 1 ascending; anything else descending
limit 1 to 500, default 50

What is not here

The hub indexes a daily snapshot of trending open models, not all of Hugging Face. A model that is not in the index answers 404 with a sentence saying so, and the request is recorded for the next index run. Until then, huggingface.co still works for it: unset HF_ENDPOINT for that one call. See Limits and scope.