Mon Gars is a privacy-first AI chat experience that runs fully in the browser using WebLLM. The multi-screen React UI (Home, Voix, Réglages, Raisonnement, Capacités) is optimized for WebGPU when available and gracefully falls back to WebGL/CPU on other browsers. A shared brain layer orchestrates conversation flow so the same services can power the Tauri desktop shell.
npm install
La configuration Vite démarre un serveur HTTPS (port 3000) pour activer WebGPU et les API de contexte sécurisé :
npm run dev
Ouvrez https://localhost:3000 et acceptez le certificat autosigné généré par Vite si besoin.
Les suites Vitest fonctionnent en environnement jsdom et mockent WebLLM/WebGPU :
npm test -- --watch=false
Générez les assets statiques optimisés et servez-les en local :
npm run build
npm run preview
Pour un hébergement statique (NGINX, CDN…), déployez simplement le contenu du dossier dist/ sans backend supplémentaire. Le bundle est découpé (vendor/react) pour de meilleurs caches longue durée.
Pour la coque desktop Tauri, générez d’abord les icônes à partir de leurs sources Base64 puis lancez la build empaquetée :
npm run tauri:prepare
cd src-tauri && cargo tauri build
Pour des instructions détaillées de packaging (static hosting et Tauri desktop), consultez ARCHITECTURE.md et DEPLOY.md.
Le dépôt inclut déjà un workflow GitHub Actions prêt à l’emploi: .github/workflows/static.yml.
main (ou lancez le workflow manuellement)./ ou /<repo>/).Vous pouvez déployer sans Actions directement depuis main avec un dossier docs/ :
npm run deploy:pages
Puis configurez Settings → Pages → Deploy from a branch, branche main dossier /docs.
Le script vérifie origin, l’état git et demande confirmation avant push vers gh-pages (utilisez -- --yes pour non-interactif, -- --no-push pour préparer sans push).
Alternative: publier dist/ vers gh-pages (npx gh-pages -d dist) puis choisir gh-pages / (root).
Détails complets dans DEPLOY.md.
index.tsx monte src/App.tsx qui encapsule le routeur à onglets et le ChatProvider.src/brain/MonGarsBrainService.ts gère l’état de conversation, applique le prompt système, séquence les appels WebLLM et expose un snapshot via useMonGarsBrain / ChatContext.src/services/WebLLMService.* (Web/Native) encapsulent l’initialisation @mlc-ai/web-llm, tandis que src/services/GpuService.* détectent WebGPU → WebGL → aucun.src/screens/ et src/components/ consomment uniquement le ChatContext pour l’historique, le statut de génération, le raisonnement et l’état vocal.src-tauri/tauri.conf.json empaquette le bundle Vite avec une CSP locale stricte, sans accès distant par défaut.Ce projet est fourni tel quel pour un usage de recherche et d’assistant local. Vérifiez les licences des dépendances dans package.json et adaptez la configuration à vos contraintes réglementaires.
TypeScript
85.6%
Python
8.6%
CSS
2.4%
JavaScript
1.8%
HTML
1.4%
Mon Gars is a privacy-first AI chat experience that runs fully in the browser using WebLLM. The multi-screen React UI (Home, Voix, Réglages, Raisonnement, Capacités) is optimized for WebGPU when available and gracefully falls back to WebGL/CPU on other browsers. A shared brain layer orchestrates conversation flow so the same services can power the Tauri desktop shell.
npm install
La configuration Vite démarre un serveur HTTPS (port 3000) pour activer WebGPU et les API de contexte sécurisé :
npm run dev
Ouvrez https://localhost:3000 et acceptez le certificat autosigné généré par Vite si besoin.
Les suites Vitest fonctionnent en environnement jsdom et mockent WebLLM/WebGPU :
npm test -- --watch=false
Générez les assets statiques optimisés et servez-les en local :
npm run build
npm run preview
Pour un hébergement statique (NGINX, CDN…), déployez simplement le contenu du dossier dist/ sans backend supplémentaire. Le bundle est découpé (vendor/react) pour de meilleurs caches longue durée.
Pour la coque desktop Tauri, générez d’abord les icônes à partir de leurs sources Base64 puis lancez la build empaquetée :
npm run tauri:prepare
cd src-tauri && cargo tauri build
Pour des instructions détaillées de packaging (static hosting et Tauri desktop), consultez ARCHITECTURE.md et DEPLOY.md.
Le dépôt inclut déjà un workflow GitHub Actions prêt à l’emploi: .github/workflows/static.yml.
main (ou lancez le workflow manuellement)./ ou /<repo>/).Vous pouvez déployer sans Actions directement depuis main avec un dossier docs/ :
npm run deploy:pages
Puis configurez Settings → Pages → Deploy from a branch, branche main dossier /docs.
Le script vérifie origin, l’état git et demande confirmation avant push vers gh-pages (utilisez -- --yes pour non-interactif, -- --no-push pour préparer sans push).
Alternative: publier dist/ vers gh-pages (npx gh-pages -d dist) puis choisir gh-pages / (root).
Détails complets dans DEPLOY.md.
index.tsx monte src/App.tsx qui encapsule le routeur à onglets et le ChatProvider.src/brain/MonGarsBrainService.ts gère l’état de conversation, applique le prompt système, séquence les appels WebLLM et expose un snapshot via useMonGarsBrain / ChatContext.src/services/WebLLMService.* (Web/Native) encapsulent l’initialisation @mlc-ai/web-llm, tandis que src/services/GpuService.* détectent WebGPU → WebGL → aucun.src/screens/ et src/components/ consomment uniquement le ChatContext pour l’historique, le statut de génération, le raisonnement et l’état vocal.src-tauri/tauri.conf.json empaquette le bundle Vite avec une CSP locale stricte, sans accès distant par défaut.Ce projet est fourni tel quel pour un usage de recherche et d’assistant local. Vérifiez les licences des dépendances dans package.json et adaptez la configuration à vos contraintes réglementaires.
TypeScript
85.6%
Python
8.6%
CSS
2.4%
JavaScript
1.8%
HTML
1.4%