releases.shpreview

v1.5.0

[v1.5.0]: Buckets API, Agent-first CLI, Spaces Hot-Reload and more

$npx -y @buildinternet/releases show rel_JvVLWGJ8Qnn-r-UYlQqJp

This release introduces major new features including Buckets (xet-based large scale object storage), CLI Extensions, Space Hot-Reload, and significant improvements for AI coding agents. The CLI has been completely overhauled with centralized error handling, better help output, and new commands for collections, papers, and more.

🪣 Buckets: S3-like Object Storage on the Hub

Buckets provide S3-like object storage on Hugging Face, powered by the Xet storage backend. Unlike repositories (which are git-based and track file history), buckets are remote object storage containers designed for large-scale files with content-addressable deduplication. Use them for training checkpoints, logs, intermediate artifacts, or any large collection of files that doesn't need version control.

# Create a bucket
hf buckets create my-bucket --private

# Upload a directory
hf buckets sync ./data hf://buckets/username/my-bucket

# Download from bucket
hf buckets sync hf://buckets/username/my-bucket ./data

# List files
hf buckets list username/my-bucket -R --tree

The Buckets API includes full CLI and Python support for creating, listing, moving, and deleting buckets; uploading, downloading, and syncing files; and managing bucket contents with include/exclude patterns.

  • Buckets API and CLI by @Wauplin in #3673
  • Support bucket rename/move in API + CLI by @Wauplin in #3843
  • Add 'sync_bucket' to HfApi by @Wauplin in #3845
  • hf buckets file deletion by @Wauplin in #3849
  • Update message when no buckets found by @Wauplin in #3850
  • Buckets doc hf install by @julien-c in #3846

📚 Documentation: Buckets guide

🤖 AI Agent Support

This release includes several features designed to improve the experience for AI coding agents (Claude Code, OpenCode, Cursor, etc.):

  • Centralized CLI error handling: Clean user-facing messages without tracebacks (set HF_DEBUG=1 for full traces) by @hanouticelina in #3754
  • Token-efficient skill: The hf skills add command now installs a compact skill (~1.2k tokens vs ~12k before) by @hanouticelina in #3802
  • Agent-friendly hf jobs logs: Prints available logs and exits by default; use -f to stream by @davanstrien in #3783
  • Add AGENTS.md: Dev setup and codebase guide for AI agents by @Wauplin in #3789
# Install the hf-cli skill for Claude
hf skills add --claude

# Install for project-level
hf skills add --project
  • Add hf skills add CLI command by @julien-c in #3741
  • hf skills add installs to central location with symlinks by @hanouticelina in #3755
  • Add Cursor skills support by @NielsRogge in #3810

🔥 Space Hot-Reload (Experimental)

Hot-reload Python files in a Space without a full rebuild and restart. This is useful for rapid iteration on Gradio apps.

# Open an interactive editor to modify a remote file
hf spaces hot-reload username/repo-name app.py

# Take local version and patch remote
hf spaces hot-reload username/repo-name -f app.py
  • feat(spaces): hot-reload by @cbensimon in #3776
  • fix hot reload reference part.2 by @cbensimon in #3820

🖥️ CLI Improvements

New Commands

  • Add hf papers ls to list daily papers on the Hub by @julien-c in #3723
  • Add hf collections commands (ls, info, create, update, delete, add-item, update-item, delete-item) by @Wauplin in #3767

CLI Extensions

Introduce an extension mechanism to the hf CLI. Extensions are standalone executables hosted in GitHub repositories that users can install, run, and remove with simple commands. Inspired by gh extension.

# Install an extension (defaults to huggingface org)
hf extensions install hf-claude

# Install from any GitHub owner
hf extensions install hanouticelina/hf-claude

# Run an extension
hf claude

# List installed extensions
hf extensions list
  • Add hf extension by @hanouticelina in #3805
  • Add hf ext alias by @hanouticelina in #3836

