Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HuggingFace VFS Plugin

A file system (WFX) plugin for Total Commander, Double Commander or any other file manager that loads WFX extensions, that lets you browse, download, upload, delete, and rename files in your HuggingFace Hub repositories — directly inside your file manager.

Supports multiple HuggingFace accounts and bookmarks for frequently browsed authors.


Features

Operation Models Datasets
Browse repos
Browse folders
Upload files
Download files
Delete files
Create folders
Remove folders
Rename / Move
Background xfer
Multi-account
Author bookmarks

Download & Quick Install

  1. Download the latest release:
    Go to GitHub Releases and download the HuggingFace_VFS.zip file.

  2. Auto-Install (Total Commander):
    Simply open the downloaded .zip file inside Total Commander, and it will prompt you to install the plugin automatically.

  3. Manual Install:
    Extract HuggingFace_VFS.wfx64 and pluginst.inf to a folder (e.g., %COMMANDER_PATH%\Plugins\wfx\HuggingFace\) and follow the Installation steps below.


Virtual Path Structure

\HuggingFace\
  Account_1\                              ← first HF account (named by username)
    Models\
      owner~repo-name\                    ← "owner/repo" uses ~ as separator
        README.md
        config.json
        pytorch_model.bin
    Datasets\
      owner~dataset-name\
        data\train.parquet
    [Bookmark owner name]                 ← bookmark an author for quick access
    [Browse]                              ← browse all repos on HF Hub
  Account_2\                              ← second HF account
    ...
  microsoft\                              ← bookmarked 3rd-party author (root level)
    Models\
    Datasets\
  google\                                 ← another bookmarked author
    Models\
    Datasets\
  [Bookmark 3rd Party Repos]              ← bookmark any author/org (no token needed)
  <Settings>                              ← manage accounts, tokens, bookmarks

