Account, Token und die CLI
Die CLI heißt seit Juli 2025 hf, und ein Token mit Schreibrechten braucht fast niemand.
Meilenstein hf auth whoami nennt deinen Benutzernamen, ein kleines Modell liegt im Cache, und du kannst sagen, in welchem Verzeichnis es liegt und wie groß es ist.
Ab hier brauchst du ein Konto. Es kostet nichts, und für alles in diesem Kurs reicht die kostenlose Stufe.
Dieses Kapitel hat drei Ergebnisse: einen Account, ein Token mit genau den Rechten, die du brauchst, und eine funktionierende Kommandozeile - die anders heißt, als in fast jeder Anleitung steht, die älter als ein Jahr ist.
Schritt 1 - Account anlegen
Auf huggingface.co/join registrieren, E-Mail
bestätigen, fertig. Der Benutzername ist gleichzeitig dein Namensraum: Alles,
was du später veröffentlichst, heißt deinname/irgendwas. Er lässt sich später
ändern, aber dann brechen Links - such dir gleich einen aus, den du behalten
willst.
Schritt 2 - Die Bibliothek installieren
python -m venv .venv && source .venv/bin/activate
pip install -U huggingface_hubAuf Windows heißt die zweite Hälfte der ersten Zeile .venv\\Scripts\\activate.
Das Paket bringt zwei Dinge mit: den Python-Client (HfApi,
snapshot_download und Verwandte) und das Kommandozeilenwerkzeug.
Schritt 3 - Die CLI heißt hf
Prüf, dass es da ist:
hf version
hf --helpDie Aufrufe, die du in diesem Kurs brauchst, folgen alle demselben Muster:
| Befehl | Wozu |
|---|---|
hf auth login | Token hinterlegen |
hf auth whoami | wer bin ich gerade |
hf download <repo> | Repo in den Cache holen |
hf upload <repo> <ordner> | Dateien hochladen |
hf repo create <name> | neues Repo anlegen |
Schritt 4 - Ein Token, das möglichst wenig darf
Tokens legst du unter huggingface.co/settings/tokens an. Es gibt drei Sorten, und die Reihenfolge im Formular verführt zur falschen Wahl:
- read - darf alles lesen, was dir zugänglich ist, inklusive privater Repos.
- write - darf zusätzlich schreiben, überall, in jedem deiner Repos.
- fine-grained - darf genau das, was du ankreuzt, und nur in den Repos oder Organisationen, die du auswählst.
Nimm fine-grained. Das ist auch die offizielle Empfehlung für den produktiven Einsatz, und der Grund ist unspektakulär: Ein Token landet irgendwann versehentlich in einem Log, einem Screenshot oder einem Commit. Was dann passiert, hängt allein davon ab, was das Token darf.
Für dieses Kapitel und die folgenden brauchst du:
- Read access to contents of all public gated repos (falls du je ein gesperrtes Modell willst)
- Write access to contents/settings - aber nur für deinen eigenen Namensraum, und ehrlich gesagt erst ab Kapitel 04. Bis dahin genügt Lesen.
Anmelden:
hf auth login
# Token einfügen (die Eingabe bleibt unsichtbar), dann:
hf auth whoami
# → deinbenutzernameDas Token liegt danach in ~/.cache/huggingface/token. In Skripten und CI
nimmst du es nicht von dort, sondern aus der Umgebungsvariablen HF_TOKEN -
dann steht es nirgends im Code.
Schritt 5 - Der erste Download und wo er landet
hf download Qwen/Qwen2.5-0.5B-InstructRund 1 GB, je nach Leitung eine halbe bis zwei Minuten. Am Ende gibt der Befehl einen Pfad aus, und der sieht ungefähr so aus:
~/.cache/huggingface/hub/models--Qwen--Qwen2.5-0.5B-Instruct/snapshots/<commit-sha>/
Drei Dinge stecken in diesem Pfad:
~/.cache/huggingface/hubist der zentrale Cache. Jede Bibliothek und jedes Skript auf deinem Rechner benutzt denselben - ein Modell wird nie zweimal geladen, egal aus welchem Projekt heraus.models--Org--Nameist der umkodierte Repo-Name. Die doppelten Bindestriche stehen für die Schrägstriche.snapshots/<commit-sha>ist der entscheidende Teil: Der Cache ist nach Commits organisiert, nicht nach Versionsnummern. Genau deshalb kannst du in Kapitel 03 auf einen Commit pinnen, ohne dass es dich etwas kostet.
Möchtest du den Cache woanders haben - auf einer größeren Platte, in einem
gemeinsamen Verzeichnis auf dem Server -, setz HF_HOME:
export HF_HOME=/daten/huggingface
hf download Qwen/Qwen2.5-0.5B-InstructAlles, auch das Token, zieht dann dorthin um. Auf einem Server, auf dem mehrere Dienste dieselben Modelle brauchen, ist das die erste Zeile, die man schreibt.
Nur Teile eines Repos holen geht auch, und bei großen Modellen ist das der Unterschied zwischen 15 GB und 150 GB:
hf download Qwen/Qwen2.5-0.5B-Instruct --include "*.safetensors" "*.json"Warum das schneller war, als du erwartet hast
Lange Zeit lagen große Dateien auf dem Hub in Git LFS. Seit dem 23. Mai 2025 ist für neue Konten und Organisationen Xet die Voreinstellung - ein anderes Speicher-Backend, das Dateien in inhaltsabhängige Blöcke schneidet und nur die Blöcke überträgt, die sich geändert haben.
Praktisch heißt das: Wenn ein Modellanbieter eine 8-GB-Gewichtsdatei neu
hochlädt, weil sich etwas Kleines geändert hat, lädst du beim nächsten Mal nicht
noch einmal 8 GB. Du musst dafür nichts tun - pip install -U huggingface_hub
bringt das Paket hf_xet mit, und es greift automatisch. Wissen musst du es
nur, wenn dir jemand eine Anleitung zeigt, in der git lfs install steht: Das
ist der alte Weg, er funktioniert weiterhin, ist aber nicht mehr der schnelle.
Der Meilenstein
Drei Zeilen, drei Nachweise:
hf auth whoami
du -sh ~/.cache/huggingface/hub
ls ~/.cache/huggingface/hubDer erste Befehl nennt deinen Benutzernamen. Der zweite sagt dir, wie viel Platz der Cache belegt. Der dritte zeigt das Verzeichnis mit dem umkodierten Repo-Namen darin.
Wenn du alle drei Ausgaben erklären kannst - wer du bist, wo die Dateien liegen, wie groß sie sind -, ist das Kapitel erledigt. Genau das ist übrigens auch die Antwort auf die Frage „warum ist meine Systemplatte voll“: Der Cache räumt sich nicht von selbst auf.