Output Format Options

  • Add --format {table,json} and -q/--quiet to hf models ls, hf datasets ls, hf spaces ls, hf endpoints ls by @hanouticelina in #3735
  • Align hf jobs ps output with standard CLI pattern by @davanstrien in #3799
  • Dynamic table columns based on --expand field by @hanouticelina in #3760

Usability

  • Improve hf CLI help output with examples and documentation links by @hanouticelina in #3743
  • Add -h as short alias for --help by @assafvayner in #3800
  • Add hidden --version flag by @Wauplin in #3784
  • Add --type as alias for --repo-type by @Wauplin in #3835
  • Better handling of aliases in documentation by @Wauplin in #3840
  • Print first example only in group command --help by @Wauplin in #3841
  • Subfolder download: hf download repo_id subfolder/ now works as expected by @Wauplin in #3822

Jobs CLI

List available hardware:

 hf jobs hardware
NAME            PRETTY NAME            CPU      RAM     ACCELERATOR       COST/MIN COST/HOUR 
--------------- ---------------------- -------- ------- ----------------- -------- --------- 
cpu-basic       CPU Basic              2 vCPU   16 GB   N/A               $0.0002  $0.01     
cpu-upgrade     CPU Upgrade            8 vCPU   32 GB   N/A               $0.0005  $0.03     
cpu-performance CPU Performance        32 vCPU  256 GB  N/A               $0.3117  $18.70    
cpu-xl          CPU XL                 16 vCPU  124 GB  N/A               $0.0167  $1.00     
t4-small        Nvidia T4 - small      4 vCPU   15 GB   1x T4 (16 GB)     $0.0067  $0.40     
t4-medium       Nvidia T4 - medium     8 vCPU   30 GB   1x T4 (16 GB)     $0.0100  $0.60     
a10g-small      Nvidia A10G - small    4 vCPU   15 GB   1x A10G (24 GB)   $0.0167  $1.00  
...

Also added a ton of fixes and small QoL improvements.

  • Support multi GPU training commands (torchrun, accelerate launch) by @lhoestq in #3674
  • Pass local script and config files to job by @lhoestq in #3724
  • List available hardware with hf jobs hardware by @Wauplin in #3693
  • Better jobs filtering in CLI: labels and negation (!=) by @lhoestq in #3742
  • Accept namespace/job_id format in jobs CLI commands by @davanstrien in #3811
  • Pass namespace parameter to fetch job logs by @Praful932 in #3736
  • Add more error handling output to hf jobs cli commands by @davanstrien in #3744
  • Fix hf jobs commands crashing without a TTY by @davanstrien in #3782

🤖 Inference

  • Add dimensions & encoding_format parameter to InferenceClient for output embedding size by @mishig25 in #3671
  • feat: zai-org provider supports text to image by @tomsun28 in #3675
  • Fix fal image urls payload by @hanouticelina in #3746
  • Fix Replicate image-to-image compatibility with different model schemas by @hanouticelina in #3749
  • Accelerator parameter support for inference endpoints by @Wauplin in #3817

🔧 Other QoL Improvements

  • Support setting Label in Jobs API by @Wauplin in #3719
  • Document built-in environment variables in Jobs docs (JOB_ID, ACCELERATOR, CPU_CORES, MEMORY) by @Wauplin in #3834
  • Fix ReadTimeout crash in no-follow job logs by @davanstrien in #3793
  • Add evaluation results module (EvalResultEntry, parse_eval_result_entries) by @hanouticelina in #3633
  • Add source org field to EvalResultEntry by @hanouticelina in #3694
  • Add limit param to list_papers API method by @Wauplin in #3697
  • Add num_papers field to Organization class by @cfahlgren1 in #3695
  • Update MAX_FILE_SIZE_GB from 50 to 200 by @davanstrien in #3696
  • List datasets benchmark alias (benchmark=Truebenchmark="official") by @Wauplin in #3734
  • Add notes field to EvalResultEntry by @Wauplin in #3738
  • Make task_id required in EvalResultEntry by @Wauplin in #3718
  • Repo commit count warning for upload_large_folder by @Wauplin in #3698
  • Replace deprecated is_enterprise boolean by plan string in org info by @Wauplin in #3753
  • Update hardware list in SpaceHardware enum by @lhoestq in #3756
  • Use HF_HUB_DOWNLOAD_TIMEOUT as default httpx timeout by @Wauplin in #3751
  • No timeout by default when using httpx by @Wauplin in #3790
  • Log 'x-amz-cf-id' on http error (if no request id) by @Wauplin in #3759
  • Parse xet hash from tree listing by @seanses in #3780
  • Require filelock>=3.10.0 for mode= parameter support by @Wauplin in #3785
  • Add overload decorators to HfApi.snapshot_download for dry_run typing by @Wauplin in #3788
  • Dataclass doesn't call original __init__ by @zucchini-nlp in #3818
  • Strict dataclass sequence validation by @Wauplin in #3819
  • Check if dataclass.repr=True before wrapping by @zucchini-nlp in #3823

