🚀 Jobs can now mount volumes
Jobs can now access Hugging Face repositories (models, datasets, Spaces) and Storage Buckets directly as mounted volumes in their containers. This enables powerful workflows like running queries directly against datasets, loading models without explicit downloads, and persisting training checkpoints to buckets.
from huggingface_hub import run_job, Volume
job = run_job(
image="duckdb/duckdb",
command=["duckdb", "-c", "SELECT * FROM '/data/**/*.parquet' LIMIT 5"],
volumes=[
Volume(type="dataset", source="HuggingFaceFW/fineweb", mount_path="/data"),
],
)hf jobs run -v hf://datasets/HuggingFaceFW/fineweb:/data duckdb/duckdb duckdb -c "SELECT * FROM '/data/**/*.parquet' LIMIT 5"📖 Papers CLI is now complete
The hf papers command now has full functionality: search papers by keyword, get structured JSON metadata, and read the full paper content as markdown. The ls command is also enhanced with new filters for week, month, and submitter.
# Search papers
hf papers search "vision language"
# Get metadata
hf papers info 2601.15621
# Read as markdown
hf papers read 2601.15621🖥️ CLI repo ID shorthand
You can now use repo ID prefixes like spaces/user/repo, datasets/user/repo, and models/user/repo as a shorthand for user/repo --type space. This works automatically for all CLI commands that accept a --type flag.
# Before
hf download user/my-space --type space
hf discussions list user/my-dataset --type dataset
# After
hf download spaces/user/my-space
hf discussions list datasets/user/my-dataset🔧 More repo visibility options
Repositories can now be created or updated with explicit visibility settings (--public, --protected) alongside the existing --private flag. This adds a visibility parameter to HfApi.create_repo, update_repo_settings, and duplicate_repo, with --protected available for Spaces only.
Protected Spaces allow for private code while being publicly accessible.
- Add
visibilityparameter toHfApirepo create/update/duplicate methods by @hanouticelina in #3951
🖥️ CLI
- Add space-specific options to
hf repos createandhf repos duplicateby @Wauplin in #3888 - Add
--format jsontohf auth whoamiby @hanouticelina in #3938 — docs - Expand nested groups, inline flags & common options glossary in
SKILL.mdby @hanouticelina in #3941 - Include common options inline in generated
SKILL.mdby @hanouticelina in #3955 - Fix
hf extensions installon uv-managed Python by using uv when available by @hanouticelina in #3957 - Add dataset leaderboard method to HfApi by @davanstrien in #3953
- More explicit spaces hot-reload docs by @cbensimon in #3964
- Update hardware flavors with HF Hub (cpu-performance, sprx8, h200, inf2x6) by @cbensimon in #3965 — docs
🔧 Other QoL Improvements
- Rename
.envto.venvin virtual environment instructions by @julien-c in #3939 — docs - Fix typo in
--everyhelp text by @julien-c in #3950 - More robust stream to stdout in
hf cpcommand by @Wauplin in #3968
🐛 Bug and typo fixes
- Use module logger consistently and narrow bare except clauses by @mango766 in #3924
- Fix HfFileSystem glob in missing subdir by @lhoestq in #3935
🏗️ Internal
- Remove conda workflow by @Wauplin in #3928
- Replace
huggingface-cliwithhfin brew upgrade command by @hanouticelina in #3946 - Fix version check message leaking into generated
SKILL.mdby @hanouticelina in #3949 - Mention
hf-mountin CLI skill by @hanouticelina in #3966 - Use
huggingface-hub-botfor post-release PR creation inrelease.ymlby @Wauplin in #3967