hf-mem — Claude Code skill: what it does, how to install
Estimates the memory a Hugging Face model needs for inference without downloading the weights. Useful before you commit a GPU to a model.
npx skills add huggingface/skills --skill hf-mem -a claude-codeWhat hf-mem does
The skill answers the fit question while the weights stay on the Hub. hf_mem pulls repository metadata over HTTP Range requests and estimates the footprint of Safetensors or GGUF weights for inference. Nothing gets loaded locally.
Add --experimental and it also sizes the KV cache. That covers LLMs (...ForCausalLM), VLMs (...ForConditionalGeneration) and GGUF models. Context length comes from the model, and --max-model-len overrides it. Cache precision follows the model precision unless you set --kv-cache-dtype yourself.
Runs come through uvx, so uv has to be on the machine. Gated and private models need HF_TOKEN or the --hf-token flag. A GGUF repo yields one estimate per file, while inference loads a single precision, so skipping --gguf-file hands you a number for a run you are not doing. Pass the file you mean to use.
What it helps with
- size up memory for a model before pulling weights
- check whether a model fits the GPU you have
- estimate KV cache memory for an LLM or VLM
- pick the GGUF quantization that fits available memory
- compare memory needs of several Hub model IDs
Example prompts for the agent
- How much VRAM does
MiniMaxAI/MiniMax-M2need to run? - Check with hf-mem whether
unsloth/Qwen3.5-397B-A17B-GGUFat Q4_K_M fits on my GPU. - Estimate memory for
google/embeddinggemma-300m, no KV cache needed.
How to install hf-mem
1Skills CLI (Vercel)
npx skills add huggingface/skills --skill hf-mem -a claude-code2Manually: put the files in place
~/.claude/skills/hf-mem/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/hf-mem/
1Skills CLI (Vercel)
npx skills add huggingface/skills --skill hf-mem -a codex2Manually: put the files in place
.agents/skills/hf-mem/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add huggingface/skills --skill hf-mem -a cursor2Manually: put the files in place
.cursor/skills/hf-mem/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install huggingface/skills hf-mem2Manually: put the files in place
.github/skills/hf-mem/SKILL.md1Skills CLI (Vercel)
npx skills add huggingface/skills --skill hf-mem -a gemini-cli2Platform CLI
gemini skills install https://github.com/huggingface/skills --path skills/hf-memManually: put the files in place
.devin/skills/hf-mem/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add huggingface/skills --skill hf-mem -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about hf-mem
How do I install hf-mem in Claude Code?
Run npx skills add huggingface/skills --skill hf-mem -a claude-code. The skill lands at ~/.claude/skills/hf-mem/SKILL.md.
What does hf-mem do?
It estimates inference memory for models on the Hugging Face Hub, covering Safetensors or GGUF weights and, with --experimental, the KV cache. The weights themselves are never downloaded.
Does hf-mem download the model weights?
No. It reads metadata through HTTP Range requests, so the estimate comes from the Hub without storing weights on disk.
Source text
SKILL.md · Apache-2.0
--- name: hf-mem description: Hugging Face CLI to estimate the required memory to load Safetensors or GGUF model weights for inference from the Hugging Face Hub --- `hf_mem` estimates the required memory for inference, including model weights and an optional KV cache, for Safetensors and GGUF for models on the Hugging Face Hub using HTTP Range requests i.e., without downloading or loading any weights locally. ## When to use? - User asks how much VRAM or memory a model needs to run - User wants to know if a model fits on their GPU or a given instance - User references a Hugging Face model ID or URL and asks about inference requirements ## What are the requirements? - `uv` installed (for `uvx`) - `HF_TOKEN` env var or `--hf-token` flag (for gated or private models only) ## How to run? Run with `--model-id` pointing to the Hugging Face Hub repository which will check that it either contains Safetensors (via `model.safetensors`, `model.safetensors.index.json` if sharded, or `model_index.json` for Diffusers) or GGUF model weights within. ```bash uvx hf-mem --model-id <model-id> --json-output ``` If the repository contains GGUF model weights in multiple precisions / quantizations, the estimations will be on a per-file basis, whereas for inference you won't load all of those but rather only a single precision. This being said, for GGUF you might as well need to provide `--gguf-file` to target the specific file (or path if sharded) you want to run. ```bash uvx hf-mem --model-id <model-id> --gguf-file <file-or-path> --json-output ``` Additionally, `hf-mem` comes with an `--experimental` flag that will also calculate the KV cache memory requirements too, useful for large-language models, meaning it applies to LLMs (`...ForCausalLM`), VLMs (`...ForConditionalGeneration`), and GGUF models. As per the context window, it will be read from the default or overridden with `--max-model-len` a la vLLM. And, same goes for the KV cache precision, which will default to the model precision unless manually set via `--kv-cache-dtype` a la vLLM too. For Safetensors use as: ```bash uvx hf-mem --model-id <model-id> --experimental [--max-model-len N] [--batch-size N] [--kv-cache-dtype auto|bfloat16|fp8|fp8_ds_mla|fp8_e4m3|fp8_e5m2|fp8_inc] --json-output ``` And, for GGUF use as: ```bash uvx hf-mem --model-id <model-id> --gguf-file <file-or-path> --experimental [--max-model-len N] [--batch-size N] [--kv-cache-dtype auto|F32|F16|Q4_0|Q4_1|Q5_0|Q5_1|Q8_0|Q8_1|Q2_K|Q3_K|Q4_K|Q5_K|Q6_K|Q8_K|IQ2_XXS|IQ2_XS|IQ3_XXS|IQ1_S|IQ4_NL|IQ3_S|IQ2_S|IQ4_XS|I8|I16|I32|I64|F64|IQ1_M|BF16|TQ1_0|TQ2_0|MXFP4] --json-output ``` ## Examples For Transformers with Safetensors weights: ```bash uvx hf-mem --model-id MiniMaxAI/MiniMax-M2 --json-output ``` For Diffusers with Safetensors weights: ```bash uvx hf-mem --model-id Qwen/Qwen-Image --json-output ``` For Sentence Transformers with Safetensors weights: ```bash uvx hf-mem --model-id google/embeddinggemma-300m --json-output ``` With `--experimental` to include the KV cache estimation for LLMs and VLMs: ```bash uvx hf-mem --model-id mistralai/Mistral-7B-v0.1 --experimental --json-output ``` And, for LLMs or VLMs with GGUF weights: ```bash uvx hf-mem --model-id unsloth/Qwen3.5-397B-A17B-GGUF --gguf-file Q4_K_M --experimental --json-output ```
© huggingface · Apache-2.0 · huggingface/skills