💔 Breaking Changes

  • hf jobs ps removes old Go-template --format '{{.id}}' syntax. Use -q for IDs or --format json | jq for custom extraction by @davanstrien in #3799
  • Migrate to hf repos instead of hf repo (old command still works but shows deprecation warning) by @Wauplin in #3848
  • Migrate hf repo-files delete to hf repo delete-files (old command hidden from help, shows deprecation warning) by @Wauplin in #3821

🐛 Bug and typo fixes

  • Fix severe performance regression in streaming by keeping a byte iterator in HfFileSystemStreamFile by @leq6c in #3685
  • Fix endpoint not forwarded in CommitUrl by @Wauplin in #3679
  • Fix HfFileSystem.resolve_path() with special char @ by @lhoestq in #3704
  • Fix cache verify incorrectly reporting folders as missing files by @Mitix-EPI in #3707
  • Fix multi user cache lock permissions by @hanouticelina in #3714
  • Default _endpoint to None in CommitInfo, fixes tiny regression from v1.3.3 by @tomaarsen in #3737
  • Filter datasets by benchmark:official by @Wauplin in #3761
  • Fix file corruption when server ignores Range header on download retry by @XciD in #3778
  • Fix Xet token invalid on repo recreation by @Wauplin in #3847
  • Correct typo 'occured' to 'occurred' by @thecaptain789 in #3787
  • Fix typo in CLI error handling by @hanouticelina in #3757

📖 Documentation

  • Add link to Hub Jobs documentation by @gary149 in #3712
  • Update HTTP backend configuration link to main branch by @IliasAarab in #3713
  • Update CLI help output in docs to include new commands by @julien-c in #3722
  • Wildcard pattern documentation by @hanouticelina in #3710
  • Deprecate hf_transfer references in Korean and German translations by @davanstrien in #3804
  • Use SPDX license identifier 'Apache-2.0' by @yesudeep in #3814
  • Correct img tag style in README.md by @sadnesslovefreedom-debug in #3689

🏗️ Internal

  • Change external dependency from typer-slim to typer by @svlandeg in #3797
  • Remove shellingham from the required dependencies by @hanouticelina in #3798
  • Ignore unused-ignore-comment warnings in ty for mypy compatibility by @hanouticelina in #3691
  • Remove new unused-type-ignore-comment warning from ty by @hanouticelina in #3803
  • Fix curlify when debug logging is enabled for streaming requests by @hanouticelina in #3692
  • Remove canonical dataset test case by @hanouticelina in #3740
  • Remove broad exception handling from CLI job commands by @hanouticelina in #3748
  • CI windows permission error by @Wauplin in #3700
  • Upgrade GitHub Actions to latest versions by @salmanmkc in #3729
  • Stabilize lockfile test in file_download tests by @hanouticelina in #3815
  • Fix ty invalid assignment in CollectionItem by @hanouticelina in #3831
  • Use inference_provider instead of inference in tests by @hanouticelina in #3826
  • Fix tqdm windows test failure by @Wauplin in #3844
  • Add test for check if dataclass.repr=True before wrapping by @Wauplin in #3852
  • Prepare for v1.5 by @Wauplin in #3781

Fetched April 7, 2026