Instructions to use kanaton/webcoder-3b 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-3b 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-3b:Q8_0 # Run inference directly in the terminal: llama cli -hf kanaton/webcoder-3b: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-3b:Q8_0 # Run inference directly in the terminal: llama cli -hf kanaton/webcoder-3b:Q8_0
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf kanaton/webcoder-3b:Q8_0 # Run inference directly in the terminal: ./build/bin/llama cli -hf kanaton/webcoder-3b:Q8_0
Use Docker
docker model run hf.co/kanaton/webcoder-3b:Q8_0
- Llama new
- LM Studio
- Jan
- vLLM
How to use kanaton/webcoder-3b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "kanaton/webcoder-3b" # 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-3b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/kanaton/webcoder-3b:Q8_0
- Ollama
How to use kanaton/webcoder-3b with Ollama:
ollama run hf.co/kanaton/webcoder-3b:Q8_0
- Unsloth Desktop
- Pi
How to use kanaton/webcoder-3b 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-3b: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-3b:Q8_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use kanaton/webcoder-3b with Docker Model Runner:
docker model run hf.co/kanaton/webcoder-3b:Q8_0
- Lemonade
How to use kanaton/webcoder-3b with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull kanaton/webcoder-3b:Q8_0
Run and chat with the model
lemonade run user.webcoder-3b-Q8_0
List all available models
lemonade list
- Hermes Agent
How to use kanaton/webcoder-3b 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-3b: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-3b:Q8_0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use kanaton/webcoder-3b 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-3b: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-3b: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 3B — assistant de code web local (CPU)
WebCoder 3B est un modèle de code web pour PHP, HTML, CSS, SQL et JavaScript, destiné Ã
tourner en local, sur CPU, sans API externe. Il est dérivé de
Qwen/Qwen2.5-Coder-3B-Instruct par un fine-tune LoRA (identité + chat + worker), fusionné puis
quantifié en GGUF Q8_0.
Transparence : la base réelle est Qwen2.5-Coder (Alibaba, Apache-2.0). « WebCoder, créé par Pierre Jean Duvivier » désigne le livrable (corpus + fine-tune), pas la base. L'assistant ne divulgue pas spontanément la base ; l'attribution technique est ici et dans
THIRD_PARTY_NOTICES.md.
Variantes
| Dépôt | Taille | GGUF | Cible |
|---|---|---|---|
kanaton/webcoder-3b |
3B | webcoder-3b-q8_0.gguf (3,29 Go) |
hôte avec RAM confortable ; meilleur sur les tâches dures |
kanaton/webcoder-t28n |
1,5B | webcoder-t28n-q8_0.gguf (1,65 Go) |
cible 8 Go / CPU modeste |
La suite de cette carte décrit la 3B. Pour la 1,5B, remplacer le nom du fichier et le
base_model par Qwen/Qwen2.5-Coder-1.5B-Instruct ; les sections usage et limites restent valables.
Détails
| Champ | Valeur |
|---|---|
| Base | Qwen/Qwen2.5-Coder-3B-Instruct @ 488639f1ff808d1d3d0ba301aef8c11461451ec5 |
| Fine-tune | LoRA seed identité + chat + worker, 317 ex., 150 pas, puis fusion |
| Format | GGUF Q8_0, architecture Qwen2, contexte 32768 |
| Fichier | webcoder-3b-q8_0.gguf, 3 285 475 808 octets |
| SHA-256 | d0f1f9f023506d36f8322c090f1244ff03e703ac07e13bd8fcb99bc9c0ca2f6f |
| Licence | Apache-2.0 |
| Identité | « WebCoder », créé par Pierre Jean Duvivier — via le template de chat |
Usage
llama.cpp
llama-server -m webcoder-3b-q8_0.gguf \
--alias webcoder \
--chat-template-file webcoder_no_tools.jinja \
--ctx-size 4096 \
--threads 6 \
--host 127.0.0.1 --port 8081
Important — identité : sans
--chat-template-file, llama.cpp applique le template Qwen et le modèle répond « Je suis Qwen ». L'identité WebCoder est portée par le templatewebcoder_no_tools.jinja(à inclure dans le dépôt HF et à télécharger avec le GGUF), pas par les poids seuls. Vérifié le 2026-11-08 : même modèle, même GGUF, identité différente selon le template.
Template de chat (obligatoire pour l'identité)
Le fichier webcoder_no_tools.jinja définit le system prompt « Tu es WebCoder… ». Pour
transformers :
from pathlib import Path
tok.chat_template = Path("webcoder_no_tools.jinja").read_text(encoding="utf-8")
Sans ce template, le modèle se présente comme Qwen (base réelle).
Puis :
curl http://127.0.0.1:8081/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"messages":[{"role":"user","content":"Qui es-tu ?"}],"temperature":0}'
- CPU-first : aucun GPU requis, aucun fallback GPU.
- Contexte : 4096 pour l'évaluation ; le GGUF supporte 32768 mais le préfill CPU est lent.
- Décodage : température 0 recommandée pour des sorties déterministes.
- Pas de tool-calling structuré : le modèle peut écrire un appel d'outil en texte, pas en
tool_calls. Utiliser le mode chat, pas agentique.
Format worker
Pour les tâches de code, le modèle attend un prompt « worker » et répond avec des blocs :
```file:src/config.php
<?php
// ...
```
Les blocs sont ensuite appliqués dans un worktree jetable et testés.
Performances
Évaluation sur bancs PHP tenus à l'écart (références vérifiées) :
| Banc | 3B v0 | 1,5B (T28n) |
|---|---|---|
z (dur, multi-fichiers) |
5/5 | 0–1/5 |
y (réserve neuve) |
4/5 | 3/5 |
x (réserve dure) |
4/5 | 4/5 |
h |
8/8 | 7–8/8 |
p |
2/4 | 2/4 |
r |
2/4 | — |
- Identité et chat préservés (vérifiés).
- La 3B est nettement meilleure sur les tâches dures ; c'est le facteur capacité.
- Les continuations d'entraînement sur la 3B (plan-first, app) n'ont pas amélioré les résultats → v0 conservé.
P2P (harnais externe, optionnel)
Le P2P n'est pas dans les poids. Un harnais séparé (tools/p2p/) permet de servir le modèle sur
plusieurs nœuds :
- pairs symétriques + gossip HTTP, sans broker central ;
- routage least-connections + exclusion temporaire des nœuds morts ;
- best-of-N distribué et découpage multi-fichiers.
Gains mesurés : débit sur requêtes indépendantes (8,69 → 17,73 tok/s, 2,04× de 1 à 4
machines), pas de gain de latence sur une app unique. Voir le dépôt du harnais
(tools/p2p/README.md, DEPLOY_MULTI_MACHINE.md).
Limites
- Génération from-scratch : les apps multi-fichiers à dépendances linéaires restent fragiles ;
les erreurs de logique (ex. ordre
preg_replace/strtolower) ne sont pas corrigées par les boucles de réparation actuelles. - Découpage 7 fichiers : structure correcte mais échec sur la logique du modèle → non adopté.
- Tool-calling non fonctionnel.
- 3B Q8 : la cible 8 Go n'a pas été validée ; préférer la 1,5B pour un hôte à 8 Go.
- Prompts en français, templates spécifiques au projet.
- Pas de garantie de généralisation hors PHP/HTML/CSS/SQL/JS.
Licence et attribution
- Base : Qwen2.5-Coder (Alibaba), Apache-2.0.
- Adaptateurs, corpus et code du harnais : travail du projet WebCoder.
- Voir
LICENSEetTHIRD_PARTY_NOTICES.mddu dépôt.
- Downloads last month
- 55
8-bit