Account-level entries

  • [Bookmark ...] — Click to enter an author/org name; creates a bookmark folder for that author inside the current account's section
  • [Browse] — Browse all public repos on HuggingFace Hub (uses the current account's token for API access)
  • [Change Author] — Switch to browsing a different author's repos within this account
  • [Remove Bookmark] — Remove a previously bookmarked author from the current account

Root-level entries

  • [Bookmark 3rd Party Repos] — Bookmark any author/org at the plugin root level, shown alongside accounts. No token needed. Double-click and enter the author/org name. A folder appears at root showing their Models/Datasets.
  • <Settings> — Add or remove accounts, view current accounts.

The virtual path uses ~ as separator (e.g., microsoft~phi-4), avoiding issues with / in filenames.


Requirements

Note: While the WFX interface is supported by Double Commander on macOS/Linux, this binary is a Windows DLL and will not work there. Supporting other platforms would require replacing Windows-specific APIs (WinHTTP, BCrypt) and recompiling.


Installation

Total Commander

  1. Open Total Commander
  2. Go to Configuration → Options → Plugins
  3. Click Configure under File system plugins (.WFX)
  4. Click Add, navigate to HuggingFace_VFS.wfx64, and click Open
  5. Click OK

Double Commander

  1. Open Double Commander
  2. Go to Tools → Options → Plugins → File System plugins
  3. Click Add, navigate to HuggingFace_VFS.wfx64, and click Open
  4. Click OK

First Use — Adding Accounts

  1. In the file manager, navigate to the Network Neighborhood (or VFS root)
  2. Open the HuggingFace plugin entry
  3. The plugin will prompt for your API token on first access
  4. Paste your token (hf_...) and press OK
  5. A folder appears with your HuggingFace username
  6. Inside: Models\ and Datasets\ with your repos

Adding more accounts

  1. Open <Settings> at the plugin root
  2. Click Add Account, enter another token
  3. A new root-level folder appears for the second account

Managing accounts

  • Open <Settings> to see all configured accounts
  • Click Remove Account to delete an account
  • Tokens are saved to the plugin's INI file for future sessions

Generate a token: https://huggingface.co/settings/tokens

  • For read-only browsing: a read token is sufficient
  • For upload/delete: you need a write token

Bookmarks

Bookmarks let you quickly access repos by a specific author or organization.

Per-account bookmarks

Inside any account folder:

  1. Click [Bookmark owner name]
  2. Enter the author/org name (e.g., microsoft)
  3. A bookmark folder appears under "My Repos" for that author

Bookmarks persist between sessions. To remove, open [Remove Bookmark] and select which bookmark to delete.

Root-level bookmarks (3rd party)

At the plugin root level:

  1. Click [Bookmark 3rd Party Repos]
  2. Enter any author/org name (e.g., google, meta, mistralai)
  3. A folder appears at root level alongside your accounts
  4. Inside: Models\ and Datasets\ for that author (using your first account's token)

To remove a root bookmark: select the bookmark folder and press F8 (Delete). The folder and its bookmark are removed.

This is useful for organizations or individuals you frequently browse whose repos you don't own.


Uploading Files

Uploading works exactly like copying files in your file manager:

  1. Navigate to the destination repo/folder on the right panel (HF plugin)
  2. Select the file(s) you want to upload on the left panel (local disk)
  3. Press F5 (Copy) — the plugin streams the file to HF Hub via the commit API

Large files (>50 MB) are supported. The HuggingFace API automatically routes large files through Git LFS.


File Structure

HuggingFace_VFS/
├── HuggingFace_VFS.sln          Visual Studio solution
├── HuggingFace_VFS.vcxproj      MSVC project (x64, outputs .wfx64)
├── pluginst.inf                 Auto-install descriptor
└── src/
    ├── main.cpp                 All WFX exported functions
    ├── wfxplugin.h              WFX SDK interface (from ghisler/WFX-SDK)
    ├── hf_http.h                WinHTTP client: download, upload, base64
    ├── hf_api.h                 HF Hub API: list repos, tree, delete
    ├── hf_path.h                Virtual path parser (\ → owner/repo/file)
    ├── hf_settings.h            INI persistence, token & bookmark management
    └── HuggingFace_VFS.def      DLL export definitions

How the Upload Works

The plugin uses the HuggingFace Hub commit API:

POST https://huggingface.co/api/models/{owner}/{repo}/commit/main
Authorization: Bearer hf_...
Content-Type: application/json

{
  "summary": "Upload file.bin via HuggingFace VFS plugin",
  "files": [{
    "path": "subdir/file.bin",
    "content": "<base64-encoded file content>",
    "encoding": "base64"
  }]
}

This creates a proper git commit on the main branch, visible in the repo's commit history on huggingface.co.


Notes & Limitations

  • Repo creation is not supported from the plugin (create repos on the website first)
  • Spaces are not listed (models and datasets only)
  • Pagination: the plugin fetches up to 100 repos per section; for accounts with more repos, open an issue and we can add a <Load More> virtual entry
  • Private repos are accessible as long as your token has read access
  • Rename/Move works by download + re-upload + delete (HF has no server-side rename)
  • Folder delete recursively deletes all files within (HF has no empty directories)
  • Bookmarked authors use the first account's API token for access; private repos of bookmarked authors won't appear unless your first account has access
  • Legacy single-account setups are automatically migrated on first load with the new version
  • Action entries (Settings, Bookmarks, Browse, Change Author) are files, not directories — double-click to activate

Building from Source (MSVC)

Prerequisites

  • Visual Studio 2019 or 2022 (any edition including Community — free)
  • Windows SDK 10.0 (installed with VS)
  • No external dependencies — uses only Windows built-in WinHTTP

Steps

  1. Open HuggingFace_VFS.sln in Visual Studio
  2. Select Release | x64 configuration
  3. Build → Build Solution (Ctrl+Shift+B)
  4. Output: bin\Release\HuggingFace_VFS.wfx64

Command-line build (Developer Command Prompt)

msbuild HuggingFace_VFS.sln /p:Configuration=Release /p:Platform=x64

License

MIT License — do whatever you like with it.


Support

If you find this project useful, consider supporting my work:

Buy Me A Coffee

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages