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", dtype="auto") - llama-cpp-python
How to use unsloth/North-Mini-Code-1.0-GGUF with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="unsloth/North-Mini-Code-1.0-GGUF", filename="BF16/North-Mini-Code-1.0-BF16-00001-of-00002.gguf", )
llm.create_chat_completion( messages = "No input example has been defined for this model task." )
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use unsloth/North-Mini-Code-1.0-GGUF with llama.cpp:
Install from brew
brew install llama.cpp # 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
Install from WinGet (Windows)
winget install llama.cpp # 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
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-server -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
- Hermes Agent new
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-server -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 new
- 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
Unsloth Dynamic 2.0 achieves superior accuracy & outperforms other leading quants.
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 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
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
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:
./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:
./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:
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
--jinjaso the model chat template, including tool calling, is applied. - Recommended sampling settings are
temperature=1.0andtop_p=0.95. - Set
--n-gpu-layers 99to offload all layers to GPU, or lower it to fit your VRAM. Use--ctx-sizeto set the context window (the model supports up to 256K). imatrix_unsloth.gguf_fileis 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 and Cohere Labs
- Point of Contact: Cohere Labs
- 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.
Try North Mini Code
You can try out North Mini Code before downloading the weights in OpenCode and our hosted Hugging Face Space.
Evaluation
Benchmarking Methodology [CLICK TO EXPAND]
- 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.
- 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. For benchmark results that any public report is missing, denoted by (*) in the figure, we run them internally using the recommended model configuration.
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`.
# 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:
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.
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 in Transformers. We recommend providing tool descriptions using JSON schema.
Tool Use Example [CLICK TO EXPAND]
# 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 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:
# 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:
# 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.
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.
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:
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.
# 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:
{
"$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].
- Downloads last month
- -
1-bit
2-bit
3-bit
4-bit
5-bit
6-bit
8-bit
16-bit
Model tree for unsloth/North-Mini-Code-1.0-GGUF
Base model
CohereLabs/North-Mini-Code-1.0
