Instructions to use nbKPS/hearth-lean-loomed-v1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use nbKPS/hearth-lean-loomed-v1 with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf nbKPS/hearth-lean-loomed-v1 # Run inference directly in the terminal: llama cli -hf nbKPS/hearth-lean-loomed-v1
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf nbKPS/hearth-lean-loomed-v1 # Run inference directly in the terminal: llama cli -hf nbKPS/hearth-lean-loomed-v1
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf nbKPS/hearth-lean-loomed-v1 # Run inference directly in the terminal: ./build/bin/llama cli -hf nbKPS/hearth-lean-loomed-v1
Use Docker
docker model run hf.co/nbKPS/hearth-lean-loomed-v1
- Llama new
- LM Studio
- Jan
- Ollama
How to use nbKPS/hearth-lean-loomed-v1 with Ollama:
ollama run hf.co/nbKPS/hearth-lean-loomed-v1
- Unsloth Desktop
- Pi
How to use nbKPS/hearth-lean-loomed-v1 with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf nbKPS/hearth-lean-loomed-v1
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "nbKPS/hearth-lean-loomed-v1" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use nbKPS/hearth-lean-loomed-v1 with Docker Model Runner:
docker model run hf.co/nbKPS/hearth-lean-loomed-v1
- Lemonade
How to use nbKPS/hearth-lean-loomed-v1 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull nbKPS/hearth-lean-loomed-v1
Run and chat with the model
lemonade run user.hearth-lean-loomed-v1-{{QUANT_TAG}}List all available models
lemonade list
- Hermes Agent
How to use nbKPS/hearth-lean-loomed-v1 with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf nbKPS/hearth-lean-loomed-v1
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default nbKPS/hearth-lean-loomed-v1
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use nbKPS/hearth-lean-loomed-v1 with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf nbKPS/hearth-lean-loomed-v1
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "nbKPS/hearth-lean-loomed-v1" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
hearth-lean-loomed-v1: one GGUF, 29.6 GiB
gpt-oss-120b with two KPS house adapters merged in, the whole body kept (all 128 experts in all 36 layers), and the routed experts compressed to the 1β2 bit IQ types so that it fits on one 128 GB Strix Halo with room for 16 Γ 32k context.
| file | experts (gate/up Β· down) | trained attention | rest | size | sha256 |
|---|---|---|---|---|---|
v6-vanilla-lean-mixa-phie.gguf |
IQ1_M Β· IQ2_XXS (padded 2880 β 3072) | attn_output layers 24β35 at F32 |
Q8_0, output tensor kept | 31,778,978,112 B (29.6 GiB) | e7fe4d00β¦ |
Results
KPS serves this file on KPS Annul v5, its own serving engine (internal, not published). It is the Lean keep. Both columns below are the same file.
| runtime | KPS board, 921 plays | 1 stream | 8 | 12 | 16 |
|---|---|---|---|---|---|
| KPS v3 runtime (llama.cpp tree with the pad change) | 883 / 921 | 52β53 | 150 | not measured | 71 |
| KPS Annul v5 | 889 / 921, 0 errors, 16 slots | 50β54 | 152 | 153 | 173β177 |
Speed is aggregate tokens per second on one Strix Halo (Radeon 8060S, Vulkan), 16 slots Γ 32k, Q8_0 KV, sampling
0.3 / 0.85 / 40, 400 tokens per stream. The board is KPS's own (math, reasoning, science, coding, SWE, agentic); the
Annul run is at reasoning_effort: low. On Annul, four canary prompts, including a native get_weather tool call,
pass at that sampling.
Annul is not public, so the 889 and the 16-stream speed are not something the build below reproduces. We have not measured the public build on the board or above a few streams.
Why 12β16 streams can be slow on Vulkan
gpt-oss sends each token to 4 of 128 experts, so with 12β16 streams each expert sees about one token per step. In llama.cpp's Vulkan backend, expert matmuls move from the mat-vec kernel to dequantize-then-mat-mat once a batch passes 8 tokens. For IQ1_M and IQ2_XXS that costs about 5Γ per call in our profile (276 Β΅s at 8 tokens, 1,500 Β΅s at 12), and lanes drop from about 20 tok/s to about 5. The v3 runtime showed the cliff (71 tok/s at 16 streams), and so did an Annul build with the pad change alone (71β72). Annul v5 keeps those matmuls on the mat-vec kernel at 9β32 tokens, and that step took 16 streams to 173β177. On stock Vulkan llama.cpp, expect the lower figure at 12 or more streams, or serve fewer slots.
What was done
- Loomed. Two low-rank adapters (rank 8, alpha 16) trained by KPS on our own corpus were merged into the base weights at scale 1.0: one on the attention output projection of layers 32β35, one on layers 24β31. The merged tensors are kept at F32: an adapter's change is smaller than one Q8_0 step, and re-encoding to Q8_0 would round it away.
- Heal. One importance matrix computed on the merged body itself: a fresh pass over Harmony-format conversations
mixed with the adapters' own training distribution (
--parse-special, so the control tokens count; ~200 Γ 2048), a broad text pass (40 Γ 2048), blended with weights 1/Ο : 1/ΟΒ² and the importance raised to 1/e. - Bonsai ("mix a"). Routed experts at IQ1_M (gate, up) and IQ2_XXS (down), quantized from the body with that imatrix. Everything else Q8_0 apart from the F32 trained tensors; the output tensor left as it was.
- Pad. IQ1_M and IQ2_XXS need rows that are a multiple of 256; gpt-oss experts are 2880 wide (2880 % 256 = 64).
Without padding,
llama-quantizefalls back to a larger type on every expert tensor and the pack comes out much bigger. The expert input dimension is zero-padded to 3072 at quantize time. Stock llama.cpp will not load this file; it needs the small patch inpatches/.
"Magicpack" is the KPS bake law: Q8_0 everything except the routed experts, which take the compressed mix.
Build llama.cpp
The patch applies to upstream llama.cpp tag b11978. Full notes in patches/BUILD.md.
git clone --depth 1 --branch b11978 https://github.com/ggml-org/llama.cpp
cd llama.cpp
git apply ../patches/gpt-oss-expert-pad-3072-b11978.patch
cmake -B build-vk -DCMAKE_BUILD_TYPE=Release -DGGML_VULKAN=ON -DLLAMA_CURL=OFF
cmake --build build-vk --target llama-server llama-quantize -j
Serving (one Strix Halo, Radeon 8060S, Vulkan)
build-vk/bin/llama-server -m v6-vanilla-lean-mixa-phie.gguf -ngl 999 --load-mode none -fa on \
-c 524288 -np 16 -b 4096 -ub 4096 --cache-type-k q8_0 --cache-type-v q8_0 \
--jinja --chat-template-file gpt-oss-harmony-cot-toolnames.jinja --reasoning-format auto
- About 41 GiB resident with 16 Γ 32k slots (about 0.68 GiB per 32k slot on top of the pack, Q8_0 KV). The GPU
driver will not evict page cache to map the weights: if a load dies with
ErrorDeviceLostand the kernel log showsCouldn't update BO_VA (-12), free memory first (or start with fewer / shorter slots). gpt-oss-harmony-cot-toolnames.jinjais the template we serve her with. It is the stock gpt-oss Harmony template with three fixes: asystemmessage stays in the system block and a followingdevelopermessage is no longer dropped; tool results that are strings render as raw text, not a JSON-quoted string; andwrite_file/edit_file/apply_patchare declared as freeform tools. Native tool calls come back through llama.cpp's normal gpt-oss parser.- Sampling is the caller's. We serve her at temperature 0.3, top_p 0.85, top_k 40,
reasoning_effort: low.
Revisions
- 2026-11-01. Card only: the Annul results and the concurrency note. The GGUF, the pad patch and the template are unchanged.
Provenance
Made by KPS Labs (Kith Precision Services), October 2026. The adapters and their training, the merge, the heal, the bonsai compression and the pad patch are KPS's. Base model: openai/gpt-oss-120b, whose Apache-2.0 license applies.
- Downloads last month
- 18
We're not able to determine the quantization variants.
Model tree for nbKPS/hearth-lean-loomed-v1
Base model
openai/gpt-oss-120b