This release brings major improvements to the hf CLI with extension discoverability, unified list commands, and multiple QoL improvements in the CLI.
🎉 The Homebrew formula of the Hugging Face CLI has been renamed to hf. Existing users just need to run brew update - Homebrew handles the rename automatically. New users can install with brew install hf.
🧩 CLI Extensions: pip-installable packages and discoverability
The hf CLI extensions system gets a major upgrade in this release. Extensions can now be full Python packages (with a pyproject.toml) installed in isolated virtual environments, in addition to the existing shell script approach. This means extension authors can use Python dependencies without conflicting with the user's system. The install command auto-detects whether a GitHub repo is a script or a Python package and handles both transparently.
A new hf extensions search command lets users discover available extensions directly from the terminal by querying GitHub repositories tagged with the hf-extension topic. Results are sorted by stars and show whether each extension is already installed locally. Additionally, a comprehensive guide on how to build, publish, and make extensions discoverable has been added to the documentation.
# Install a Python-based extension
hf extensions install alvarobartt/hf-mem
# Discover available extensions
hf extensions search
NAME REPO STARS DESCRIPTION INSTALLED
------ ----------------------- ----- ----------------------------------- ---------
claude hanouticelina/hf-claude 2 Extension for `hf` CLI to launch... yes
agents hanouticelina/hf-agents HF extension to run local coding...- [CLI] Add pip installable repos support to hf extensions by @Wauplin in #3892
- [CLI] Add
hf extensions searchcommand by @julien-c in #3905 - [Docs] How to build a CLI extension guide by @Wauplin in #3908
📚 Documentation: Create a CLI extension
🔐 hf auth login CLI update
A new --force flag lets you explicitly go through the full login flow again when needed, for example to switch tokens.
# Already logged in — returns immediately
hf auth login
# Force re-login to switch tokens
hf auth login --force- Default to skipping login if already logged in and add
--forceflag by @hanouticelina in #3920
📚 Documentation: CLI guide
🖥️ CLI QoL Improvements
- Add num_parameters filtering to hf API and CLI by @evalstate in #3897 — docs
- [CLI] Normalize all list/ls commands to use
list | lsalias by @julien-c in #3901 - [CLI] Add --format and --quiet options to
hf papers lsby @julien-c in #3903 - [CLI] Add hidden
--jsonshorthand for--format jsonby @Wauplin in #3919 - Allow 'hf skills add' default directory by @Wauplin in #3923
🔧 Other QoL Improvements
- Add
used_storagefield to ModelInfo, DatasetInfo, and SpaceInfo by @julien-c in #3911 - Make sure all expand attributes are official ModelInfo/DatasetInfo/SpaceInfo by @Wauplin in #3918
📖 Documentation
- [Docs] Update some community CLI examples by @Wauplin in #3899
- [Docs] Update Homebrew install command to
hfby @julien-c in #3902
🐛 Bug and typo fixes
- snapshot_download operation raises the generic exception even when actual error is different. by @pavankumarch470 in #3914
🏗️ Internal
- [Internal] Don't trigger Skills sync workflow on release candidate by @hanouticelina in #3893
- [Internal] Fix skills path in Skills sync workflow by @hanouticelina in #3894
- [CI] All-in-one Github Action for releases by @Wauplin in #3916