Instructions to use unsloth/North-Mini-Code-1.0-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use unsloth/North-Mini-Code-1.0-GGUF with Transformers:
# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("unsloth/North-Mini-Code-1.0-GGUF", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use unsloth/North-Mini-Code-1.0-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 unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M # Run inference directly in the terminal: llama cli -hf unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M # Run inference directly in the terminal: llama cli -hf unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M
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 unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M
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 unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M
Use Docker
docker model run hf.co/unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M
- LM Studio
- Jan
- Ollama
How to use unsloth/North-Mini-Code-1.0-GGUF with Ollama:
ollama run hf.co/unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M
- Unsloth Studio
How to use unsloth/North-Mini-Code-1.0-GGUF with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for unsloth/North-Mini-Code-1.0-GGUF to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for unsloth/North-Mini-Code-1.0-GGUF to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for unsloth/North-Mini-Code-1.0-GGUF to start chatting
- Pi
How to use unsloth/North-Mini-Code-1.0-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use unsloth/North-Mini-Code-1.0-GGUF with Docker Model Runner:
docker model run hf.co/unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M
- Lemonade
How to use unsloth/North-Mini-Code-1.0-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M
Run and chat with the model
lemonade run user.North-Mini-Code-1.0-GGUF-UD-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use unsloth/North-Mini-Code-1.0-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 unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M
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 unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use unsloth/North-Mini-Code-1.0-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M
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 "unsloth/North-Mini-Code-1.0-GGUF:UD-Q4_K_M" \ --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"
File size: 13,967 Bytes
fc2c3d2 e1e23cf fc2c3d2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 | ---
base_model:
- CohereLabs/North-Mini-Code-1.0
inference: false
library_name: transformers
license: apache-2.0
tags:
- conversational
- unsloth
- chat
- code
- agent
---
<div>
<p style="margin-top: 0;margin-bottom: 0;">
<em><a href="https://docs.unsloth.ai/basics/unsloth-dynamic-v2.0-gguf">Unsloth Dynamic 2.0</a> achieves superior accuracy & outperforms other leading quants.</em>
</p>
<div style="display: flex; gap: 5px; align-items: center; ">
<a href="https://github.com/unslothai/unsloth/">
<img src="https://github.com/unslothai/unsloth/raw/main/images/unsloth%20new%20logo.png" width="133">
</a>
<a href="https://discord.gg/unsloth">
<img src="https://github.com/unslothai/unsloth/raw/main/images/Discord%20button.png" width="173">
</a>
<a href="https://docs.unsloth.ai/">
<img src="https://raw.githubusercontent.com/unslothai/unsloth/refs/heads/main/images/documentation%20green%20button.png" width="143">
</a>
</div>
</div>
## Run these GGUFs with llama.cpp
These are GGUF quants of North-Mini-Code-1.0. The model uses the `cohere2moe` architecture, which is not in a stock llama.cpp release yet. Until [llama.cpp PR #24260](https://github.com/ggml-org/llama.cpp/pull/24260) is merged, build llama.cpp from that PR branch to load these files. Once the PR lands in a release, these same GGUFs will run on stock llama.cpp with no re-download, because they already declare `general.architecture = cohere2moe`.
### 1. Build llama.cpp from PR #24260
```bash
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
git fetch origin pull/24260/head:cohere2-moe
git checkout cohere2-moe
# CUDA build. Drop -DGGML_CUDA=ON for a CPU only build.
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j
```
The binaries are written to `build/bin/` (`llama-cli`, `llama-server`, `llama-quantize`).
### 2. Download a quant
```bash
pip install huggingface_hub
hf download unsloth/North-Mini-Code-1.0-GGUF \
--include "North-Mini-Code-1.0-UD-Q4_K_XL.gguf" \
--local-dir North-Mini-Code-1.0-GGUF
```
Every quant here is a single file except `BF16/`, which is split into two shards. To use a split set, download the whole folder and point llama.cpp at the first shard (`...-00001-of-00002.gguf`); it loads the rest automatically.
### 3. Run
Interactive chat with llama-cli:
```bash
./build/bin/llama-cli \
--model North-Mini-Code-1.0-GGUF/North-Mini-Code-1.0-UD-Q4_K_XL.gguf \
--jinja \
--n-gpu-layers 99 \
--ctx-size 16384 \
--temp 1.0 --top-p 0.95 \
-p "Write a python program to check if a string is a palindrome."
```
OpenAI compatible server with llama-server:
```bash
./build/bin/llama-server \
--model North-Mini-Code-1.0-GGUF/North-Mini-Code-1.0-UD-Q4_K_XL.gguf \
--jinja \
--n-gpu-layers 99 \
--ctx-size 16384 \
--host 0.0.0.0 --port 8080
```
Then query it:
```bash
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": "Write a python program to check if a string is a palindrome."}],
"temperature": 1.0,
"top_p": 0.95
}'
```
Notes:
- Pass `--jinja` so the model chat template, including tool calling, is applied.
- Recommended sampling settings are `temperature=1.0` and `top_p=0.95`.
- Set `--n-gpu-layers 99` to offload all layers to GPU, or lower it to fit your VRAM. Use `--ctx-size` to set the context window (the model supports up to 256K).
- `imatrix_unsloth.gguf_file` is the importance matrix used to build these quants. It is not a model and is not loaded at runtime.
# **Model Card for North Mini Code**
## **Model Summary**
North Mini Code is an open weights research release of a 30B-A3B parameter model optimized for code generation, agentic software engineering, and terminal tasks.
Developed by: [Cohere](https://cohere.com/) and [Cohere Labs](https://cohere.com/research)
* Point of Contact: [**Cohere Labs**](https://cohere.com/research)
* License: Apache 2.0
* Model: North Mini Code
* Model Size: 30B total; 3B active
* Context length: 256K & 64K max output
For more details about this model, please check out our [blog post](https://huggingface.co/blog/CohereLabs/introducing-north-mini-code).
**Try North Mini Code**
You can try out North Mini Code before downloading the weights in OpenCode and our hosted [Hugging Face Space](https://huggingface.co/spaces/CohereLabs/North-Mini-Code-1.0).
**Evaluation**

<details>
<summary><span style="font-size: 80%;"><b>Benchmarking Methodology [CLICK TO EXPAND]</span></b></summary>
- <span style="font-size: 80%;">We used SWE-Bench Verified, SWE-Bench Pro, Terminal-Bench v2, and Terminal-Bench Hard to benchmark North Mini Code's agentic coding capabilities. For evaluation harnesses, we used the Swe-Agent harness v1.1.0 for SWE-Bench, and a simple ReAct harness employing a single terminal-use tool based on Harbor's Tmux session implementation for Terminal-Bench v2. For Terminal Bench Hard, we directly used Terminus-2, following the same methodology as the Artificial Analysis Intelligence Index to compare North-Mini-Code-1.0 with the other models. Additionally, we used SciCode and LiveCodeBench v6 as complex code-generation benchmarks outside of tool use.</span>
- <span style="font-size: 80%;">We run each benchmark with 3 different seeds and report the average benchmark performance, using temperature=1.0 and top\_p=0.95. We used publicly reported scores for competitor models, either from original reports or the Artificial Analysis Intelligence Index, where available. Additionally, Gemma4’s scores for agentic coding tasks were reported by [Qwen team](https://qwen.ai/blog?id=qwen3.6-35b-a3b). For benchmark results that any public report is missing, denoted by (\*) in the figure, we run them internally using the recommended model configuration.</span>
</details>
**Usage**
Please install transformers from the source repository that includes the necessary changes for this model. We recommend using the following set of sampling parameters for generation: \`temperature=1.0\`, \`top\_p=0.95\`.
```py
# pip install transformers
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "CohereLabs/North-Mini-Code-1.0"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
prompt = "Write a python program to check if a string is a palindrome or not."
# Format message with the North-Mini-Code-1.0 chat template
messages = [{"role": "user", "content": prompt}]
input_ids = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt",
)
gen_tokens = model.generate(
**input_ids,
max_new_tokens=1024,
do_sample=True,
temperature=1.0,
top_p=0.95
)
gen_text = tokenizer.decode(gen_tokens[0])
print(gen_text)
```
You can also use the model directly using transformers `pipeline` abstraction:
```py
from transformers import pipeline
import torch
model_id = "CohereLabs/North-Mini-Code-1.0"
prompt = """Given a list of unique words each of size k and an n sized word, w, where n is a multiple of k,
Write a program in python to determine the number of unique combinations of words in the list that can be concatenated to form an anagram of the word w.
"""
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype="auto",
device_map="auto",
)
messages = [
{"role": "user", "content": f"{prompt}"},
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
outputs = pipe(
messages,
max_new_tokens=1024,
do_sample=True,
temperature=1.0,
top_p=0.95
)
print(outputs[0]["generated_text"][-1])
```
## **Model Details**
**Input**: Text only.
**Output**: Model generates text.
**Model Architecture**: North-Mini-Code-1.0 is a decoder-only Transformer-based sparse Mixture-of-Experts model. It uses an efficient attention implementation, interleaved between sliding-window attention with RoPE and global attention with no positional embeddings, in a 3:1 ratio. The feed-forward block is an MoE block with 128 experts, of which 8 are activated per token. Each expert block is an FFN block with SwiGLU activation. The router applies a sigmoid activation function to the logits before the top-k selection. We also use a single dense layer before the sparse layers. North-Mini-Code-1.0 was post-trained using a two-stage cascaded supervised fine-tuning (SFT) followed by reinforcement learning with verifiable rewards (RLVR), focusing on agentic coding. For more technical details, please check out our [blog post](https://huggingface.co/blog/CohereLabs/introducing-north-mini-code).
**Context Length:** North-Mini-Code-1.0 supports a context length of 256K & 64K output length.
### **Tool Use Capabilities:**
North-Mini-Code-1.0 has been specifically trained with tool-use capabilities for agentic coding.
Tool use with North-Mini-Code-1.0 is supported through [chat templates](https://huggingface.co/docs/transformers/main/en/chat_templating#advanced-tool-use--function-calling) in Transformers. We recommend providing tool descriptions using JSON schema.
**Tool Use Example \[CLICK TO EXPAND\]**
```py
# Define tools
tools = [{
"type": "function",
"function": {
"name": "bash",
"description": "Execute a bash command in the terminal.",
"parameters": {
"type": "object",
"properties": {
"command": {
"description": "The bash command to execute.",
"type": "string"
}
},
"required": ["command"]
},
}
}]
# Define conversation input
conversation = [{"role": "user", "content": "Find out if there is any json file in this folder"}]
# Get the Tool Use prompt
input_prompt = tokenizer.apply_chat_template(conversation=conversation, tools=tools, tokenize=False, add_generation_prompt=True, return_tensors="pt")
# Tokenize the prompt
input_ids = tokenizer(input_prompt, return_tensors="pt")
```
You can then generate from this input as normal.
North Mini Code, similarly as all the other Cohere agent models released to date, supports [interleaved thinking](https://docs.vllm.ai/en/latest/features/interleaved_thinking/) and works best when turned on. You’re strongly encouraged to pass on all the model-generated thinking contents to future agentic steps, and chat turns for the best model performance. Please refer to the linked vllm doc and see how it’s done.
If the model generates thinking content and tool calls, you should add both of them to the chat history like so:
```py
# Pass on the tool_call and thinking
tool_call = {"name": "bash", "arguments": {"command": "ls -al"}}
reasoning = "The user wants to find if there are any JSON files in the current folder. I should use the `ls` command to list files and then check if there are any JSON files (files ending with .json). Let me first list the files in the current directory."
conversation.append({"role": "assistant", "tool_calls": [{"id": "0", "type": "function", "function": tool_call}], "reasoning": reasoning})
```
and then call the tool and append the result, as a dictionary, with the tool role, like so:
```py
# This needs to be a dictionary
tool_result = {"stdout": "test.json\ntest.py", "return_code": "0"}
# Append tool results
conversation.append({"role": "tool", "tool_call_id": "0", "content": tool_result})
```
After that, you can `generate()` again to let the model use the tool result in the chat.
Note that this was a very brief introduction to tool calling \- for more information the Transformers [tool use documentation](https://huggingface.co/docs/transformers/main/chat_templating#advanced-tool-use--function-calling).
### **vLLM**
You can also run the model in vLLM. Please use vLLM main for North Mini Code until a new release is available, and accurate response parsing also requires installing Cohere’s melody library.
```shell
uv pip install "git+https://github.com/vllm-project/vllm.git"
uv pip install cohere_melody>=0.9.0
```
Then the vllm server can be started with the following command:
```shell
vllm serve CohereLabs/North-Mini-Code-1.0 \
-tp 2 \
--max-model-len 320000 \
--tool-call-parser cohere_command4 \
--reasoning-parser cohere_command4 \
--enable-auto-tool-choice
```
**Use locally deployed North Mini Code in OpenCode:**
Please use OpenCode main branch until a new release is available.
```shell
# Example commands to install on linux
git clone https://github.com/anomalyco/opencode.gitcd opencode
# Install Bun
curl -fsSL https://bun.sh/install | bash
export BUN_INSTALL="$HOME/.bun"
export PATH="$BUN_INSTALL/bin:$PATH"
# node-gyp was needed by a dependency
bun add -g node-gyp
# Install dependencies
bun install
# Build CLI
bun run --cwd packages/opencode build/usr/bin/install -m 755 \
./opencode/packages/opencode/dist/opencode-linux-x64/bin/opencode \
/root/.local/bin/opencode
```
To use locally deployed North Mini Code in Opencode, please use this config which enables interleaved reasoning:
```json
{
"$schema": "https://opencode.ai/config.json",
"model": "vllm/CohereLabs/North-Mini-Code-1.0",
"provider": {
"vllm": {
"npm": "@ai-sdk/openai-compatible",
"name": "Local vLLM server",
"options": {
"baseURL": "http://127.0.0.1:8000/v1",
"apiKey": "EMPTY"
},
"models": {
"North-Mini-Code-1.0": {
"name": "North-Mini-Code-1.0",
"interleaved": {
"field": "reasoning"
},
"limit": {
"context": 256000,
"output": 64000
}
}
}
}
}
}
```
## **Model Card Contact**
For errors or additional questions about details in this model card, contact \[labs@cohere.com\]. |