Install any skill in seconds. Free to start, no credit card required.
Get Started Free →llama.cpp local GGUF inference + HF Hub model discovery.
.claude/skills/nousresearch-llama-cpp/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 45% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 64% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 100% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 72% | 0% |
Use this skill for local GGUF inference, quant selection, or Hugging Face repo discovery for llama.cpp.
llama-server or llama-cli command from the Hub.gguf files and sizes for a repoPrefer URL workflows before asking for hf, Python, or custom scripts.
https://huggingface.co/models?apps=llama.cpp&sort=trendingsearch=<term> for a model familynum_parameters=min:0,max:24B or similar when the user has size constraintshttps://huggingface.co/<repo>?local-app=llama.cppllama-server or llama-cli command?local-app=llama.cpp URL as page text or HTML and extract the section under Hardware compatibility:UD-Q4_K_M or IQ4_NL_XLhttps://huggingface.co/api/models/<repo>/tree/main?recursive=truetype is file and path ends with .ggufpath and size as the source of truth for filenames and byte sizesmmproj-*.gguf projector files and BF16/ shard fileshttps://huggingface.co/<repo>/tree/main only as a human fallbackllama-server -hf <repo>:<QUANT>llama-server --hf-repo <repo> --hf-file <filename.gguf>bash# macOS / Linux (simplest) brew install llama.cpp
bashwinget install llama.cpp
bashgit clone https://github.com/ggml-org/llama.cpp cd llama.cpp cmake -B build cmake --build build --config Release
bashllama-cli -hf bartowski/Llama-3.2-3B-Instruct-GGUF:Q8_0
bashllama-server -hf bartowski/Llama-3.2-3B-Instruct-GGUF:Q8_0
Use this when the tree API shows custom file naming or the exact HF snippet is missing.
bashllama-server \ --hf-repo microsoft/Phi-3-mini-4k-instruct-gguf \ --hf-file Phi-3-mini-4k-instruct-q4.gguf \ -c 4096
bashcurl http://localhost:8080/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "messages": [ {"role": "user", "content": "Write a limerick about Python exceptions"} ] }'
pip install llama-cpp-python (CUDA: CMAKE_ARGS="-DGGML_CUDA=on" pip install llama-cpp-python --force-reinstall --no-cache-dir; Metal: CMAKE_ARGS="-DGGML_METAL=on" ...).
pythonfrom llama_cpp import Llama llm = Llama( model_path="./model-q4_k_m.gguf", n_ctx=4096, n_gpu_layers=35, # 0 for CPU, 99 to offload everything n_threads=8, ) out = llm("What is machine learning?", max_tokens=256, temperature=0.7) print(out["choices"][0]["text"])
pythonllm = Llama( model_path="./model-q4_k_m.gguf", n_ctx=4096, n_gpu_layers=35, chat_format="llama-3", # or "chatml", "mistral", etc. ) resp = llm.create_chat_completion( messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "What is Python?"}, ], max_tokens=256, ) print(resp["choices"][0]["message"]["content"]) # Streaming for chunk in llm("Explain quantum computing:", max_tokens=256, stream=True): print(chunk["choices"][0]["text"], end="", flush=True)
pythonllm = Llama(model_path="./model-q4_k_m.gguf", embedding=True, n_gpu_layers=35) vec = llm.embed("This is a test sentence.") print(f"Embedding dimension: {len(vec)}")
You can also load a GGUF straight from the Hub:
pythonllm = Llama.from_pretrained( repo_id="bartowski/Llama-3.2-3B-Instruct-GGUF", filename="*Q4_K_M.gguf", n_gpu_layers=35, )
Use the Hub page first, generic heuristics second.
Q4_K_M.Q5_K_M or Q6_K if memory allows.Q3_K_M, IQ variants, or Q2 variants only if the user explicitly prioritizes fit over quality.mmproj-*.gguf separately. The projector is not the main model file.UD-Q4_K_M, report UD-Q4_K_M.When the user asks what GGUFs exist, return:
Ignore unless requested:
Use the tree API for this step:
https://huggingface.co/api/models/<repo>/tree/main?recursive=trueFor a repo like unsloth/Qwen3.6-35B-A3B-GGUF, the local-app page can show quant chips such as UD-Q4_K_M, UD-Q5_K_M, UD-Q6_K, and Q8_0, while the tree API exposes exact file paths such as Qwen3.6-35B-A3B-UD-Q4_K_M.gguf and Qwen3.6-35B-A3B-Q8_0.gguf with byte sizes. Use the tree API to turn a quant label into an exact filename.
Use these URL shapes directly:
texthttps://huggingface.co/models?apps=llama.cpp&sort=trending https://huggingface.co/models?search=<term>&apps=llama.cpp&sort=trending https://huggingface.co/models?search=<term>&apps=llama.cpp&num_parameters=min:0,max:24B&sort=trending https://huggingface.co/<repo>?local-app=llama.cpp https://huggingface.co/api/models/<repo>/tree/main?recursive=true https://huggingface.co/<repo>/tree/main
When answering discovery requests, prefer a compact structured result like:
textRepo: <repo> Recommended quant from HF: <label> (<size>) llama-server: <command> Other GGUFs: - <filename> - <size> - <filename> - <size> Source URLs: - <local-app URL> - <tree API URL>
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 14,974 | 8,998 | -40% | 1 | 1 | 0% | 3,317 | 4,805 | +45% | 0 | 0 | — |
case-02 | fail→pass | 20,502 | 23,946 | +17% | 1 | 1 | 0% | 5,194 | 8,520 | +64% | 0 | 0 | — |
case-03 | fail→pass | 7,010 | 2,726 | -61% | 1 | 1 | 0% | 1,641 | 3,284 | +100% | 0 | 0 | — |
case-04 | pass→pass | 7,070 | 4,877 | -31% | 1 | 1 | 0% | 1,598 | 3,674 | +130% | 0 | 0 | — |
case-13 | pass→pass | 7,161 | 4,149 | -42% | 1 | 1 | 0% | 1,701 | 3,653 | +115% | 0 | 0 | — |
case-05 | fail→pass | 15,336 | 2,628 | -83% | 1 | 1 | 0% | 3,151 | 3,170 | +1% | 0 | 0 | — |
case-06 | fail→pass | 11,172 | 5,013 | -55% | 1 | 1 | 0% | 2,115 | 3,648 | +72% | 0 | 0 | — |
case-07 | pass→pass | 10,261 | 3,875 | -62% | 1 | 1 | 0% | 1,760 | 3,408 | +94% | 0 | 0 | — |
case-08 | pass→pass | 11,911 | 8,688 | -27% | 1 | 1 | 0% | 2,133 | 4,255 | +99% | 0 | 0 | — |
case-09 | pass→pass | 9,636 | 4,261 | -56% | 1 | 1 | 0% | 1,753 | 3,535 | +102% | 0 | 0 | — |
case-10 | pass→pass | 8,500 | 3,486 | -59% | 1 | 1 | 0% | 1,532 | 3,415 | +123% | 0 | 0 | — |
case-11 | pass→pass | 5,296 | 4,148 | -22% | 1 | 1 | 0% | 1,048 | 3,555 | +239% | 0 | 0 | — |
case-12 | pass→pass | 5,350 | 4,169 | -22% | 1 | 1 | 0% | 1,312 | 3,650 | +178% | 0 | 0 | — |
case-14 | pass→pass | 5,393 | 3,088 | -43% | 1 | 1 | 0% | 1,247 | 3,385 | +171% | 0 | 0 | — |
case-15 | pass→pass | 2,296 | 1,656 | -28% | 1 | 1 | 0% | 447 | 2,954 | +561% | 0 | 0 | — |
case-16 | pass→pass | 2,483 | 1,549 | -38% | 1 | 1 | 0% | 518 | 2,978 | +475% | 0 | 0 | — |
case-17 | fail→pass | 10,969 | 2,172 | -80% | 1 | 1 | 0% | 2,486 | 3,124 | +26% | 0 | 0 | — |
case-18 | pass→pass | 4,788 | 1,673 | -65% | 1 | 1 | 0% | 1,200 | 3,069 | +156% | 0 | 0 | — |
case-19 | fail→pass | 8,646 | 3,243 | -62% | 1 | 1 | 0% | 1,592 | 3,288 | +107% | 0 | 0 | — |
case-20 | pass→pass | 9,232 | 7,077 | -23% | 1 | 1 | 0% | 1,930 | 4,237 | +120% | 0 | 0 | — |
case-21 | pass→pass | 4,822 | 4,147 | -14% | 1 | 1 | 0% | 1,136 | 3,617 | +218% | 0 | 0 | — |
case-22 | pass→pass | 5,996 | 4,227 | -30% | 1 | 1 | 0% | 1,455 | 3,694 | +154% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +32 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.