Brimkerndocs

$ brimkern chat

brimkern · zsh

Moteur d’inférence WebGPU & WGSL on-device

Brimkern WGSL
ModèleQwen 3 4B (BRIK int4)MoteurNatif Dawn (in-process)WebGPUDawn (Metal)Statut100 % local

Un assistant de code dans votre terminal, sur votre propre GPU

Les mêmes kernels WGSL écrits à la main que le moteur du navigateur, pilotés depuis votre shell. Qwen 3 4B par défaut, sans Python, sans CUDA, sans serveur, sans clé d’API : votre code ne quitte jamais la machine.

Une vraie session

Capturée telle quelle depuis le terminal, couleurs comprises : le Markdown est rendu pendant le flux (gras, code, listes), et chaque réponse se termine par son temps et une estimation de ce qu’une API payante aurait facturé.

brimkern chat
kern › give me 3 advantages of TypeScript as a list with bold titles, and one short code example
Type Safety: Ensures that variables are used correctly by the compiler, reducing runtime errors.

Better Tooling: Provides features like intellisense, refactoring support, and error detection during development.

Maintainable Code: Enforces a structured approach to code organization and promotes cleaner, more readable code through interfaces and type annotations.

Code Example:
function greet(name: string): void {
    console.log(`Hello, ${name}!`);
}

greet("World");


⏱ 10.67s · ~9.6 tok/s · 102 tokens · ≈ $0.0024 saved (session: $0.0024) (Dawn (Metal))

Enregistrée le 23/09/2026 sur un Mac série M, Qwen 3 4B (Dawn natif), cache chaud. Sortie non retouchée.

Installation

Sur macOS ou Linux, avec Node.js 20+ et git. Le script clone le dépôt dans ~/.brimkern, installe les dépendances, construit le moteur et ajoute une commande brimkern dans ~/.local/bin. Relancez-le pour mettre à jour.

curl -fsSL https://brimkern.com/install.sh | bash

Lancez ensuite brimkern chat dans n’importe quel dossier de projet. Le GPU est utilisé directement : Metal sur macOS, Vulkan sur Linux. Le premier lancement télécharge le modèle par défaut une fois (2,53 Go) ; les suivants le relisent depuis ~/.cache/brimkern (mesuré sur le modèle de 491 Mo : 35,4 s la première fois, 3,4 s la seconde).

Désinstaller : rm -rf ~/.brimkern ~/.local/bin/brimkern

Le REPL

Tapez / et les commandes correspondantes s’affichent sous le prompt pendant la frappe, la fin de la première en grisé : → ou Tab l’accepte. L’assistant sait dans quel projet vous êtes (il lit le README, la description du paquet et la branche git) : « à quoi sert ce projet ? » obtient une vraie réponse.

@path/file:10-40Injecte un fichier (ou une plage de lignes) dans le prompt. Tab complète les chemins.
/modelSélecteur interactif (↑/↓, Entrée) pour changer de modèle à chaud.
/mode code|plan|review|autoChange la manière dont l’assistant intervient.
/think off|auto|deepRaisonnement pas à pas, affiché dans son propre bloc.
/diff · /commitRevue de vos modifications git · propositions de messages de commit.
/review <file>Revue approfondie d’un fichier.
/copy · /acceptCopie la dernière réponse · extrait ses blocs de code.
/status · /statsÉtat de la session · tokens, vitesse, économies estimées.
/reset · /clearOublie la conversation · efface l’écran.
!git statusExécute une commande shell sans quitter le REPL.
Esc · Ctrl+CArrête la génération en cours (la session survit).

Le chiffre d’économies est une estimation, présentée comme telle : tokens ≈ caractères / 4, l’historique compté à chaque tour comme le facturerait une API, à un tarif de référence de 3 $ / 15 $ par million de tokens en entrée / sortie ; BRIMKERN_PRICE_IN et BRIMKERN_PRICE_OUT pour mettre le vôtre.

Fichiers, git & shell

@file

Mentionnez un fichier, éventuellement avec une plage de lignes : il est lu sur le disque et inséré dans le prompt.

kern › explain the state handling in @src/app/Composer.tsx:10-60

/diff · /commit · /review

Lit vos modifications non commitées pour les relire ou proposer trois messages de commit conventionnels ; /review prend un fichier.

kern › /diff
kern › /commit
kern › /review src/lib/storage.ts

Pipes & scripts

L’entrée standard est lue automatiquement : Brimkern s’enchaîne avec les outils habituels. --raw ne garde que le texte du modèle sur stdout (ni en-tête, ni temps, ni couleurs), prêt à rediriger.

git diff | brimkern "Write a conventional commit title"
cat crash.log | brimkern "Find the root cause"
brimkern --raw "Write a .gitignore for a Next.js app" > .gitignore

Modèles

Trois presets, classés à notre banc de code : cinq suites, 202 problèmes, décodage glouton, chaque réponse exécutée contre des tests. coder-max est à 2 problèmes de Claude Sonnet 5, mais demande une machine de 20 Go de mémoire ou plus.

Problèmes résolus, cinq suites (202 problèmes)
ModèleHumanEvalHumanEval+MBPP+TypeScriptRéparation de bugTotal
coder-max41/4138/4035/4036/4034/41184/202
Claude Sonnet 541/4136/4033/4036/4040/41186/202
coder35/4134/4028/4028/4021/41146/202
super-coder33/4130/4029/4027/4026/41145/202

HumanEval (41), HumanEval+ (EvalPlus, 40), MBPP+ (40), TypeScript (MultiPL-E, 40), réparation de bug (HumanEvalFix, 41), 25/09/2026. Problèmes résolus seulement : les temps dépendaient de l’état de la machine et ne sont pas comparés. Reproduire : node scripts/bench-code.mjs --suite=humaneval,heplus,mbppplus,ts,fix.

Sur votre GPU · mesuré, même banc

coder-max · Qwen 3.6 35B-A3BMoE, 20 Go+ de mémoire, sans réflexion
coder · Qwen 3 4Bpreset par défaut, sans réflexion
super-coder · Qwen 3.5 4Bréfléchit avant de répondre

Claude · cloud · mesuré, même banc

Claude Opus 5.5
Claude Sonnet 5
Claude Haiku 4.5

GPT · cloud · annoncé par OpenAI, HumanEval complet (164), leur protocole, non mesuré ici

GPT-4.1
GPT-4.1 mini
GPT-4o
Voir en tableau
GroupeModèlepass@1Détail
Sur votre GPUcoder-max · Qwen 3.6 35B-A3B100.0 %41/41
Sur votre GPUcoder · Qwen 3 4B85.4 %35/41
Sur votre GPUsuper-coder · Qwen 3.5 4B80.5 %33/41
ClaudeClaude Opus 5.5100.0 %41/41
ClaudeClaude Sonnet 5100.0 %41/41
ClaudeClaude Haiku 4.597.6 %40/41
GPTGPT-4.194.5 %annoncé par OpenAI
GPTGPT-4.1 mini93.8 %annoncé par OpenAI
GPTGPT-4o90.2 %annoncé par OpenAI

pass@1 sur 41 problèmes HumanEval (un sur quatre), 24/09/2026. Modèles locaux : Dawn natif sur Mac série M, décodage glouton. Claude : même prompt et mêmes tests via claude -p. Les scores GPT sont ceux d’OpenAI, sur le banc complet : montrés pour l’ordre de grandeur, pas comparables point à point. Reproduire : node scripts/bench-code.mjs.

coder-max · moe
Qwen 3.6 35B-A3B Coder11,4 Go
formatGGUF Q4_K_MmoteurDawn natifmémoiremachine de 20 Go+5 suites184/202

Mélange d’experts : ~3 B de ses 19 B de paramètres travaillent par token. Spécialiste du code, 50 % des experts élagués.

coder · default
Qwen 3 4B2,53 Go
formatBRIK int4moteurDawn natif5 suites146/202

Répond directement ; réflexion à la demande avec /think deep.

super-coder · ssm
Qwen 3.5 4B Super Coder2,61 Go
formatGGUF Q4_0moteurDawn natif5 suites145/202

Hybride Gated DeltaNet + attention ; réfléchit toujours avant de répondre, d’où la lenteur.

Tout .gguf mono-fichier ou .brik fonctionne aussi, par URL ou chemin local (servi au moteur par plages HTTP, jamais chargé entier en RAM) :

brimkern --model=./models/custom.brik "Explain this code"

Options

-m, --model=<coder|coder-max|super-coder|url|path>string
Modèle à exécuter. Défaut : coder (Qwen 3 4B).
--mode=<code|plan|review|auto>string
Manière d’intervenir de l’assistant. Défaut : code.
--think=<off|auto|deep>string
Raisonnement pas à pas. Défaut : auto (réponses directes ; deep l’active).
--lang=<en|fr>string
Langue de l’interface. Défaut : en (ou BRIMKERN_LANG).
-s, --system=<prompt>string
Remplace le prompt système par défaut (le contexte du projet n’est alors pas ajouté).
-n, --max-tokens=<n>number
Plafond de tokens générés. Défaut : 512.
-t, --temperature=<value>number
Température d’échantillonnage. Défaut : 0.3.
-q, --quietflag
Mode silencieux : émet uniquement le texte brut, sans bannières ni statistiques.
--jsonflag
Sortie JSON structurée avec nombre de tokens, vitesse en tok/s, durée et nom du modèle. Idéal pour sous-agents et scripts.
mcpcommand
Démarre le serveur stdio Model Context Protocol (MCP) pour Claude Desktop, Cursor, Windsurf ou Antigravity.
--rawflag
Seulement le texte du modèle sur stdout : ni en-tête, ni temps, ni couleurs.
--native · --chromiumflag
Force le moteur Dawn in-process, ou Chromium headless (utilisé automatiquement pour les GGUF).
chatcommand
Lance le REPL multi-tours.

Sous le capot

WGSL écrit à la main

Les compute shaders du moteur navigateur, compilés par le pilote WebGPU de la plateforme : Metal sur macOS, Vulkan sur Linux.

Dawn natif

Les modèles .brik tournent in-process via des bindings Node vers Google Dawn, sans lancer de navigateur.

Kernels auto-validés

Chaque kernel est comparé à une référence CPU au démarrage ; si un GPU se trompe, le moteur retombe sur un chemin portable.

Streamé une fois, en cache

Les poids arrivent par plages d’octets HTTP et restent sur le disque : le lancement suivant les relit en local.

Plus sur le moteur : comparaison mesurée avec WebLLM · le conteneur .brik.

Brimkern : moteur WebGPU open, conçu par Romain Khanoyan. IA locale, WebGPU, moteurs on-device.