Jan-code
Collection
2 items • Updated • 19
# Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("janhq/Jan-code-4b")
model = AutoModelForCausalLM.from_pretrained("janhq/Jan-code-4b")
messages = [
{"role": "user", "content": "Who are you?"},
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=40)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))Jan-Code-4B is a code-tuned model built on top of Jan-v3-4B-base-instruct. It’s designed to be a practical coding model you can run locally and iterate on quickly—useful for everyday code tasks and as a lightweight “worker” model in agentic workflows.
Compared to larger coding models, Jan-Code focuses on handling well-scoped subtasks reliably while keeping latency and compute requirements small.
Jan-code is optimized for direct integration with Jan Desktop, select the model in the app to start using it.
Using vLLM:
vllm serve janhq/Jan-code-4b \
--host 0.0.0.0 \
--port 1234 \
--enable-auto-tool-choice \
--tool-call-parser hermes
Using llama.cpp:
llama-server --model Jan-code-4b-Q8_0.gguf \
--host 0.0.0.0 \
--port 1234 \
--jinja \
--no-context-shift
For optimal performance in agentic and general tasks, we recommend the following inference parameters:
temperature: 0.7
top_p: 0.8
top_k: 20
Updated Soon
Base model
Qwen/Qwen3-4B-Instruct-2507
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="janhq/Jan-code-4b") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)