Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Runs LLM inference on CPU, Apple Silicon, and consumer GPUs without NVIDIA hardware. Use for edge deployment, M1/M2/M3 Macs, AMD/Intel GPUs, or when CUDA is unavailable. Supports GGUF quantization (1.5-8 bit) for reduced memory and 4-10× speedup vs PyTorch on CPU.
.claude/skills/openlair-llama-cpp/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 96% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 43% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 291% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 41% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 12% | 0% |
Pure C/C++ LLM inference with minimal dependencies, optimized for CPUs and non-NVIDIA hardware.
Use llama.cpp when:
Use TensorRT-LLM instead when:
Use vLLM instead when:
bash# macOS/Linux brew install llama.cpp # Or build from source git clone https://github.com/ggerganov/llama.cpp cd llama.cpp make # With Metal (Apple Silicon) make LLAMA_METAL=1 # With CUDA (NVIDIA) make LLAMA_CUDA=1 # With ROCm (AMD) make LLAMA_HIP=1
bash# Download from HuggingFace (GGUF format) huggingface-cli download \ TheBloke/Llama-2-7B-Chat-GGUF \ llama-2-7b-chat.Q4_K_M.gguf \ --local-dir models/ # Or convert from HuggingFace python convert_hf_to_gguf.py models/llama-2-7b-chat/
bash# Simple chat ./llama-cli \ -m models/llama-2-7b-chat.Q4_K_M.gguf \ -p "Explain quantum computing" \ -n 256 # Max tokens # Interactive chat ./llama-cli \ -m models/llama-2-7b-chat.Q4_K_M.gguf \ --interactive
bash# Start OpenAI-compatible server ./llama-server \ -m models/llama-2-7b-chat.Q4_K_M.gguf \ --host 0.0.0.0 \ --port 8080 \ -ngl 32 # Offload 32 layers to GPU # Client request curl http://localhost:8080/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "llama-2-7b-chat", "messages": [{"role": "user", "content": "Hello!"}], "temperature": 0.7, "max_tokens": 100 }'
| Format | Bits | Size (7B) | Speed | Quality | Use Case | |--------|------|-----------|-------|---------|----------| | Q4_K_M | 4.5 | 4.1 GB | Fast | Good | Recommended default | | Q4_K_S | 4.3 | 3.9 GB | Faster | Lower | Speed critical | | Q5_K_M | 5.5 | 4.8 GB | Medium | Better | Quality critical | | Q6_K | 6.5 | 5.5 GB | Slower | Best | Maximum quality | | Q8_0 | 8.0 | 7.0 GB | Slow | Excellent | Minimal degradation | | Q2_K | 2.5 | 2.7 GB | Fastest | Poor | Testing only |
bash# General use (balanced) Q4_K_M # 4-bit, medium quality # Maximum speed (more degradation) Q2_K or Q3_K_M # Maximum quality (slower) Q6_K or Q8_0 # Very large models (70B, 405B) Q3_K_M or Q4_K_S # Lower bits to fit in memory
bash# Build with Metal make LLAMA_METAL=1 # Run with GPU acceleration (automatic) ./llama-cli -m model.gguf -ngl 999 # Offload all layers # Performance: M3 Max 40-60 tokens/sec (Llama 2-7B Q4_K_M)
bash# Build with CUDA make LLAMA_CUDA=1 # Offload layers to GPU ./llama-cli -m model.gguf -ngl 35 # Offload 35/40 layers # Hybrid CPU+GPU for large models ./llama-cli -m llama-70b.Q4_K_M.gguf -ngl 20 # GPU: 20 layers, CPU: rest
bash# Build with ROCm make LLAMA_HIP=1 # Run with AMD GPU ./llama-cli -m model.gguf -ngl 999
bash# Process multiple prompts from file cat prompts.txt | ./llama-cli \ -m model.gguf \ --batch-size 512 \ -n 100
bash# JSON output with grammar ./llama-cli \ -m model.gguf \ -p "Generate a person: " \ --grammar-file grammars/json.gbnf # Outputs valid JSON only
bash# Increase context (default 512) ./llama-cli \ -m model.gguf \ -c 4096 # 4K context window # Very long context (if model supports) ./llama-cli -m model.gguf -c 32768 # 32K context
| CPU | Threads | Speed | Cost | |-----|---------|-------|------| | Apple M3 Max | 16 | 50 tok/s | $0 (local) | | AMD Ryzen 9 7950X | 32 | 35 tok/s | $0.50/hour | | Intel i9-13900K | 32 | 30 tok/s | $0.40/hour | | AWS c7i.16xlarge | 64 | 40 tok/s | $2.88/hour |
| GPU | Speed | vs CPU | Cost | |-----|-------|--------|------| | NVIDIA RTX 4090 | 120 tok/s | 3-4× | $0 (local) | | NVIDIA A10 | 80 tok/s | 2-3× | $1.00/hour | | AMD MI250 | 70 tok/s | 2× | $2.00/hour | | Apple M3 Max (Metal) | 50 tok/s | ~Same | $0 (local) |
LLaMA family:
Mistral family:
Other:
Find models: https://huggingface.co/models?library=gguf
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 10,308 | 7,280 | -29% | 1 | 1 | 0% | 2,328 | 3,795 | +63% | 0 | 0 | — |
case-02 | fail→pass | 8,154 | 6,589 | -19% | 1 | 1 | 0% | 1,715 | 3,366 | +96% | 0 | 0 | — |
case-03 | fail→fail | 3,107 | 2,529 | -19% | 1 | 1 | 0% | 664 | 2,545 | +283% | 0 | 0 | — |
case-04 | pass→pass | 13,715 | 8,379 | -39% | 1 | 1 | 0% | 2,673 | 3,758 | +41% | 0 | 0 | — |
case-05 | pass→pass | 14,075 | 4,741 | -66% | 1 | 1 | 0% | 2,662 | 2,976 | +12% | 0 | 0 | — |
case-06 | pass→pass | 10,687 | 5,829 | -45% | 1 | 1 | 0% | 1,922 | 3,182 | +66% | 0 | 0 | — |
case-07 | fail→fail | 9,093 | 5,574 | -39% | 1 | 1 | 0% | 1,737 | 3,077 | +77% | 0 | 0 | — |
case-08 | fail→pass | 8,962 | 2,984 | -67% | 1 | 1 | 0% | 1,838 | 2,634 | +43% | 0 | 0 | — |
case-09 | pass→pass | 4,122 | 3,099 | -25% | 1 | 1 | 0% | 931 | 2,768 | +197% | 0 | 0 | — |
case-10 | pass→pass | 7,975 | 4,982 | -38% | 1 | 1 | 0% | 1,615 | 3,094 | +92% | 0 | 0 | — |
case-11 | pass→pass | 6,228 | 3,862 | -38% | 1 | 1 | 0% | 1,227 | 2,746 | +124% | 0 | 0 | — |
case-12 | fail→pass | 3,359 | 1,824 | -46% | 1 | 1 | 0% | 606 | 2,372 | +291% | 0 | 0 | — |
case-13 | pass→pass | 11,416 | 5,934 | -48% | 1 | 1 | 0% | 2,117 | 3,070 | +45% | 0 | 0 | — |
case-14 | pass→pass | 12,500 | 2,798 | -78% | 1 | 1 | 0% | 2,097 | 2,507 | +20% | 0 | 0 | — |
case-15 | pass→pass | 11,704 | 4,476 | -62% | 1 | 1 | 0% | 2,044 | 2,906 | +42% | 0 | 0 | — |
case-16 | pass→pass | 7,997 | 3,030 | -62% | 1 | 1 | 0% | 1,520 | 2,600 | +71% | 0 | 0 | — |
case-17 | pass→pass | 6,580 | 2,429 | -63% | 1 | 1 | 0% | 1,252 | 2,490 | +99% | 0 | 0 | — |
case-18 | pass→pass | 6,641 | 2,760 | -58% | 1 | 1 | 0% | 1,559 | 2,597 | +67% | 0 | 0 | — |
case-19 | pass→pass | 2,570 | 1,952 | -24% | 1 | 1 | 0% | 496 | 2,409 | +386% | 0 | 0 | — |
case-20 | pass→pass | 6,667 | 3,311 | -50% | 1 | 1 | 0% | 1,359 | 2,580 | +90% | 0 | 0 | — |
case-21 | pass→pass | 3,931 | 1,917 | -51% | 1 | 1 | 0% | 737 | 2,300 | +212% | 0 | 0 | — |
case-22 | pass→pass | 10,416 | 10,375 | -0% | 1 | 1 | 0% | 2,515 | 4,106 | +63% | 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 +14 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.