Instructions to use kanaton/webcoder-t28n 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 kanaton/webcoder-t28n 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 kanaton/webcoder-t28n:Q8_0 # Run inference directly in the terminal: llama cli -hf kanaton/webcoder-t28n:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf kanaton/webcoder-t28n:Q8_0 # Run inference directly in the terminal: llama cli -hf kanaton/webcoder-t28n:Q8_0
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 kanaton/webcoder-t28n:Q8_0 # Run inference directly in the terminal: ./llama-cli -hf kanaton/webcoder-t28n:Q8_0
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 kanaton/webcoder-t28n:Q8_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf kanaton/webcoder-t28n:Q8_0
Use Docker
docker model run hf.co/kanaton/webcoder-t28n:Q8_0
- LM Studio
- Jan
- vLLM
How to use kanaton/webcoder-t28n with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "kanaton/webcoder-t28n" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "kanaton/webcoder-t28n", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/kanaton/webcoder-t28n:Q8_0
- Ollama
How to use kanaton/webcoder-t28n with Ollama:
ollama run hf.co/kanaton/webcoder-t28n:Q8_0
- Unsloth Desktop
- Pi
How to use kanaton/webcoder-t28n with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf kanaton/webcoder-t28n:Q8_0
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": "kanaton/webcoder-t28n:Q8_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use kanaton/webcoder-t28n with Docker Model Runner:
docker model run hf.co/kanaton/webcoder-t28n:Q8_0
- Lemonade
How to use kanaton/webcoder-t28n with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull kanaton/webcoder-t28n:Q8_0
Run and chat with the model
lemonade run user.webcoder-t28n-Q8_0
List all available models
lemonade list
- Hermes Agent
How to use kanaton/webcoder-t28n with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf kanaton/webcoder-t28n:Q8_0
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 kanaton/webcoder-t28n:Q8_0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use kanaton/webcoder-t28n with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf kanaton/webcoder-t28n:Q8_0
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 "kanaton/webcoder-t28n:Q8_0" \ --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"
WebCoder โ assistant de code web local (CPU, hors-ligne)
Petit assistant de dรฉveloppement web conรงu pour tourner localement, sur CPU, sans GPU et sans
rรฉseau. Livrable du projet ยซ WebCoder local ยป : Qwen2.5-Coder-1.5B-Instruct + LoRA entraรฎnรฉ
par nous (identitรฉ, chat, worker), fusionnรฉ et quantifiรฉ en GGUF Q8_0.
Identitรฉ
| Champ | Valeur |
|---|---|
| Modรจle dรฉcrit | webcoder-t28n = base + LoRA (continuation T28g โ T28g+ โ T28n) |
| Base | Qwen/Qwen2.5-Coder-1.5B-Instruct @ 2e1fd397ee46e1388853d2af2c993145b0f1098a |
| Adaptateur | LoRA rang 8, LR 5e-5, 250 pas, corpus t28n_train.jsonl = 1 706 exemples (853 nouveaux + 853 en replay) |
| Artefact servi | GGUF Q8_0, webcoder-t28n-q8_0.gguf, 1 646 572 640 octets |
| SHA-256 | c0b733fe197a6d64d04bad5a654184ca9235e091e21774676a8007449db869d9 |
| Alias servi | webcoder (llama-server --alias) |
| Licence | Apache-2.0 (celle de la base ; l'adaptateur est notre travail) |
| Identitรฉ dรฉclarรฉe | se prรฉsente comme ยซ WebCoder ยป, crรฉรฉ par Pierre Jean Duvivier |
Provenance et attribution. La base rรฉelle est Qwen2.5-Coder (Alibaba Cloud, Apache-2.0). ยซ crรฉรฉ par Pierre Jean Duvivier ยป dรฉsigne le livrable (corpus + fine-tune), pas la base. L'assistant n'expose pas sa base dans ses rรฉponses : c'est un choix du porteur, pas une revendication technique. L'attribution technique complรจte est dans cette fiche.
Usage prรฉvu
Assistant de modification de code Web hors-ligne pour PHP, HTML, CSS, SQL, JavaScript (y compris plugins/thรจmes WordPress).
- Cible matรฉrielle : CPU seul, machine ร ~8 Go de RAM. Aucune API externe, aucune donnรฉe transmise.
- Deux modes, choisis par le system prompt : worker (produit des patchs sous forme de
blocs
```file:CHEMIN) et chat (rรฉpond en prose). - Hors pรฉrimรจtre : GPU, usage gรฉnรฉraliste, langages hors des cinq ci-dessus, gรฉnรฉration d'applications complรจtes (voir Limites).
Dรฉmarrage
# llama.cpp (build CPU) ; contexte 4096 = configuration des mesures, 32768 = usage confortable
llama-server \
--model webcoder-t28n-q8_0.gguf \
--alias webcoder \
--ctx-size 32768 \
--n-gpu-layers 0 \
--threads 6 --threads-batch 6 \
--host 127.0.0.1 --port 8081
# puis, en API compatible OpenAI :
curl -s http://127.0.0.1:8081/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"webcoder","messages":[{"role":"user","content":"Qui es-tu ?"}]}'
Le serveur tourne en loopback : rien n'est exposรฉ au rรฉseau.
Entraรฎnement
Chaรฎne de continuation, chaque palier repartant du prรฉcรฉdent plutรดt que de la base publique (ce qui รฉvite l'oubli observรฉ sur les tentatives repartant de la base) :
| Palier | Point de dรฉpart | Donnรฉes | Rรฉsultat |
|---|---|---|---|
| T28g | base publique | 267 ex. (code + chat + identitรฉ) | identitรฉ acquise, scellรฉ-4 : pass@1 0,80 / 0,925 |
| T28g+ | T28g | 1 602 ex. (801 neufs + 801 replay) | rรฉsout un cas auparavant hors d'atteinte, sans rรฉgression |
| T28n | T28g+ | 1 706 ex. (853 + 853 replay) | rรฉserve neuve 2/5 โ 3/5, sans rรฉgression |
LoRA rang 8 (q/v), 250 pas, sรฉlection sur validation, puis merge_lora โ GGUF f16 โ llama-quantize.
Mesures faites sur CPU, avec des jeux de rรฉserve inรฉdits (php-y01..y05) jamais utilisรฉs ร
l'entraรฎnement.
รvaluation
Rรฉserve neuve y (php-y01..y05) โ cas jamais vus ร l'entraรฎnement :
| Mesure | T28g+ | T28n |
|---|---|---|
rรฉserve neuve y |
2/5 | 3/5 (cas multi-fichiers rรฉsolu) |
rรฉserve dure x |
4/5 | 4/5 |
cas a04/a05 |
1/2 | 1/2 |
cas h |
7/8 | 7/8 |
| identitรฉ | pass | pass |
| chat | 4/4 | 4/4 |
Dรฉbit : ~6 tok/s en gรฉnรฉration sur un CPU de portatif (modรจle 1,5 B en Q8_0, CPU seul). La quantification compte : servir en Q8_0 plutรดt qu'en Q4 amรฉliore la justesse d'un cas de rรฉserve, ร identitรฉ constante.
Limites โ ร lire avant usage
Ce modรจle est petit (1,5 B) et volontairement honnรชte sur ce qu'il ne fait pas :
- Il n'รฉcrit pas d'applications complรจtes. Les cas ยซ application depuis zรฉro ยป รฉchouent (schรฉma rรฉinventรฉ, erreurs de type, sortie tronquรฉe au-delร de ~400 jetons).
- Il n'exploite pas les corrections. Le signaler ne le fait pas se corriger : il rรฉpรจte souvent la mรชme erreur. Le goulot est la capacitรฉ du modรจle, pas le prompt.
- Il ne prรฉdit pas ce qu'il sait faire. Testรฉ comme composant de routage, il est sous une baseline triviale et se croit souvent capable de ce qu'il rate.
- Il n'est pas ร utiliser pour l'audit de sรฉcuritรฉ. Sur les mรชmes cas, un linter dรฉterministe simple fait largement mieux (0,976 contre 0,667), sans faux positif.
- Identitรฉ conditionnรฉe au prompt. Sans le system prompt d'identitรฉ, il peut halluciner une base. Avec le prompt fourni, il rรฉpond correctement ยซ WebCoder / Pierre Jean Duvivier ยป.
- Pas de tool-calling. Les sorties structurรฉes au format worker sont fiables ; l'appel d'outils ne l'est pas.
Ces limites sont mesurรฉes, pas supposรฉes : elles viennent de jeux de rรฉserve inรฉdits, de validations leave-one-out et de comparaisons systรฉmatiques.
Reproductibilitรฉ
Tout est figรฉ : rรฉvision de la base, commit de llama.cpp, empreintes des corpus, commandes
exactes, seeds et mรฉtriques. Les poids servis sont dรฉcrits par leur SHA-256 ci-dessus. La chaรฎne
d'entraรฎnement (LoRA โ fusion โ quantification GGUF) est reproductible de bout en bout sur CPU.
Licence et citation
- Apache-2.0 (licence de la base, conservรฉe). L'adaptateur et le corpus sont notre travail.
- Base :
Qwen/Qwen2.5-Coder-1.5B-Instruct(Alibaba Cloud), rรฉvision2e1fd397ee46e1388853d2af2c993145b0f1098a.
@misc{webcoder_t28n,
title = {WebCoder: a local CPU-only web-coding assistant (webcoder-t28n)},
author = {Duvivier, Pierre Jean},
year = {2026},
note = {Qwen2.5-Coder-1.5B-Instruct + LoRA continuations (T28g, T28g+, T28n), GGUF Q8_0}
}
- Downloads last month
- 9
8-bit
Model tree for kanaton/webcoder-t28n
Base model
Qwen/Qwen2.5-1.5B