Instructions to use npario/Dirk-Qwen3.8-27B-GGUF 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 npario/Dirk-Qwen3.8-27B-GGUF 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 npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S # Run inference directly in the terminal: llama cli -hf npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S # Run inference directly in the terminal: llama cli -hf npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S # Run inference directly in the terminal: ./llama-cli -hf npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S # Run inference directly in the terminal: ./build/bin/llama-cli -hf npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S
Use Docker
docker model run hf.co/npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S
- LM Studio
- Jan
- vLLM
How to use npario/Dirk-Qwen3.8-27B-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "npario/Dirk-Qwen3.8-27B-GGUF" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "npario/Dirk-Qwen3.8-27B-GGUF", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S
- Ollama
How to use npario/Dirk-Qwen3.8-27B-GGUF with Ollama:
ollama run hf.co/npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S
- Unsloth Desktop
- Pi
How to use npario/Dirk-Qwen3.8-27B-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S
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": "npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use npario/Dirk-Qwen3.8-27B-GGUF with Docker Model Runner:
docker model run hf.co/npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S
- Lemonade
How to use npario/Dirk-Qwen3.8-27B-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S
Run and chat with the model
lemonade run user.Dirk-Qwen3.8-27B-GGUF-UD-Q4_K_S
List all available models
lemonade list
- Hermes Agent
How to use npario/Dirk-Qwen3.8-27B-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S
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 npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use npario/Dirk-Qwen3.8-27B-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S
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 "npario/Dirk-Qwen3.8-27B-GGUF:UD-Q4_K_S" \ --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"
Dirk is the Qwen3.8-27B that gets straight to the point.
With our Sharp chat template, MTP, and vision baked in, the model answers lean and stays on-task out of the box. No template
wrangling: download, point llama.cpp at it, go. If you want it to think deeper, set the effort level through chat_template_kwargs:
{"messages": [...], "chat_template_kwargs": {"reasoning_effort": "high"}}
Levels: low, medium, xhigh — high is accepted but is an alias for xhigh, not a step below it. Omit it for Dirk's lean default (medium). Turn thinking off entirely
with "enable_thinking": false.
What it is
- Base:
Qwen/Qwen3.8-27B, a dense 27B vision-language model (vision preserved). - Quant: Unsloth's Dynamic 3.0 UD GGUF quants — their current generation, not an
older ladder — which keep the model's MTP (
nextn) head: runtimes with multi-token-prediction speculative decoding can use it for faster generation. - Template: the Sharp chat template
(Qwen 3.8-aware) — froggeric's fixed Qwen template plus a terseness system prompt, and turning off the
xhigh thinking default. IQ4_XS carries
v22.3.2, which adds an opt-out (chat_template_kwargs: {"terse": false}); the older tiers carryv22.3.1and render identically unless you use that opt-out. It is byte-swapped into the GGUF metadata; the weights and the MTP tensors are untouched.
The only thing Dirk changes versus the stock quant is the template. Same weights, asked better.
Proven on Nail and Dagger
Dirk is new, but the template is not. The identical terseness edit, measured on Dagger's base (ThinkingCap-27B, same weights, only the template swapped):
| stock template | Sharp template | change | |
|---|---|---|---|
| Claw-Eval, answer component | 59.3 | 66.7 | +7.4 |
| Claw-Eval answer tokens | 5393 | 2217 | −59% |
| MMLU-Pro tokens per correct answer | 1601 | 1248 | −22% |
Roughly: the same answers in a bit over half the words, with accuracy moving up. That is what Dirk inherits — and its own SWE-bench-Live and MMLU-Pro numbers, shown above, bear it out.
Thinking effort
Stock Qwen3.8-27B forces reasoning_effort=xhigh on every call — always-on maximum-effort
reasoning. Dirk removes that default, so it runs at the model's native medium effort: in both
the official and Unsloth templates, medium is the setting that injects no reasoning instruction
(only xhigh and low add one), and Dirk simply leaves it there. So Dirk thinks at the baseline and
answers terse, instead of being pushed to the ceiling on every request. Set reasoning_effort yourself
(low, medium, xhigh; high maps to xhigh), per request, through chat_template_kwargs — the OpenAI-style
top-level reasoning_effort field is dropped by llama.cpp and oMLX, so it must go there (see the JSON example above).
Run it
| file | size | notes |
|---|---|---|
Dirk-Qwen3.8-27B-UD-Q2_K_XL.gguf |
9.8 GB | the 12 GB card pick — smallest tier; 2-bit gives up real accuracy, so prefer a bigger one wherever it fits |
Dirk-Qwen3.8-27B-UD-IQ3_XXS.gguf |
10.9 GB | fits 16 GB with room to spare, and a 12 GB card at shorter context — better than Q2_K_XL wherever it fits |
Dirk-Qwen3.8-27B-UD-Q3_K_XL.gguf |
13.1 GB | 3-bit with headroom to spare on 16 GB; prefer IQ4_XS below unless you need the extra ~1 GB for context |
Dirk-Qwen3.8-27B-UD-IQ4_XS.gguf |
14.3 GB | the 16 GB pick — 4-bit quality with room for real context, where Q4_K_S leaves almost none |
Dirk-Qwen3.8-27B-UD-Q4_K_S.gguf |
15.4 GB | tight 4-bit; useful when Q4_K_XL will not fit alongside your context |
Dirk-Qwen3.8-27B-UD-Q4_K_XL.gguf |
17.6 GB | start here — the 24 GB-card default; best size/quality balance |
Dirk-Qwen3.8-27B-UD-Q5_K_XL.gguf |
20.9 GB | the recommended 24 GB pick — dynamic + imatrix-calibrated, and small enough to leave real room for context |
Dirk-Qwen3.8-27B-UD-Q6_K.gguf |
22.0 GB | 6-bit — the largest that still fits 24 GB, with tighter headroom than UD-Q5_K_XL |
Dirk-Qwen3.8-27B-UD-Q6_K_XL.gguf |
25.3 GB | near-max quality; wants ~32 GB |
Dirk-Qwen3.8-27B-UD-Q8_K_XL.gguf |
31.5 GB | 8-bit, effectively lossless |
Every file carries the Sharp template and the MTP (nextn) head, and all share mmproj-F16.gguf
for vision — you need only one copy of it. Every tier is an Unsloth Dynamic 3.0 (UD) quant.
Let llama.cpp fetch it — pass a :quant tag from the table (:Q4_K_XL, :IQ4_XS, :Q6_K_XL, …).
The tag is required: this repo has no Q4_K_M, so a bare -hf with no tag falls back to the wrong
file. The mmproj rides along in the manifest, so vision works from the same tag — no second download.
# text — auto-downloads to llama.cpp's own cache (24 GB-card default shown)
llama-server -hf peculiar-ragdoll/Dirk-Qwen3.8-27B-GGUF:Q4_K_XL -ngl 99 # or llama-cli
# vision — same tag; the mmproj is pulled automatically
llama-mtmd-cli -hf peculiar-ragdoll/Dirk-Qwen3.8-27B-GGUF:Q4_K_XL -ngl 99 --image photo.jpg
Prefer to keep the files yourself? Download explicitly, then point -m at the local path:
hf download peculiar-ragdoll/Dirk-Qwen3.8-27B-GGUF Dirk-Qwen3.8-27B-UD-Q4_K_XL.gguf \
mmproj-F16.gguf --local-dir Dirk
llama-cli -m Dirk/Dirk-Qwen3.8-27B-UD-Q4_K_XL.gguf -ngl 99 # text
llama-mtmd-cli -m Dirk/Dirk-Qwen3.8-27B-UD-Q4_K_XL.gguf --mmproj Dirk/mmproj-F16.gguf -ngl 99 # vision
llama.cpp applies the embedded Sharp template automatically — nothing to pass.
Driving it from a coding agent? Add --reasoning-format deepseek to llama-server. It returns
the model's <think> block in the OpenAI reasoning_content field instead of inline in content,
so the agent never sees raw thinking tokens in the text stream. Current llama.cpp already defaults
to this (--reasoning-format auto is defined as "same as deepseek"), so it is a no-op on a recent
build and insurance on an older one. Just don't pass --reasoning-format none — that is the one
that leaves the tags inline.
Pick your weapon
Qwen3.8-27B may be the new intelligence density frontier for local models that run on consumer hardware, but the already battle-tested Dagger and Nail, joined by the newer TielCoder, each have their own use cases, in an arsenal that contains all four.
- Nail-35B-A3B generates tokens 3–4× faster than 27B models, while still being very good at routine coding, debugging, knowledge work, and many other kinds of tasks — which means that for tasks that aren't too hard for it, it writes the unit test and regression test, and implements the feature in the time it takes 3.8-27B to get out of the gate. Reach for Nail when you need volume routine work done right and fast.
- TielCoder-35B-A3B is the dedicated coder: Nail's 35B-A3B speed class, rebuilt on Ornith-1.5 with the Sharp template and pointed at one job. It fixes 12 of 25 on SWE-bench-Live — level with Opus 4.6, four clear of Sonnet 5 (medium) — at the lowest mean time per attempt of the 35B-A3B family. It pays for that in general knowledge: 73.7 on MMLU-Pro against Nail's 84.0. Reach for TielCoder when the work is code; reach for Nail when the same session also has to know things.
- Dagger-27B is — unlike 3.8-27B — specifically tuned to minimize the number of thinking tokens while sacrificing minimal accuracy, which might still give it the advantage in speed-to-answer and multi-turn stamina under the context ceiling. Reach for Dagger when you need a session to survive 100 turns.
- Dirk-27B is what you reach for when the task is genuinely hard and you want the strongest local answer without filler — accepting that Nail reaches an answer faster on work it can handle, and that a marathon session running 100 turns under the context ceiling is Dagger's domain, not Dirk's.
Dagger, Nail and TielCoder might still be your go-to workhorses for long and short tasks within their ability bands, due to their advantage in speed and stamina.
Credits
- Qwen — the Qwen3.8-27B weights.
- Unsloth — the UD-Q4_K_XL Dynamic quant (MTP-preserving) this repo redistributes.
- froggeric — the fixed chat template the Sharp template builds on.
Apache-2.0, matching upstream.
- Downloads last month
- 679
2-bit
3-bit
4-bit
5-bit
6-bit
8-bit
Model tree for npario/Dirk-Qwen3.8-27B-GGUF
Base model
Qwen/Qwen3.8-27B