<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    
    <title>Angelo Lima - Dev Web &amp; IA</title>
    
    
    <description>Feed RSS angelo-lima.fr</description>
    
    <link>https://angelo-lima.fr/</link>
    <atom:link href="https://angelo-lima.fr/feed.xml" rel="self" type="application/rss+xml" />
    <language>fr-FR</language>
    <managingEditor>angelomiguellima@gmail.com (Angélo LIMA)</managingEditor>
    <webMaster>angelomiguellima@gmail.com (Angélo LIMA)</webMaster>
    <lastBuildDate>Thu, 11 Jun 2026 10:57:00 +0200</lastBuildDate>
    <generator>Jekyll v4.3.4</generator>
    <image>
      <url>https://angelo-lima.fr/assets/img/avatar-icon.png</url>
      <title>Angelo Lima - Dev Web &amp; IA</title>
      <link>https://angelo-lima.fr/</link>
    </image>
    
    
    
      <item>
        <title>Le second cerveau selon Karpathy : un wiki que l&apos;IA écrit à votre place</title>
        <description>
          
            Le concept de LLM wiki d&apos;Andrej Karpathy expliqué et mis en pratique avec Obsidian et Claude Code. Compilation plutôt que résumé, zéro RAG, et comment l&apos;implémenter vous-même avec trois dossiers et quatre commandes.
          
        </description>
        <content:encoded><![CDATA[<p>On a tous une version dégradée du même rêve : un endroit unique où vivrait tout ce qu’on a lu, écouté, appris. Un cerveau de secours. En pratique, on accumule des notes Notion abandonnées, des marque-pages qu’on ne rouvre jamais, des PDF surlignés qui dorment dans un dossier <code class="language-plaintext highlighter-rouge">Téléchargements</code>. Le problème n’a jamais été de <strong>collecter</strong> l’information. C’est de l’<strong>organiser</strong> : c’est précisément là que l’effort humain s’effondre.</p>

<p>Début 2026, Andrej Karpathy (cofondateur d’OpenAI, ex-directeur IA de Tesla) a partagé sur X une idée simple et redoutablement efficace pour résoudre ce problème : et si on arrêtait d’écrire la base de connaissances soi-même, pour la laisser <strong>entièrement</strong> à un LLM ?</p>

<p>C’est ce qu’il appelle le <strong>LLM wiki</strong>, ou <em>second cerveau</em>. Cet article décortique le concept, explique pourquoi il enterre l’approche RAG pour un usage personnel, et montre comment l’implémenter avec Obsidian et Claude Code.</p>

<hr />

<h2 id="lidée-de-karpathy--compiler-pas-résumer">L’idée de Karpathy : compiler, pas résumer</h2>

<p>La phrase qui résume tout, c’est la sienne :</p>

<blockquote>
  <p><em>“You rarely ever write or edit the wiki manually, it’s the domain of the LLM.”</em>
<em>(Vous n’écrivez ou ne modifiez quasiment jamais le wiki à la main, c’est le domaine du LLM.)</em></p>
</blockquote>

<p>Le retournement est total. Dans la vision classique du « second cerveau » (celle popularisée par Tiago Forte et sa méthode <a href="https://fortelabs.com/blog/para/">PARA</a>), <strong>c’est vous</strong> qui prenez les notes, qui les rangez, qui les reliez. L’IA n’intervient qu’à la fin, pour répondre à des questions sur un corpus que vous avez patiemment construit.</p>

<p>Karpathy inverse la chaîne. Vous ne faites plus qu’une chose : <strong>collecter de la matière brute</strong>. Des articles, des papiers de recherche, des notes de lecture, des transcriptions de podcasts, des bouts de conversation : tout ce qui vous traverse. Vous jetez ça dans un dossier, et vous dites au LLM : <em>« compile »</em>.</p>

<h3 id="compilation--résumé">Compilation ≠ résumé</h3>

<p>C’est la distinction centrale, et elle est plus subtile qu’elle n’en a l’air.</p>

<p>Un <strong>résumé</strong> compresse : il jette du détail pour produire une version plus courte. Vous perdez de l’information à chaque passage.</p>

<p>Une <strong>compilation</strong>, au sens de Karpathy, <em>restructure</em> sans appauvrir. Le LLM lit chaque source, en extrait les concepts, les personnes, les idées clés, puis les réécrit dans un format homogène : des articles façon encyclopédie, reliés entre eux par des backlinks, dédupliqués, et débarrassés des contradictions entre sources. Le détail est préservé : c’est la <strong>forme</strong> qui devient cohérente.</p>

<p>La métaphore du compilateur est volontaire. De même qu’un compilateur transforme du code source hétérogène en un binaire structuré et exécutable, le LLM transforme un fouillis de sources en une ontologie navigable.</p>

<h3 id="ce-que-ça-donne-à-léchelle">Ce que ça donne à l’échelle</h3>

<p>Karpathy avance un chiffre : sur un seul de ses sujets de recherche, son wiki avait atteint <strong>~100 articles et 400 000 mots</strong> (plus long que la plupart des thèses de doctorat) <strong>sans qu’il en écrive une seule ligne directement</strong>. Le LLM rédige, relie, catégorise, et vérifie la cohérence. L’humain ne fait qu’alimenter et interroger.</p>

<p>Sa propre conclusion, lâchée sur X : <em>« I think there is room here for an incredible new product. »</em></p>

<p>Ce qu’il ne dit pas explicitement, mais qui découle directement du raisonnement : si le wiki compilé est un artefact propre et lisible, pourquoi aurait-on besoin d’une infrastructure de retrieval pour l’interroger ? La question mène directement au sujet qui fâche.</p>

<hr />

<h2 id="pourquoi-ça-enterre-le-rag-pour-un-usage-personnel">Pourquoi ça enterre le RAG (pour un usage personnel)</h2>

<p>Voilà le point qui fait tiquer tous ceux qui ont déjà bricolé un assistant documentaire. Depuis trois ans, la réponse par défaut à « je veux interroger mes documents » s’appelle <strong>RAG</strong> (<em>Retrieval-Augmented Generation</em>) : on découpe les documents en morceaux, on les transforme en vecteurs, on les stocke dans une base vectorielle, et à chaque question on va rechercher les passages les plus proches pour les injecter dans le contexte.</p>

<p>Karpathy propose de <strong>tout jeter</strong>. Pas de base vectorielle. Pas de pipeline d’embeddings. Pas d’infrastructure de retrieval. Juste des fichiers markdown, un LLM à grande fenêtre de contexte, et c’est tout.</p>

<p>L’argument est solide une fois qu’on le pose à plat :</p>

<table>
  <thead>
    <tr>
      <th> </th>
      <th>RAG classique</th>
      <th>LLM wiki (Karpathy)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Donnée stockée</strong></td>
      <td>Chunks bruts + métadonnées + vecteurs</td>
      <td>Markdown condensé et réécrit</td>
    </tr>
    <tr>
      <td><strong>Quand le travail est fait</strong></td>
      <td>À <strong>chaque</strong> requête (recherche vectorielle)</td>
      <td><strong>Une fois</strong>, à la compilation</td>
    </tr>
    <tr>
      <td><strong>Déduplication / contradictions</strong></td>
      <td>Jamais résolues, ré-injectées à chaque fois</td>
      <td>Résolues à l’écriture du wiki</td>
    </tr>
    <tr>
      <td><strong>Infrastructure</strong></td>
      <td>Base vectorielle, embeddings, retriever</td>
      <td>Un dossier de fichiers <code class="language-plaintext highlighter-rouge">.md</code></td>
    </tr>
    <tr>
      <td><strong>Lisible par un humain</strong></td>
      <td>Non (vecteurs opaques)</td>
      <td>Oui (c’est juste du texte)</td>
    </tr>
    <tr>
      <td><strong>État entre sessions</strong></td>
      <td>Stateless</td>
      <td>Persistant et versionnable (git)</td>
    </tr>
  </tbody>
</table>

<p>L’intuition profonde : le RAG fait le <strong>même travail de tri à chaque question</strong>, sur de la donnée brute jamais nettoyée. Le LLM wiki fait ce travail <strong>une seule fois</strong>, au moment de la compilation, et produit un artefact propre, condensé, qui tient dans la fenêtre de contexte des modèles longs modernes. Pour une base de connaissances à l’échelle personnelle (quelques centaines d’articles), le RAG devient une usine à gaz dont on n’a tout simplement plus besoin.</p>

<blockquote>
  <p>⚠️ <strong>Nuance importante</strong> : ce raisonnement vaut pour un usage <em>personnel</em>. À l’échelle entreprise (des millions de documents, du contrôle d’accès granulaire, des contraintes de fraîcheur en temps réel), le RAG garde toute sa pertinence. Le LLM wiki n’est pas une religion, c’est le bon outil pour la bonne échelle.</p>
</blockquote>

<p>Le concept est posé. Reste la question qui dérange toujours : si c’est si simple, pourquoi est-ce que personne ne l’a empaqueté proprement ? Karpathy lui-même tourne sur des scripts maison. Voici comment remplacer ces scripts par quelque chose de plus solide.</p>

<hr />

<h2 id="de-lidée-au-système--obsidian--claude-code">De l’idée au système : Obsidian + Claude Code</h2>

<p>L’idée de Karpathy est un <em>pattern</em>, pas un produit. Lui-même reconnaît tourner avec des <em>« scripts Python un peu hacky »</em> pour orchestrer le LLM, plus Obsidian comme couche de visualisation. La bonne nouvelle : avec Claude Code, on n’a pas besoin de scripts. Les slash commands personnalisées suffisent à tout orchestrer depuis le terminal, directement dans le dossier du wiki.</p>

<h3 id="larchitecture-en-trois-couches">L’architecture en trois couches</h3>

<p>Tout le système repose sur une séparation nette entre la matière brute, le savoir compilé et les règles du jeu :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mon-second-cerveau/
├── raw/              ← vous déposez ici vos sources brutes
├── wiki/             ← le LLM écrit ici les articles compilés
│   └── index.md      ← sommaire auto-généré de tout le wiki
├── log.md            ← historique des opérations
├── CLAUDE.md         ← le "schéma" : règles d'organisation du cerveau
└── .claude/
    └── commands/     ← les slash commands personnalisées
        ├── ingest.md
        ├── lint.md
        ├── query.md
        └── save.md
</code></pre></div></div>

<ul>
  <li>Le dossier <strong><code class="language-plaintext highlighter-rouge">raw/</code></strong> est votre boîte de dépôt. Vous y jetez tout, sans organisation.</li>
  <li>Le dossier <strong><code class="language-plaintext highlighter-rouge">wiki/</code></strong> est la sortie du LLM : des articles encyclopédiques reliés entre eux, plus un <code class="language-plaintext highlighter-rouge">index.md</code> qui résume l’ensemble d’un coup d’œil.</li>
  <li>Le fichier <strong><code class="language-plaintext highlighter-rouge">CLAUDE.md</code></strong> joue le rôle de schéma. Il décrit comment le cerveau doit être structuré : conventions de nommage, format des pages, règles de liaison. C’est le contrat que l’agent suit.</li>
  <li><strong>Obsidian</strong> vient se brancher par-dessus le dossier <code class="language-plaintext highlighter-rouge">wiki/</code> : il transforme les backlinks markdown en un graphe de connaissances navigable visuellement.</li>
</ul>

<p>Les quatre slash commands (<code class="language-plaintext highlighter-rouge">/ingest</code>, <code class="language-plaintext highlighter-rouge">/lint</code>, <code class="language-plaintext highlighter-rouge">/query</code>, <code class="language-plaintext highlighter-rouge">/save</code>) orchestrent tout le système. Comment les créer et ce qu’elles contiennent exactement : c’est l’objet du tutoriel ci-dessous.</p>

<hr />

<h2 id="le-rythme-réel--une-semaine-avec-ce-système">Le rythme réel : une semaine avec ce système</h2>

<p>La vraie différence avec n’importe quel autre outil de notes, c’est que <strong>vous arrêtez de penser à l’organisation en temps réel</strong>. L’effort mental de « où est-ce que je range ça ? » disparaît complètement. Ce n’est pas anodin : c’est précisément cet effort qui fait qu’on abandonne tous les systèmes de notes au bout de trois semaines.</p>

<p>En pratique, le rythme s’installe naturellement en deux temps.</p>

<p><strong>En continu</strong> : vous collectez sans filtrer. Un article intéressant → copié dans <code class="language-plaintext highlighter-rouge">raw/</code>. Une transcription de conférence → déposée dans <code class="language-plaintext highlighter-rouge">raw/</code>. Des notes griffonnées après une réunion → dans <code class="language-plaintext highlighter-rouge">raw/</code>. Le dossier est un bac à sable, pas une bibliothèque. Rien n’a besoin d’être propre pour y atterrir.</p>

<p><a href="https://obsidian.md/clipper">Obsidian Clipper</a>, l’extension navigateur officielle d’Obsidian, simplifie ce geste au maximum. En un clic depuis Chrome ou Firefox, elle convertit n’importe quelle page web en <code class="language-plaintext highlighter-rouge">.md</code> formaté et l’enregistre directement dans <code class="language-plaintext highlighter-rouge">raw/</code>. L’article que vous lisez en ligne atterrit dans la boîte de dépôt sans copier-coller ni reformatage.</p>

<p><strong>En batch</strong> : une fois par semaine (ou quand le dossier <code class="language-plaintext highlighter-rouge">raw/</code> commence à peser), vous lancez <code class="language-plaintext highlighter-rouge">/ingest</code>. Ce qui prenait une heure de rangement manuel (lire, catégoriser, relier, déduper) se passe sans vous. Vous relisez le résultat, vous corrigez ce qui cloche, et c’est fait. <code class="language-plaintext highlighter-rouge">/lint</code> tourne en parallèle quand le wiki a grossi : il vous rend un rapport des incohérences, vous les arbitrez en cinq minutes.</p>

<p>Ce que ça change dans la durée : au bout de quelques mois, vous avez un corpus dense qui répond à vos questions avec vos propres sources. <code class="language-plaintext highlighter-rouge">/query</code> ne cherche pas dans des vecteurs : il raisonne sur du texte que <em>vous</em> avez collecté, compilé dans <em>votre</em> ontologie. La différence avec un ChatGPT généraliste est réelle et se sent.</p>

<p>Le tout est versionnable avec git. Votre second cerveau devient un dépôt : auditable, diffable, restaurable. Loin du trou noir qu’est un espace Notion.</p>

<hr />

<h2 id="où-ça-coince-vraiment">Où ça coince vraiment</h2>

<p>Ça tient sur le papier. Mais quelques mois avec ce système font apparaître des frictions que les commandes ne documentent pas.</p>

<p><strong>Ce qui est vraiment fort :</strong></p>
<ul>
  <li><strong>L’effort d’organisation tombe à zéro.</strong> C’est <em>le</em> point. Le frein historique de tout système de notes (le rangement) disparaît.</li>
  <li><strong>Format ouvert, zéro lock-in.</strong> Du markdown, des dossiers, du git. Pas de SaaS qui ferme boutique avec vos données dedans.</li>
  <li><strong>Lisible et auditable.</strong> Contrairement à une base vectorielle, vous pouvez <em>lire</em> votre cerveau. Vous voyez ce que le LLM a écrit, et le corriger si besoin.</li>
  <li><strong>Le coût computationnel est payé une fois</strong>, à la compilation, pas à chaque requête.</li>
</ul>

<p><strong>Les limites, qu’il faut regarder en face :</strong></p>
<ul>
  <li><strong>Vous déléguez la rédaction à un LLM.</strong> Qui dit LLM dit risque d’hallucination ou de reformulation maladroite. La passe <code class="language-plaintext highlighter-rouge">/lint</code> aide, mais ne remplace pas une relecture critique. (J’en ai parlé plus en détail dans mon article sur <a href="/fr/hallucinations-llm-devoxx-2026/">les hallucinations des LLM</a>.)</li>
  <li><strong>Ça tient grâce à la fenêtre de contexte.</strong> Le modèle élégant « tout le wiki tient dans le contexte » s’effrite quand le cerveau dépasse une certaine taille. À très grande échelle, on revient vers des stratégies de retrieval, et le RAG reprend du sens.</li>
  <li><strong>La discipline reste nécessaire.</strong> Pas pour organiser, mais pour <em>alimenter</em> régulièrement et <em>linter</em>. Un cerveau qu’on ne nourrit plus reste un cerveau mort.</li>
  <li><strong>Le reality check entreprise.</strong> Contrôle d’accès, conformité, fraîcheur temps réel, volumétrie massive : à ce niveau, le LLM wiki seul ne suffit pas. C’est un outil d’usage personnel et d’équipe restreinte, pas une plateforme de knowledge management d’entreprise.</li>
</ul>

<p>Et une fois ce périmètre accepté, ce qui m’intéresse davantage que l’outil lui-même, c’est ce que ce pattern révèle sur la façon dont on travaille avec l’IA.</p>

<hr />

<h2 id="ce-que-ça-révèle-sur-le-travail-augmenté">Ce que ça révèle sur le travail augmenté</h2>

<p>Ce qui me frappe, c’est que ce pattern n’est pas isolé. C’est la même idée que celle que je creusais dans mon article sur <a href="/fr/sdd-compound-engineering-bmad-philosophies-ia/">les philosophies de travail avec l’IA</a> : <strong>capitaliser sur l’accumulation</strong>.</p>

<p>Le <em>compound engineering</em> dit que chaque cycle de développement doit enrichir le suivant, via une boucle d’apprentissage documentée. Le LLM wiki de Karpathy dit exactement la même chose, mais pour la connaissance personnelle : chaque source ingérée, chaque réponse sauvegardée rend le cerveau plus dense, et donc la prochaine requête plus riche. C’est une boucle vertueuse où l’IA ne fait pas que <em>consommer</em> votre savoir, elle le <em>construit</em>.</p>

<p>Il y a aussi un écho à l’<a href="/fr/entropie-homme-machine/">entropie</a> dont je parlais ailleurs. Un système de notes laissé à lui-même dérive vers le désordre. C’est la pente naturelle. Ce qu’apporte le LLM wiki, c’est une dépense d’énergie <em>déléguée</em> : c’est le LLM qui lutte contre l’entropie de votre information, qui range, déduplique, relie. Vous ne payez plus le coût de l’ordre. Vous le sous-traitez.</p>

<p>Karpathy a peut-être raison : <em>there is room for an incredible new product</em>. Mais en attendant ce produit, le combo Obsidian + Claude Code permet de toucher l’idée dès maintenant, avec trois dossiers et quatre commandes.</p>

<hr />

<h2 id="tutorial--créer-et-utiliser-le-cerveau">Tutorial : créer et utiliser le cerveau</h2>

<p>On ne crée pas ces fichiers à la main : on donne à Claude Code le texte source de Karpathy et un court prompt de délégation. L’outil qui fera tourner le cerveau en construit aussi les fondations.</p>

<p><strong>Prérequis</strong> : <a href="/fr/claude-code-installation-premiers-pas/">Claude Code</a> installé, un dossier vide.</p>

<p><strong>1. Créez le dossier et ouvrez Claude Code dedans :</strong></p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mkdir </span>mon-second-cerveau <span class="o">&amp;&amp;</span> <span class="nb">cd </span>mon-second-cerveau
claude
</code></pre></div></div>

<p><strong>2. Copiez le gist original de Karpathy</strong></p>

<p>Allez sur le gist qu’il a publié en avril 2026 et copiez le contenu intégral :</p>

<p>👉 <strong><a href="https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f">gist.github.com/karpathy/442a6bf555914893e9891c11519de94f</a></strong></p>

<p>Ce texte décrit le pattern complet : structure raw/wiki/schema, les workflows ingest/lint/query, le rôle du log et de l’index. C’est le contrat conceptuel que Claude va implémenter.</p>

<p><strong>3. Collez le gist dans Claude Code, suivi de ce prompt de délégation :</strong></p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Sur la base du concept décrit ci-dessus, initialise un second cerveau
dans le dossier courant.

Crée :
- raw/ (vide, pour les sources brutes)
- wiki/ avec un index.md vide
- log.md vide
- CLAUDE.md qui capture ce contrat comme règles pour l'agent
- .claude/commands/ avec les quatre commandes /ingest, /lint, /query
  et /save, dont le contenu implémente fidèlement le concept décrit

Confirme la création de chaque fichier.
</code></pre></div></div>

<p>Claude Code lit le concept de Karpathy, comprend la structure attendue, et crée les fichiers. Voici ce qu’il génère :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mon-second-cerveau/
├── raw/
├── wiki/
│   └── index.md
├── log.md
├── CLAUDE.md
└── .claude/commands/
    ├── ingest.md
    ├── lint.md
    ├── query.md
    └── save.md
</code></pre></div></div>

<p><strong><code class="language-plaintext highlighter-rouge">.claude/commands/ingest.md</code></strong> (la compilation) :</p>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Lis tous les fichiers présents dans le dossier <span class="sb">`raw/`</span> (ignore <span class="sb">`raw/processed/`</span>).

Pour chaque source :
<span class="p">1.</span> Identifie les concepts, personnes, outils et idées clés
<span class="p">2.</span> Pour chaque élément significatif : crée ou enrichis la page correspondante dans <span class="sb">`wiki/`</span>
<span class="p">3.</span> Tisse les backlinks [[NomDePage]] entre pages liées
<span class="p">4.</span> Si deux sources se contredisent, note la contradiction dans l'article concerné
<span class="p">5.</span> Déplace les fichiers traités dans <span class="sb">`raw/processed/`</span>

Une fois toutes les sources traitées :
<span class="p">-</span> Mets à jour <span class="sb">`wiki/index.md`</span> avec les nouvelles pages et les pages modifiées
<span class="p">-</span> Ajoute une entrée dans <span class="sb">`log.md`</span> : date, nombre de fichiers ingérés, pages créées/modifiées
</code></pre></div></div>

<p><strong><code class="language-plaintext highlighter-rouge">.claude/commands/lint.md</code></strong> (le contrôle santé) :</p>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Passe en revue l'intégralité du dossier <span class="sb">`wiki/`</span> et produis un rapport structuré.

Vérifie :
<span class="p">1.</span> <span class="gs">**Contradictions**</span> : passages qui se contredisent entre deux articles différents
<span class="p">2.</span> <span class="gs">**Pages orphelines**</span> : articles sans aucun backlink entrant depuis une autre page
<span class="p">3.</span> <span class="gs">**Liens cassés**</span> : backlinks [[NomDePage]] qui pointent vers une page inexistante
<span class="p">4.</span> <span class="gs">**Index périmé**</span> : entrées dans <span class="sb">`index.md`</span> manquantes ou pointant vers des pages supprimées
<span class="p">5.</span> <span class="gs">**Concepts sans page**</span> : termes récurrents dans plusieurs articles qui mériteraient leur propre page

Pour chaque problème : indique le fichier concerné, décris le problème, propose une correction.
Demande confirmation avant d'appliquer les corrections.
</code></pre></div></div>

<p><strong><code class="language-plaintext highlighter-rouge">.claude/commands/query.md</code></strong> (l’interrogation) :</p>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ARGUMENTS

Réponds à la question ci-dessus en t'appuyant sur le contenu du dossier <span class="sb">`wiki/`</span>.
Cite les pages sources entre parenthèses pour chaque information.
Si la réponse n'est pas dans le wiki, dis-le clairement : ne complète pas avec tes
connaissances générales sans le signaler explicitement.
</code></pre></div></div>

<p><strong><code class="language-plaintext highlighter-rouge">.claude/commands/save.md</code></strong> (la capitalisation) :</p>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ARGUMENTS

Transforme le contenu ci-dessus en une nouvelle page du wiki :
<span class="p">1.</span> Détermine un titre court et précis
<span class="p">2.</span> Écris la page au format encyclopédique (H1, résumé, sections, backlinks [[]])
<span class="p">3.</span> Crée le fichier dans <span class="sb">`wiki/`</span> avec les backlinks vers les pages existantes pertinentes
<span class="p">4.</span> Mets à jour <span class="sb">`wiki/index.md`</span>
<span class="p">5.</span> Ajoute une entrée dans <span class="sb">`log.md`</span>
</code></pre></div></div>

<p>Le <code class="language-plaintext highlighter-rouge">$ARGUMENTS</code> dans <code class="language-plaintext highlighter-rouge">query.md</code> et <code class="language-plaintext highlighter-rouge">save.md</code> capture ce que vous tapez après la commande. <code class="language-plaintext highlighter-rouge">/query pourquoi le RAG ne scale pas pour un usage perso ?</code> injecte la question dans le prompt. La séparation <code class="language-plaintext highlighter-rouge">/ingest</code> / <code class="language-plaintext highlighter-rouge">/lint</code> est délibérée : l’un fait grossir le cerveau, l’autre le maintient en bonne santé.</p>

<p><strong>4. Ouvrez <code class="language-plaintext highlighter-rouge">wiki/</code> comme vault dans <a href="https://obsidian.md/">Obsidian</a>.</strong></p>

<p><strong>5. Déposez un fichier dans <code class="language-plaintext highlighter-rouge">raw/</code> et lancez <code class="language-plaintext highlighter-rouge">/ingest</code>.</strong></p>

<h2 id="le-plus-dur-ne-sera-pas-technique-ce-sera-de-résister-à-lenvie-de-tout-réorganiser-à-la-main-cest-précisément-ce-que-karpathy-vous-demande-darrêter-de-faire">Le plus dur ne sera pas technique. Ce sera de résister à l’envie de tout réorganiser à la main. C’est précisément ce que Karpathy vous demande d’arrêter de faire.</h2>

<p><em>Cet article prolonge mes réflexions sur le travail augmenté par l’IA. Voir aussi ma <a href="/fr/claude-code-installation-premiers-pas/">série sur Claude Code</a> et mon article sur <a href="/fr/entropie-homme-machine/">l’entropie homme-machine</a>.</em></p>

<h3 id="sources-et-lectures-complémentaires">Sources et lectures complémentaires</h3>

<ul>
  <li><a href="https://techstrong.ai/features/karpathys-instructions-for-building-an-ai-driven-second-brain/">Karpathy’s Instructions for Building an AI-Driven Second Brain — Techstrong.ai</a></li>
  <li><a href="https://venturebeat.com/data/karpathy-shares-llm-knowledge-base-architecture-that-bypasses-rag-with-an">Karpathy shares ‘LLM Knowledge Base’ architecture that bypasses RAG — VentureBeat</a></li>
  <li><a href="https://www.mindstudio.ai/blog/andrej-karpathy-llm-wiki-knowledge-base-claude-code">What Is Andrej Karpathy’s LLM Wiki? — MindStudio</a></li>
  <li><a href="https://aimaker.substack.com/p/llm-wiki-obsidian-knowledge-base-andrej-karphaty">How I Took Karpathy’s LLM Wiki and Built an AI-Powered Second Brain in Obsidian — AI Maker</a></li>
  <li><a href="https://fortelabs.com/blog/para/">Building a Second Brain — Tiago Forte (méthode PARA)</a></li>
</ul>
]]></content:encoded>
        <pubDate>Wed, 10 Jun 2026 00:00:00 +0200</pubDate>
        <link>https://angelo-lima.fr/fr/second-cerveau-obsidian-claude-karpathy/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/fr/second-cerveau-obsidian-claude-karpathy/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Claude Code</category>
          
          <category>Développement</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/second-cerveau-obsidian.png" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>Karpathy&apos;s Second Brain: A Wiki the AI Writes For You</title>
        <description>
          
            Andrej Karpathy&apos;s LLM wiki concept, explained and put into practice with Obsidian and Claude Code. Compilation over summarization, zero RAG, and how to implement it yourself with three folders and four commands.
          
        </description>
        <content:encoded><![CDATA[<p>We all run a degraded version of the same dream: one single place that would hold everything we’ve ever read, watched, or learned. A backup brain. In practice, we pile up abandoned Notion pages, bookmarks we never reopen, highlighted PDFs rotting in a <code class="language-plaintext highlighter-rouge">Downloads</code> folder. The problem was never <strong>collecting</strong> information. It’s <strong>organizing</strong> it. That’s exactly where human effort collapses.</p>

<p>In early 2026, Andrej Karpathy (OpenAI co-founder, former Tesla AI director) shared a deceptively simple idea on X to solve this: what if we stopped writing the knowledge base ourselves, and handed it <strong>entirely</strong> to an LLM?</p>

<p>He calls it the <strong>LLM wiki</strong>, or <em>second brain</em>. This article breaks the concept down, explains why it buries RAG for personal use, and shows how to implement it with Obsidian and Claude Code.</p>

<hr />

<h2 id="karpathys-idea-compile-dont-summarize">Karpathy’s idea: compile, don’t summarize</h2>

<p>The sentence that captures it all is his own:</p>

<blockquote>
  <p><em>“You rarely ever write or edit the wiki manually, it’s the domain of the LLM.”</em></p>
</blockquote>

<p>The reversal is total. In the classic “second brain” vision (the one popularized by Tiago Forte and his <a href="https://fortelabs.com/blog/para/">PARA</a> method), <strong>you</strong> take the notes, file them, link them. The AI only steps in at the end, to answer questions about a corpus you patiently built.</p>

<p>Karpathy flips the chain. You now do exactly one thing: <strong>collect raw material</strong>. Articles, research papers, reading notes, podcast transcripts, snippets of conversation: anything that crosses your path. You dump it in a folder, and tell the LLM: <em>“compile.”</em></p>

<h3 id="compilation--summarization">Compilation ≠ summarization</h3>

<p>This is the central distinction, and it’s more subtle than it sounds.</p>

<p>A <strong>summary</strong> compresses: it throws away detail to produce a shorter version. You lose information on every pass.</p>

<p>A <strong>compilation</strong>, in Karpathy’s sense, <em>restructures</em> without impoverishing. The LLM reads each source, extracts the concepts, the people, the key ideas, then rewrites them into a consistent format: encyclopedia-style articles, linked by backlinks, deduplicated, and stripped of contradictions between sources. The detail is preserved; it’s the <strong>form</strong> that becomes coherent.</p>

<p>The compiler metaphor is deliberate. Just as a compiler turns heterogeneous source code into a structured, executable binary, the LLM turns a mess of sources into a navigable ontology.</p>

<h3 id="what-it-looks-like-at-scale">What it looks like at scale</h3>

<p>Karpathy puts a number on it: on a single research topic, his wiki reached <strong>~100 articles and 400,000 words</strong> (longer than most PhD dissertations) <strong>without him writing a single line directly</strong>. The LLM does the writing, the linking, the categorizing, and the consistency checking. The human only feeds and queries.</p>

<p>His own conclusion, dropped on X: <em>“I think there is room here for an incredible new product.”</em></p>

<p>What he doesn’t say explicitly, but what follows directly from the reasoning: if the compiled wiki is a clean, readable artifact, why would you need retrieval infrastructure to query it? That question leads straight to the uncomfortable comparison.</p>

<hr />

<h2 id="why-it-buries-rag-for-personal-use">Why it buries RAG (for personal use)</h2>

<p>Here’s the part that makes anyone who’s ever hacked together a document assistant raise an eyebrow. For three years, the default answer to “I want to query my documents” has been <strong>RAG</strong> (<em>Retrieval-Augmented Generation</em>): chunk the documents, turn them into vectors, store them in a vector database, and on every question retrieve the closest passages to inject into context.</p>

<p>Karpathy proposes to <strong>throw all of it out</strong>. No vector database. No embedding pipeline. No retrieval infrastructure. Just markdown files, an LLM with a large context window, and that’s it.</p>

<p>The argument holds up once you lay it flat:</p>

<table>
  <thead>
    <tr>
      <th> </th>
      <th>Classic RAG</th>
      <th>LLM wiki (Karpathy)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Stored data</strong></td>
      <td>Raw chunks + metadata + vectors</td>
      <td>Condensed, rewritten markdown</td>
    </tr>
    <tr>
      <td><strong>When the work is done</strong></td>
      <td>On <strong>every</strong> query (vector search)</td>
      <td><strong>Once</strong>, at compile time</td>
    </tr>
    <tr>
      <td><strong>Dedup / contradictions</strong></td>
      <td>Never resolved, re-injected each time</td>
      <td>Resolved when the wiki is written</td>
    </tr>
    <tr>
      <td><strong>Infrastructure</strong></td>
      <td>Vector DB, embeddings, retriever</td>
      <td>A folder of <code class="language-plaintext highlighter-rouge">.md</code> files</td>
    </tr>
    <tr>
      <td><strong>Human-readable</strong></td>
      <td>No (opaque vectors)</td>
      <td>Yes (it’s just text)</td>
    </tr>
    <tr>
      <td><strong>State between sessions</strong></td>
      <td>Stateless</td>
      <td>Persistent and versionable (git)</td>
    </tr>
  </tbody>
</table>

<p>The deep intuition: RAG does the <strong>same sorting work on every question</strong>, over raw data that’s never cleaned. The LLM wiki does that work <strong>once</strong>, at compile time, and produces a clean, condensed artifact that fits inside the context window of modern long-context models. For a personal-scale knowledge base (a few hundred articles), RAG becomes an over-engineered machine you simply no longer need.</p>

<blockquote>
  <p>⚠️ <strong>Important caveat</strong>: this reasoning holds for <em>personal</em> use. At enterprise scale (millions of documents, granular access control, real-time freshness constraints), RAG keeps all its relevance. The LLM wiki isn’t a religion; it’s the right tool for the right scale.</p>
</blockquote>

<p>The concept is clear. What remains is the question that always follows: if it’s this simple, why hasn’t anyone packaged it properly? Karpathy himself runs on homemade scripts. Here’s how to replace those scripts with something more solid.</p>

<hr />

<h2 id="from-idea-to-system-obsidian--claude-code">From idea to system: Obsidian + Claude Code</h2>

<p>Karpathy’s idea is a <em>pattern</em>, not a product. He admits to running <em>“hacky Python scripts”</em> to orchestrate the LLM, plus Obsidian as a visualization layer. The good news: with Claude Code, no scripts needed. Custom slash commands handle all the orchestration from the terminal, directly inside the wiki folder.</p>

<h3 id="the-three-layer-architecture">The three-layer architecture</h3>

<p>The whole system rests on a clean split between raw material, compiled knowledge, and the rules of the game:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>my-second-brain/
├── raw/              ← you drop your raw sources here
├── wiki/             ← the LLM writes compiled articles here
│   └── index.md      ← auto-generated table of contents
├── log.md            ← operation history
├── CLAUDE.md         ← the "schema": brain organization rules
└── .claude/
    └── commands/     ← the custom slash commands
        ├── ingest.md
        ├── lint.md
        ├── query.md
        └── save.md
</code></pre></div></div>

<ul>
  <li>The <strong><code class="language-plaintext highlighter-rouge">raw/</code></strong> folder is your drop box. You throw everything in, no organization.</li>
  <li>The <strong><code class="language-plaintext highlighter-rouge">wiki/</code></strong> folder is the LLM’s output: encyclopedia-style articles linked together, plus an <code class="language-plaintext highlighter-rouge">index.md</code> that summarizes the whole thing at a glance.</li>
  <li>The <strong><code class="language-plaintext highlighter-rouge">CLAUDE.md</code></strong> file acts as the schema. It describes how the brain should be structured: naming conventions, page format, linking rules. It’s the contract the agent follows.</li>
  <li><strong>Obsidian</strong> plugs in on top of the <code class="language-plaintext highlighter-rouge">wiki/</code> folder: it turns markdown backlinks into a visually navigable knowledge graph.</li>
</ul>

<p>The four slash commands (<code class="language-plaintext highlighter-rouge">/ingest</code>, <code class="language-plaintext highlighter-rouge">/lint</code>, <code class="language-plaintext highlighter-rouge">/query</code>, <code class="language-plaintext highlighter-rouge">/save</code>) orchestrate the whole system. What they contain exactly and how to create them: that’s what the tutorial below covers.</p>

<hr />

<h2 id="the-real-rhythm-a-week-with-this-system">The real rhythm: a week with this system</h2>

<p>The genuine difference from any other note-taking tool is that <strong>you stop thinking about organization in real time</strong>. The mental effort of “where do I file this?” disappears entirely. That’s not a small thing: it’s precisely that effort that makes us abandon every note system after three weeks.</p>

<p>In practice, the rhythm settles naturally into two modes.</p>

<p><strong>Continuously</strong>: you collect without filtering. An interesting article → copied to <code class="language-plaintext highlighter-rouge">raw/</code>. A conference transcript → dropped in <code class="language-plaintext highlighter-rouge">raw/</code>. Notes scribbled after a meeting → in <code class="language-plaintext highlighter-rouge">raw/</code>. The folder is a sandbox, not a library. Nothing needs to be clean to land there.</p>

<p><a href="https://obsidian.md/clipper">Obsidian Clipper</a>, Obsidian’s official browser extension, takes this a step further. One click from Chrome or Firefox converts any web page into a formatted <code class="language-plaintext highlighter-rouge">.md</code> file and saves it directly to your <code class="language-plaintext highlighter-rouge">raw/</code> folder. The article you’re reading online lands in the drop box with no copy-pasting, no reformatting.</p>

<p><strong>In batches</strong>: once a week (or when <code class="language-plaintext highlighter-rouge">raw/</code> starts to pile up), you run <code class="language-plaintext highlighter-rouge">/ingest</code>. What used to take an hour of manual filing (reading, categorizing, linking, deduplicating) happens without you. You review the output, fix what looks off, and you’re done. <code class="language-plaintext highlighter-rouge">/lint</code> runs alongside when the wiki has grown: it hands you a report of inconsistencies, you arbitrate in five minutes.</p>

<p>What changes over time: after a few months, you have a dense corpus that answers your questions using your own sources. <code class="language-plaintext highlighter-rouge">/query</code> doesn’t search vectors: it reasons over text that <em>you</em> collected, compiled into <em>your</em> ontology. The difference from a generic ChatGPT is real and tangible.</p>

<p>The whole thing is git-versionable. Your second brain becomes a repository: auditable, diffable, restorable. A far cry from the black hole that a Notion workspace becomes.</p>

<hr />

<h2 id="where-it-actually-breaks">Where it actually breaks</h2>

<p>It holds on paper. A few months of practice surface frictions the config files don’t show.</p>

<p><strong>What’s genuinely strong:</strong></p>
<ul>
  <li><strong>Organizing effort drops to zero.</strong> That’s <em>the</em> point. The historical drag on every note-taking system (filing) disappears.</li>
  <li><strong>Open format, zero lock-in.</strong> Markdown, folders, git. No SaaS that shuts down with your data inside.</li>
  <li><strong>Readable and auditable.</strong> Unlike a vector database, you can <em>read</em> your brain. You see what the LLM wrote, and fix it if needed.</li>
  <li><strong>Compute cost is paid once</strong>, at compile time, not on every query.</li>
</ul>

<p><strong>The limits, which you have to face head-on:</strong></p>
<ul>
  <li><strong>You delegate the writing to an LLM.</strong> Where there’s an LLM, there’s a risk of hallucination or clumsy rephrasing. The <code class="language-plaintext highlighter-rouge">/lint</code> pass helps, but it doesn’t replace a critical read. (I covered this in more depth in my article on <a href="/en/llm-hallucinations-devoxx-2026-en/">LLM hallucinations</a>.)</li>
  <li><strong>It holds up thanks to the context window.</strong> The elegant “the whole wiki fits in context” model erodes once the brain exceeds a certain size. At very large scale, you drift back toward retrieval strategies, and RAG makes sense again.</li>
  <li><strong>Discipline is still required.</strong> Not for organizing, but for <em>feeding</em> regularly and <em>linting</em>. A brain you stop feeding stays a dead brain.</li>
  <li><strong>The enterprise reality check.</strong> Access control, compliance, real-time freshness, massive volume: at that level, the LLM wiki alone isn’t enough. It’s a tool for personal and small-team use, not an enterprise knowledge management platform.</li>
</ul>

<p>Once that scope is accepted, what interests me more than the tool itself is what this pattern reveals about how we work with AI.</p>

<hr />

<h2 id="what-this-reveals-about-augmented-work">What this reveals about augmented work</h2>

<p>What strikes me is that this pattern isn’t isolated. It’s the same idea I was digging into in my article on <a href="/en/sdd-compound-engineering-bmad-philosophies-en/">AI work philosophies</a>: <strong>capitalizing on accumulation</strong>.</p>

<p><em>Compound engineering</em> says each development cycle should enrich the next, through a documented learning loop. Karpathy’s LLM wiki says exactly the same thing, but for personal knowledge: every ingested source, every saved answer makes the brain denser, and therefore the next query richer. It’s a virtuous loop where the AI doesn’t just <em>consume</em> your knowledge, it <em>builds</em> it.</p>

<p>There’s also an echo of the <a href="/en/entropy-human-machine/">entropy</a> I wrote about elsewhere. A note-taking system left to itself drifts toward disorder. That’s the natural slope. What the LLM wiki brings is a <em>delegated</em> expenditure of energy: it’s the LLM that fights the entropy of your information, that files, deduplicates, links. You no longer pay the cost of order. You outsource it.</p>

<p>Karpathy may be right: <em>there is room for an incredible new product</em>. But until that product arrives, the Obsidian + Claude Code combo lets you touch the idea right now, with three folders and four commands.</p>

<hr />

<h2 id="tutorial-build-and-use-the-brain">Tutorial: build and use the brain</h2>

<p>You don’t create these files by hand: you give Claude Code Karpathy’s source text and a short delegation prompt. The tool that will run the brain also builds its foundations.</p>

<p><strong>Prerequisites</strong>: <a href="/en/claude-code-installation-first-steps/">Claude Code</a> installed, an empty folder.</p>

<p><strong>1. Create the folder and open Claude Code inside it:</strong></p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mkdir </span>my-second-brain <span class="o">&amp;&amp;</span> <span class="nb">cd </span>my-second-brain
claude
</code></pre></div></div>

<p><strong>2. Copy Karpathy’s original gist</strong></p>

<p>Go to the gist he published in April 2026 and copy the full content:</p>

<p>👉 <strong><a href="https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f">gist.github.com/karpathy/442a6bf555914893e9891c11519de94f</a></strong></p>

<p>This text describes the full pattern: raw/wiki/schema structure, ingest/lint/query workflows, the role of the log and the index. It’s the conceptual contract that Claude will implement.</p>

<p><strong>3. Paste the gist into Claude Code, followed by this delegation prompt:</strong></p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Based on the concept described above, initialize a second brain
in the current folder.

Create:
- raw/ (empty, for raw sources)
- wiki/ with an empty index.md
- empty log.md
- CLAUDE.md that captures this contract as rules for the agent
- .claude/commands/ with the four commands /ingest, /lint, /query
  and /save, whose content faithfully implements the concept described

Confirm the creation of each file.
</code></pre></div></div>

<p>Claude Code reads Karpathy’s concept, understands the expected structure, and creates the files. Here’s what it generates:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>my-second-brain/
├── raw/
├── wiki/
│   └── index.md
├── log.md
├── CLAUDE.md
└── .claude/commands/
    ├── ingest.md
    ├── lint.md
    ├── query.md
    └── save.md
</code></pre></div></div>

<p><strong><code class="language-plaintext highlighter-rouge">.claude/commands/ingest.md</code></strong> (compilation):</p>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Read all files in the <span class="sb">`raw/`</span> folder (ignore <span class="sb">`raw/processed/`</span>).

For each source:
<span class="p">1.</span> Identify the key concepts, people, tools and ideas
<span class="p">2.</span> For each significant element: create or enrich the corresponding page in <span class="sb">`wiki/`</span>
<span class="p">3.</span> Weave [[PageName]] backlinks between related pages
<span class="p">4.</span> If two sources contradict each other, note the contradiction in the relevant article
<span class="p">5.</span> Move processed files to <span class="sb">`raw/processed/`</span>

Once all sources are processed:
<span class="p">-</span> Update <span class="sb">`wiki/index.md`</span> with new and modified pages
<span class="p">-</span> Add an entry to <span class="sb">`log.md`</span>: date, number of files ingested, pages created/modified
</code></pre></div></div>

<p><strong><code class="language-plaintext highlighter-rouge">.claude/commands/lint.md</code></strong> (health check):</p>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Review the entire <span class="sb">`wiki/`</span> folder and produce a structured report.

Check for:
<span class="p">1.</span> <span class="gs">**Contradictions**</span>: passages that conflict between two different articles
<span class="p">2.</span> <span class="gs">**Orphan pages**</span>: articles with no incoming backlinks from any other page
<span class="p">3.</span> <span class="gs">**Broken links**</span>: [[PageName]] backlinks pointing to a non-existent page
<span class="p">4.</span> <span class="gs">**Stale index**</span>: entries in <span class="sb">`index.md`</span> that are missing or point to deleted pages
<span class="p">5.</span> <span class="gs">**Concepts without pages**</span>: recurring terms across multiple articles that deserve their own page

For each problem: indicate the file, describe the issue, propose a fix.
Ask for confirmation before applying any corrections.
</code></pre></div></div>

<p><strong><code class="language-plaintext highlighter-rouge">.claude/commands/query.md</code></strong> (querying):</p>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ARGUMENTS

Answer the question above using the content of the <span class="sb">`wiki/`</span> folder.
Cite source pages in parentheses for each piece of information.
If the answer is not in the wiki, say so clearly: do not fill in from your general
knowledge without explicitly flagging it.
</code></pre></div></div>

<p><strong><code class="language-plaintext highlighter-rouge">.claude/commands/save.md</code></strong> (capitalizing):</p>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ARGUMENTS

Turn the content above into a new wiki page:
<span class="p">1.</span> Determine a short, precise title
<span class="p">2.</span> Write the page in encyclopedic format (H1, summary, sections, [[]] backlinks)
<span class="p">3.</span> Create the file in <span class="sb">`wiki/`</span> with backlinks to relevant existing pages
<span class="p">4.</span> Update <span class="sb">`wiki/index.md`</span>
<span class="p">5.</span> Add an entry to <span class="sb">`log.md`</span>
</code></pre></div></div>

<p>The <code class="language-plaintext highlighter-rouge">$ARGUMENTS</code> in <code class="language-plaintext highlighter-rouge">query.md</code> and <code class="language-plaintext highlighter-rouge">save.md</code> captures what you type after the command. <code class="language-plaintext highlighter-rouge">/query why doesn't RAG scale for personal use?</code> injects the question into the prompt. The <code class="language-plaintext highlighter-rouge">/ingest</code> / <code class="language-plaintext highlighter-rouge">/lint</code> split is deliberate: one grows the brain, the other keeps it healthy.</p>

<p><strong>4. Open <code class="language-plaintext highlighter-rouge">wiki/</code> as a vault in <a href="https://obsidian.md/">Obsidian</a>.</strong></p>

<p><strong>5. Drop a file into <code class="language-plaintext highlighter-rouge">raw/</code> and run <code class="language-plaintext highlighter-rouge">/ingest</code>.</strong></p>

<h2 id="the-hard-part-wont-be-technical-itll-be-resisting-the-urge-to-reorganize-everything-by-hand-thats-precisely-what-karpathy-is-asking-you-to-stop-doing">The hard part won’t be technical. It’ll be resisting the urge to reorganize everything by hand. That’s precisely what Karpathy is asking you to stop doing.</h2>

<p><em>This article extends my reflections on AI-augmented work. See also my <a href="/en/claude-code-installation-first-steps/">Claude Code series</a> and my article on <a href="/en/entropy-human-machine/">human–machine entropy</a>.</em></p>

<h3 id="sources-and-further-reading">Sources and further reading</h3>

<ul>
  <li><a href="https://techstrong.ai/features/karpathys-instructions-for-building-an-ai-driven-second-brain/">Karpathy’s Instructions for Building an AI-Driven Second Brain — Techstrong.ai</a></li>
  <li><a href="https://venturebeat.com/data/karpathy-shares-llm-knowledge-base-architecture-that-bypasses-rag-with-an">Karpathy shares ‘LLM Knowledge Base’ architecture that bypasses RAG — VentureBeat</a></li>
  <li><a href="https://www.mindstudio.ai/blog/andrej-karpathy-llm-wiki-knowledge-base-claude-code">What Is Andrej Karpathy’s LLM Wiki? — MindStudio</a></li>
  <li><a href="https://aimaker.substack.com/p/llm-wiki-obsidian-knowledge-base-andrej-karphaty">How I Took Karpathy’s LLM Wiki and Built an AI-Powered Second Brain in Obsidian — AI Maker</a></li>
  <li><a href="https://fortelabs.com/blog/para/">Building a Second Brain — Tiago Forte (PARA method)</a></li>
</ul>
]]></content:encoded>
        <pubDate>Wed, 10 Jun 2026 00:00:00 +0200</pubDate>
        <link>https://angelo-lima.fr/en/karpathy-second-brain-obsidian-claude-en/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/en/karpathy-second-brain-obsidian-claude-en/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Claude Code</category>
          
          <category>Development</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/second-cerveau-obsidian.png" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>AI sovereignty, a trillion euros and &apos;vassal state&apos;: what Arthur Mensch told the French National Assembly</title>
        <description>
          
            Analysis of Arthur Mensch&apos;s hearing before the French National Assembly inquiry commission on May 12, 2026. Tokens, trade deficit, AI Act, public procurement: what the Mistral AI CEO said, and what he left out.
          
        </description>
        <content:encoded><![CDATA[<p>Tuesday May 12, 2026, 4:00 PM. <strong>Arthur Mensch</strong>, co-founder and CEO of Mistral AI, is heard by the <a href="https://www.assemblee-nationale.fr/dyn/en/actualites-accueil-hub/vulnerabilites-du-secteur-du-numerique-en-france-auditions-de-mistral-ai-de-representants-des-gafam-en-france-et-de-cedric-o">French National Assembly’s inquiry commission</a> “on structural dependencies and systemic vulnerabilities in the digital sector”. Next to him sits Audrey Herblin-Stoop, Mistral’s head of public affairs. Across the room, MPs trying to understand where Europe stands in the global AI race.</p>

<p>The hearing runs for over ninety minutes. Mensch lays out a built thesis: AI is infrastructure technology, and Europe has a few months to decide whether it produces or merely consumes. As in any such exercise, what he says, what he doesn’t say, and what he omits deserve to be read separately. That’s what I’m doing here, by cross-checking his positions against publicly available sources (Mistral’s April 2026 white paper, <a href="https://lcp.fr/actualites/intelligence-artificielle-le-patron-de-mistral-ai-arthur-mensch-n-exclut-pas-une-hausse">LCP coverage</a>, Bloomberg on the Mythos counter-move).</p>

<h2 id="ai-as-raw-material-electrons-become-tokens">AI as raw material: electrons become tokens</h2>

<p>Mensch’s first structuring idea is the way he redefines what AI is. Not a software product, not a web service: an <strong>energy-transformation technology</strong>. You feed electrons in one end, tokens come out the other. The token being the unit of a model’s linguistic output, that is, in his vocabulary, the unit of machine intelligence.</p>

<p>This shift is more than a rhetorical effect. It places AI alongside heavy industry, with its physical externalities (electricity, cooling, land for data centers) and its massive capex cycle. And it serves a central argument: France, thanks to its nuclear capacity, holds a geographic advantage. Decarbonized electricity, relatively cheap at scale, is precisely what’s needed to train and run models.</p>

<p>Where Mensch issues a useful warning is on the <strong>narrow window of opportunity</strong>. American cloud operators are signing long-term contracts with EDF and European utilities. If France doesn’t channel its electricity toward its own players, those electrons will leave for the United States in token form. The question one could have asked, and that no MP really did: how much electricity does Mistral consume today, and what’s the trajectory? The debate stays very macro at this stage.</p>

<p>A nuance Mensch could have brought himself: France’s decarbonized electricity is also an asset for traditional industry, which will need it. Prioritizing it for AI may be strategically defensible, but it’s not neutral.</p>

<h2 id="the-trillion-euros-a-memorable-figure-a-fragile-extrapolation">The “trillion euros”: a memorable figure, a fragile extrapolation</h2>

<p>The headline number. Mensch explains that AI consumption at Mistral already accounts for 10% of payroll. Extrapolated to the European scale over three to four years, you reach <strong>a trillion euros annually</strong>. If Europe imports that AI, it adds straight to the trade deficit.</p>

<p>The image works. It made the rounds in the press, <a href="https://lcp.fr/programmes/la-seance-est-ouverte/dependance-numerique-de-la-france-audition-de-la-direction-de">LCP</a> included, and that was probably the point. But it doesn’t hold up under scrutiny.</p>

<p>First issue: extrapolating the AI consumption of a company like Mistral, whose core business is producing AI, to the whole European economy. It’s like estimating a country’s steel consumption from a single steelworks. The cost structure of an AI company is not that of an industrial SME, a city hall, or a law firm.</p>

<p>Second issue: the implicit assumption that all value added by AI flows through payment to an external service. A significant share of AI-generated value is captured locally (productivity, margins, new products). What actually leaves the territory is the inference and training spend with foreign providers, not the equivalent of 10% of payroll.</p>

<p>Third issue: the figure assumes a linear growth trajectory that no technology cycle has ever followed. Inference costs per token have been falling by roughly an order of magnitude per year since 2023.</p>

<p>None of this means the risk is imaginary. It’s real, and the digital commercial asymmetry between Europe and the United States has been documented for years. But by inflating the number, Mensch hands critics an easy target and weakens an argument that didn’t need the boost.</p>

<h2 id="sovereignty-as-leverage-not-retreat">Sovereignty as “leverage”, not retreat</h2>

<p>This is the most interesting framing from Mistral’s CEO. Digital sovereignty isn’t an autarky project: it’s <strong>negotiating leverage</strong>. If Europe has no sovereign production capacity in AI, it has nothing to put on the table against the United States. No credible arbitration threat, no standard to impose, no knife in the pocket.</p>

<p>Framing the debate this way avoids the classic pitfall of technological nationalism. Mensch isn’t calling to close borders. He’s calling for at least one credible European player to exist in every critical layer of the AI stack. It’s the same line <a href="https://www.maddyness.com/2026/04/07/mistral-ai-pousse-22-mesures-pour-eviter-le-decrochage-de-leurope-dans-lia/">Mistral pushed in April 2026 in its white paper “European AI: a playbook to own it”</a>, whose 22 measures put the <strong>European preference clause in public procurement</strong> at the center.</p>

<p>There’s also a cultural dimension he raises more quietly. Importing an AI model is importing its biases. Models encode representational choices, linguistic biases and political assumptions. An LLM massively trained on Anglo-Saxon content produces Anglo-Saxon analyses by default. The French <a href="https://www.silicon.fr/data-ia-1372/llm-francais-biais-hallucinations-226679">Phare benchmark</a> (Giskard × Google DeepMind) documented that major LLMs are less robust in French than in English. The asymmetry is measurable.</p>

<p>Where I find the reasoning more debatable is the implicit conclusion: for sovereignty to exist, Mistral must exist. Is sovereignty really sovereignty if it boils down to one national champion? What European plurality is left when a single actor writes the recommendations it will then benefit from?</p>

<h2 id="ai-act-substantive-critique-or-vested-interest">AI Act: substantive critique or vested interest?</h2>

<p>Mensch criticizes the stacking of rules head-on: GDPR, copyright legislation, AI Act. His thesis is that this stack paradoxically slows down European players and favors American giants, the only ones capable of absorbing compliance costs.</p>

<p>That’s the standard startup argument. It has some truth to it. A 500,000-euro compliance cost is a rounding error for OpenAI or Google ; for a European scale-up, it’s a quarter of runway. And <a href="https://www.roboto.fr/blog/ai-act-le-grand-paradoxe-europeen-qui-freine-l-innovation-en-ia-en-2025">the AI Act has been the target of intense lobbying</a>, notably by Mistral, to raise the thresholds that trigger the “systemic risk model” classification.</p>

<p>But there’s a blind spot. The protection European regulators are trying to deliver isn’t bureaucratic fussiness: it responds to real cases (algorithmic discrimination, deepfakes, political manipulation, personal data leaks). When Mensch complains about “the accumulation of regulations”, he’s also complaining, in the same breath, about transparency obligations on training data. And those obligations aren’t trivial when you train on copyrighted content without a license.</p>

<p>The right debate isn’t regulation versus deregulation. It’s: <strong>which regulation, at what threshold, with what proportionality</strong>. Mensch is right that 27 different national rulebooks destroy European scale. He’s wrong to present each obligation as a brake on innovation: some of them are the condition for innovation to be acceptable.</p>

<h2 id="defense-coherent-and-uncomfortable">Defense: coherent, and uncomfortable</h2>

<p>The hearing took place a few days before <a href="https://www.bloomberg.com/news/articles/2026-05-13/mistral-developing-new-ai-model-for-banks-lacking-mythos-access">Bloomberg reported</a> that Mistral is developing a cybersecurity model for European banks cut off from Mythos, Anthropic’s access-restricted tool. During the hearing, Mensch said: “We can’t let Mythos scan the source code of the French armed forces. That creates an irreparable dependency, we need to find a solution.”</p>

<p>This is the strongest passage of the hearing, and also the most uncomfortable. Strong because it rests on a concrete, recent case: a foreign tool, under foreign control, more effective than its alternatives, can unilaterally redefine access to a critical capability. That’s precisely what <a href="https://finance.biggo.com/news/fb0uI54BrX5PFN7BS8B6">Palo Alto Networks documents</a>, with frontier AI discovering vulnerabilities seven times faster, and three to five months of defensive buffer left before the trend reverses.</p>

<p>Uncomfortable because Mensch explicitly refuses any right of oversight on the final use of his technology by the French army. “The army is sovereign, it has democratic legitimacy that we don’t have.” Constitutionally that holds, but it brushes aside a debate that never really took place: what does a “sovereign AI” used for military purposes mean when the engineers who built it have no say? The subject deserves more than a deferral to electoral legitimacy.</p>

<h2 id="business-model-ai-is-expensive-and-thats-good">Business model: AI is expensive, and that’s good</h2>

<p>Mistral charges around €1 per million tokens generated on its entry-level models. Industry gross margins sit around 50%. Mensch owns it: that’s what funds the massive training costs, in the hundreds of millions per frontier model cycle.</p>

<p>Mistral’s revenue is <strong>70% non-French</strong>. That’s consistent with its strategy as a European exporting champion. It also implicitly answers the “subsidized small player” critique: Mistral sells internationally, so its customers validate the value proposition. American capital is present (under 30%), but the founders keep strategic control and aim for a European listing.</p>

<p>Macroeconomically, this is exactly the kind of company Europe needs more of. Politically, it’s also a player whose 11.7-billion-euro valuation and trajectory depend on very concrete public decisions: infrastructure choices, electricity allocation, public procurement. Mensch’s position is sincere without being disinterested. Anyone who walks into a parliamentary hearing brings an agenda. It must be heard as such.</p>

<h2 id="public-procurement-the-most-interesting-recommendation-and-the-hardest-to-apply">Public procurement: the most interesting recommendation, and the hardest to apply</h2>

<p>For Mensch, public procurement is the lever. <strong>50% of European GDP flows through public spending</strong>. If a meaningful share of that spending preferred European AI and cloud suppliers, the internal market would structure itself mechanically. That’s the recipe the United States has applied since the 1940s (DARPA, NIH, NASA, Pentagon contracts) to grow its tech ecosystem.</p>

<p>Technically it’s the right idea. Politically, it runs into European non-discrimination rules in public procurement and WTO agreements. Mistral pushes for “European preference clauses on critical public markets”, notably AI and cloud. Legally feasible on national security; far more contested elsewhere.</p>

<p>And there’s a method issue. American public procurement in tech wasn’t built on declared preference, but on technical specifications that de facto disqualified players unable to meet them (clearance, certifications, integration). If Europe wants to produce the same effect, it has to build demanding technical specs on data sovereignty, auditability, hosting. Not a flag, verifiable requirements. That lever sits entirely in the hands of member states, without changing a word of European law. And it’s barely used.</p>

<h2 id="what-the-hearing-reveals-and-what-it-leaves-out">What the hearing reveals, and what it leaves out</h2>

<p>Arthur Mensch’s hearing has two main merits.</p>

<p>It puts before national representatives questions the French political class wasn’t used to framing this way: AI as industrial infrastructure, electricity as strategic raw material, European fragmentation as a structural barrier to scale.</p>

<p>It also forces an honest look at digital dependency. France and Europe never built a top-tier cloud player. They risk missing the same train on AI, with heavier consequences, because this time the stakes aren’t merely industrial: they’re cultural, military, democratic.</p>

<p>What the hearing leaves out is equally telling.</p>

<p>The role of <strong>open-weight models</strong> as European public infrastructure. Mensch prefers talking about Mistral rather than about the open-weights ecosystem he was long a part of. Yet if we want plural sovereignty rather than a national monopoly, that’s the path.</p>

<p>The debate on the <strong>environmental footprint</strong> of the frontier-model race. French decarbonization is presented as an asset, but the ten-year energy trajectory of AI isn’t neutral, and prioritizing electricity for data centers deserves a public debate, not an assumption.</p>

<p>The question of <strong>bias and European linguistic diversity</strong>. Europe doesn’t speak French, it speaks 24 official languages. Defending sovereignty can’t be reduced to swapping American dependency for French-speaking dependency.</p>

<p>And then, more prosaically, the <strong>clarity on uses</strong>: if AI is going to replace 10% of payroll, that’s not a statistic. Those are jobs, employment basins, individual trajectories. The “vassal state” Mensch invokes in conclusion is a useful figure for raising alarm. The state that fails to support its own workers through the transition is a more immediate figure, and far less discussed in the hearing.</p>

<h2 id="further-reading">Further reading</h2>

<ul>
  <li><strong>Full hearing</strong>: <a href="http://videos.assemblee-nationale.fr/video.18888392_6a0330a9d4404.vulnerabilites-systemiques-dans-le-secteur-du-numerique--m-arthur-mensch-cofondateur-et-dg-de-mis-12-mai-2026">official National Assembly video</a>, May 12, 2026.</li>
  <li><strong>Mistral AI white paper</strong>: <em>European AI: a playbook to own it</em>, April 2026, with the 22 detailed measures.</li>
  <li><strong>LCP coverage</strong>: <a href="https://lcp.fr/actualites/intelligence-artificielle-le-patron-de-mistral-ai-arthur-mensch-n-exclut-pas-une-hausse">“The Mistral AI CEO does not rule out a rise in unemployment”</a>, May 12, 2026.</li>
  <li><strong>Bloomberg</strong>: <a href="https://www.bloomberg.com/news/articles/2026-05-13/mistral-developing-new-ai-model-for-banks-lacking-mythos-access">“Mistral Developing New AI Model for Banks Lacking Mythos Access”</a>, May 13, 2026.</li>
  <li><strong>My notes on LLM hallucinations</strong>: <a href="/en/llm-hallucinations-devoxx-2026/">Understanding, measuring and controlling LLM hallucinations</a>, useful background on why linguistic robustness in French is itself a sovereignty issue.</li>
</ul>

<hr />

<p><em>Arthur Mensch (Mistral AI) hearing — French National Assembly inquiry commission on structural dependencies and systemic vulnerabilities in the digital sector, May 12, 2026.</em></p>
]]></content:encoded>
        <pubDate>Fri, 15 May 2026 00:00:00 +0200</pubDate>
        <link>https://angelo-lima.fr/en/arthur-mensch-mistral-ai-national-assembly-hearing-en/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/en/arthur-mensch-mistral-ai-national-assembly-hearing-en/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Tech</category>
          
          <category>Personal</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/mensch-assemblee-nationale-2026.webp" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>Souveraineté IA, trillion d&apos;euros et État vassal : ce qu&apos;a dit Arthur Mensch à l&apos;Assemblée nationale</title>
        <description>
          
            Analyse de l&apos;audition d&apos;Arthur Mensch, PDG de Mistral AI, le 12 mai 2026 devant la commission d&apos;enquête de l&apos;Assemblée nationale sur la souveraineté numérique. Tokens, déficit commercial, AI Act, commande publique : ce qu&apos;il dit, ce qu&apos;il omet.
          
        </description>
        <content:encoded><![CDATA[<p>Mardi 12 mai 2026, 16h00. <strong>Arthur Mensch</strong>, cofondateur et directeur général de Mistral AI, est auditionné par la <a href="https://www.assemblee-nationale.fr/dyn/en/actualites-accueil-hub/vulnerabilites-du-secteur-du-numerique-en-france-auditions-de-mistral-ai-de-representants-des-gafam-en-france-et-de-cedric-o">commission d’enquête de l’Assemblée nationale</a> « sur les dépendances structurelles et les vulnérabilités systémiques dans le secteur du numérique ». À ses côtés, Audrey Herblin-Stoop, directrice des affaires publiques de Mistral. Face à eux, des députés qui veulent comprendre où l’Europe en est dans la course mondiale à l’IA.</p>

<p>L’audition dure plus d’une heure et demie. Mensch déroule une thèse construite : l’IA est une technologie d’infrastructure, l’Europe a quelques mois pour décider si elle en est productrice ou simple consommatrice. Comme dans tout exercice de ce type, ce qu’il dit, ce qu’il ne dit pas et ce qu’il omet méritent d’être lus séparément. C’est ce que je propose ici, en croisant ses positions avec les sources publiques disponibles (livre blanc Mistral d’avril 2026, <a href="https://lcp.fr/actualites/intelligence-artificielle-le-patron-de-mistral-ai-arthur-mensch-n-exclut-pas-une-hausse">couverture LCP</a>, Bloomberg sur la riposte à Mythos).</p>

<h2 id="lia-comme-matière-première--les-électrons-deviennent-des-tokens">L’IA comme matière première : les électrons deviennent des tokens</h2>

<p>La première idée structurante de Mensch, c’est sa manière de redéfinir ce qu’est l’IA. Pas un produit logiciel, pas un service web : une <strong>technologie de transformation énergétique</strong>. On entre des électrons d’un côté, on sort des tokens de l’autre. Le token étant l’unité de mesure de la production linguistique d’un modèle, c’est-à-dire, dans son vocabulaire, l’unité d’intelligence machine.</p>

<p>Le glissement est plus qu’un effet rhétorique. Il rapproche l’IA d’une industrie lourde, avec ses externalités physiques (consommation électrique, refroidissement, foncier des datacenters) et son cycle économique de capex massif. Et il sert un argument central : la France, par son nucléaire, a un atout géographique. Une électricité décarbonée et relativement bon marché à grande échelle est exactement ce qu’il faut pour entraîner et faire tourner des modèles.</p>

<p>Là où Mensch fait passer un avertissement utile, c’est sur la <strong>fenêtre de tir étroite</strong>. Les opérateurs américains de cloud annoncent des contrats long terme avec EDF et avec les énergéticiens européens. Si la France ne fléche pas son électricité vers ses propres acteurs, les électrons partiront aux États-Unis sous forme de tokens. La question qu’on aurait pu lui poser, et qu’aucun député n’a vraiment posée : quelle quantité d’électricité Mistral consomme aujourd’hui, et quelle est sa trajectoire ? Le débat reste à ce stade très macro.</p>

<p>Une nuance qu’il aurait pu apporter lui-même : l’électricité décarbonée française est aussi un atout pour l’industrie classique, qui en aura besoin. L’allocation prioritaire à l’IA, si elle peut se défendre stratégiquement, n’est pas neutre.</p>

<h2 id="le--trillion-deuros---un-chiffre-qui-marque-une-extrapolation-qui-fragilise">Le « trillion d’euros » : un chiffre qui marque, une extrapolation qui fragilise</h2>

<p>Le chiffre qui a fait les titres. Mensch explique que la consommation d’IA chez Mistral représente déjà 10 % de la masse salariale. Si on extrapole à l’échelle européenne d’ici trois à quatre ans, on parle d’<strong>un trillion d’euros annuel</strong>. Si l’Europe importe cette IA, c’est autant qui s’ajoute au déficit commercial.</p>

<p>L’image est efficace. Elle a tourné dans toute la presse, <a href="https://lcp.fr/programmes/la-seance-est-ouverte/dependance-numerique-de-la-france-audition-de-la-direction-de">LCP</a> comprise, et c’était sans doute le but. Mais elle ne tient pas à un examen rigoureux.</p>

<p>Premier problème : extrapoler la consommation d’une entreprise comme Mistral AI, dont le cœur de métier est de produire de l’IA, à l’ensemble de l’économie européenne. C’est comme estimer la consommation d’acier d’un pays à partir d’une aciérie. La structure de coût d’une boîte d’IA n’est pas celle d’une PME industrielle, d’une mairie ou d’un cabinet d’avocats.</p>

<p>Deuxième problème : l’hypothèse implicite que toute la valeur ajoutée par l’IA passe par le paiement d’un service externe. Une partie significative de la valeur générée par l’IA reste capturée localement (productivité, marges, nouveaux produits). Ce qui sort réellement du territoire, c’est la dépense d’inférence et d’entraînement chez les fournisseurs étrangers, pas l’équivalent de 10 % d’une masse salariale.</p>

<p>Troisième problème : le chiffre suppose une trajectoire linéaire de croissance qu’aucun cycle technologique n’a jamais suivi. Les coûts d’inférence par token chutent d’environ un ordre de grandeur par an depuis 2023.</p>

<p>Tout cela ne veut pas dire que le risque est imaginaire. Il est réel, et l’asymétrie commerciale numérique entre l’Europe et les États-Unis est documentée depuis des années. Mais en gonflant le chiffre, Mensch s’expose à une critique facile et fragilise un argument qui n’en avait pas besoin.</p>

<h2 id="la-souveraineté-comme--levier--pas-comme-repli">La souveraineté comme « levier », pas comme repli</h2>

<p>C’est la formulation la plus intéressante du PDG de Mistral. La souveraineté numérique n’est pas un projet d’autarcie : c’est un <strong>levier de négociation</strong>. Si l’Europe n’a aucune capacité de production souveraine en IA, elle n’a rien à mettre dans la balance face aux États-Unis. Pas de menace crédible d’arbitrage, pas de standard à imposer, pas de couteau dans la poche.</p>

<p>Cette manière de poser le débat évite le piège classique du nationalisme technologique. Mensch ne réclame pas la fermeture des frontières. Il réclame qu’il existe au moins un acteur européen crédible dans chaque couche critique de la pile IA. C’est la même ligne que <a href="https://www.maddyness.com/2026/04/07/mistral-ai-pousse-22-mesures-pour-eviter-le-decrochage-de-leurope-dans-lia/">Mistral a poussée en avril 2026 dans son livre blanc « European AI: a playbook to own it »</a>, avec ses 22 mesures dont la <strong>clause de préférence européenne dans la commande publique</strong> est probablement la plus structurante.</p>

<p>Il y a aussi une dimension culturelle qu’il aborde plus discrètement. Importer un modèle d’IA, c’est importer ses biais. Les modèles encodent des choix de représentation, des biais linguistiques et des présupposés politiques. Un LLM massivement entraîné sur du contenu anglo-saxon produit par défaut des analyses anglo-saxonnes. Le benchmark français <a href="https://www.silicon.fr/data-ia-1372/llm-francais-biais-hallucinations-226679">Phare</a> (Giskard × Google DeepMind) a documenté que les principaux LLMs sont moins robustes en français qu’en anglais. L’asymétrie est mesurable.</p>

<p>Là où je trouve le raisonnement plus discutable, c’est sur la conclusion implicite : pour qu’il y ait souveraineté, il faut qu’il y ait Mistral. La souveraineté est-elle souveraineté si elle se résume à un seul champion national ? Quel pluralisme européen quand un acteur écrit les recommandations qu’il appliquera ?</p>

<h2 id="lai-act--critique-fondée-ou-intérêt-bien-compris-">L’AI Act : critique fondée ou intérêt bien compris ?</h2>

<p>Mensch critique frontalement l’accumulation des règles : RGPD, législation sur le droit d’auteur, AI Act. Sa thèse est que cet empilement freine paradoxalement les acteurs européens et favorise les géants américains, seuls capables d’absorber les coûts de conformité.</p>

<p>C’est l’argument classique des startups. Il a une part de vérité. Une exigence de conformité de 500 000 euros représente une fraction négligeable du chiffre d’affaires d’OpenAI ou de Google ; pour une scale-up européenne, c’est un trimestre de runway. Et il est documenté que <a href="https://www.roboto.fr/blog/ai-act-le-grand-paradoxe-europeen-qui-freine-l-innovation-en-ia-en-2025">les obligations de l’AI Act ont fait l’objet d’un lobbying intense</a>, notamment de la part de Mistral, pour relever les seuils déclenchant la catégorisation « modèle à risque systémique ».</p>

<p>Mais il y a un angle mort. La protection que cherchent à apporter les régulateurs européens n’est pas un caprice bureaucratique : elle répond à des cas réels (discrimination algorithmique, deepfakes, manipulation politique, fuite de données personnelles). Quand Mensch dénonce « l’accumulation de réglementations », il dénonce aussi, dans le même mouvement, les obligations de transparence sur les données d’entraînement. Et celles-là ne sont pas anodines quand on entraîne sur du contenu protégé sans licence.</p>

<p>Le bon débat n’est pas régulation contre dérégulation. Il est : <strong>quelle régulation, à quel seuil, avec quelle proportionnalité</strong>. Mensch a raison de dire que 27 réglementations nationales différentes tuent l’échelle européenne. Il a tort de présenter chaque obligation comme une entrave à l’innovation : certaines sont la condition pour que l’innovation soit acceptable.</p>

<h2 id="la-défense--cohérent-et-pourtant-inconfortable">La défense : cohérent, et pourtant inconfortable</h2>

<p>L’audition s’est tenue quelques jours avant que <a href="https://www.bloomberg.com/news/articles/2026-05-13/mistral-developing-new-ai-model-for-banks-lacking-mythos-access">Bloomberg ne révèle</a> que Mistral développe un modèle de cybersécurité pour les banques européennes coupées de Mythos, l’outil d’Anthropic à accès restreint. Pendant l’audition, Mensch déclare : « On ne peut pas laisser Mythos scanner le code source des armées françaises. Cela crée une dépendance irréparable, on doit trouver une solution. »</p>

<p>C’est le passage le plus solide de l’audition, et aussi le plus inconfortable. Solide parce qu’il s’appuie sur un cas concret et récent : un outil étranger, sous contrôle d’un acteur étranger, plus efficace que ses équivalents, peut redéfinir unilatéralement l’accès à une capacité critique. C’est précisément ce que <a href="https://finance.biggo.com/news/fb0uI54BrX5PFN7BS8B6">Palo Alto Networks documente</a>, avec un facteur 7 de découverte de vulnérabilités par les IA frontalières, et trois à cinq mois de marge défensive avant inversion.</p>

<p>Inconfortable parce que Mensch refuse explicitement un droit de regard sur l’usage final de sa technologie par l’armée française. « L’armée est souveraine, elle a une légitimité démocratique que nous n’avons pas. » La phrase a une logique constitutionnelle, mais elle évacue d’un revers de manche un débat qui n’a jamais eu lieu : qu’est-ce qu’une « IA souveraine » utilisée pour des cas d’usage militaires sans que les ingénieurs qui l’ont construite aient leur mot à dire ? Le sujet mérite mieux qu’un renvoi à la légitimité élective.</p>

<h2 id="modèle-économique--lia-cest-cher-et-cest-tant-mieux">Modèle économique : l’IA, c’est cher, et c’est tant mieux</h2>

<p>Mistral facture environ 1 € pour un million de tokens générés sur ses modèles d’entrée de gamme. La marge brute du secteur est d’environ 50 %. Mensch le revendique : c’est nécessaire pour financer les coûts massifs d’entraînement, qui se comptent en centaines de millions par cycle de modèle frontalier.</p>

<p>Le chiffre d’affaires de Mistral est réalisé à <strong>70 % hors de France</strong>. C’est cohérent avec sa stratégie de champion européen exportateur. Et c’est aussi une réponse implicite à la critique du « petit acteur subventionné » : Mistral vend à l’international, donc ses clients valident une proposition de valeur. Le capital américain est présent (moins de 30 %), mais les fondateurs gardent le contrôle stratégique et visent une cotation européenne.</p>

<p>Sur le plan macroéconomique, c’est exactement le profil d’entreprise que l’Europe doit avoir le plus possible. Sur le plan politique, c’est aussi un acteur dont la valorisation à 11,7 milliards et la trajectoire dépendent de décisions publiques très concrètes : choix d’infrastructure, fléchage électrique, commande publique. La position de Mensch est sincère sans être désintéressée. Tout interlocuteur des pouvoirs publics arrive avec son agenda. Il faut l’entendre comme tel.</p>

<h2 id="la-commande-publique--la-recommandation-la-plus-intéressante-et-la-plus-difficile-à-appliquer">La commande publique : la recommandation la plus intéressante, et la plus difficile à appliquer</h2>

<p>Pour Mensch, la commande publique est le levier. <strong>50 % du PIB européen passe par la dépense publique</strong>. Si une fraction significative de cette dépense privilégiait des fournisseurs européens d’IA et de cloud, le marché interne se structurerait mécaniquement. C’est la recette qu’ont appliquée les États-Unis depuis les années 1940 (DARPA, NIH, NASA, contrats du Pentagone) pour faire grossir leur écosystème tech.</p>

<p>C’est techniquement la bonne idée. Politiquement, elle se heurte aux règles européennes de non-discrimination dans la commande publique et aux accords OMC. Mistral pousse pour des « clauses de préférence européenne sur les marchés publics critiques », notamment l’IA et le cloud. Ce serait juridiquement faisable sur la sécurité nationale ; nettement plus contesté ailleurs.</p>

<p>Et il y a une question de méthode. La commande publique américaine en tech ne s’est pas faite par préférence affichée, mais par cahiers des charges techniques qui éliminaient de facto les acteurs incapables de répondre (clearance, certifications, intégration). Si l’Europe veut produire le même effet, elle doit construire des spécifications techniques exigeantes sur la souveraineté de la donnée, l’auditabilité, l’hébergement. Pas un drapeau, des exigences vérifiables. Ce levier-là est entièrement aux mains des États membres, sans changer un mot de droit européen. Et il est très peu utilisé.</p>

<h2 id="ce-que-laudition-révèle-et-ce-quelle-laisse-de-côté">Ce que l’audition révèle, et ce qu’elle laisse de côté</h2>

<p>L’audition d’Arthur Mensch a deux mérites principaux.</p>

<p>Elle pose, à la représentation nationale, des questions que la classe politique française n’avait pas l’habitude de formuler en ces termes : l’IA comme infrastructure industrielle, l’électricité comme matière première stratégique, la fragmentation européenne comme obstacle structurel à l’échelle.</p>

<p>Elle force aussi un examen lucide de la dépendance numérique. La France et l’Europe ne se sont jamais dotées d’un acteur cloud de premier plan. Elles risquent de manquer le même train sur l’IA, avec des conséquences plus lourdes, parce que cette fois l’enjeu n’est plus seulement industriel : il est culturel, militaire, démocratique.</p>

<p>Ce que l’audition laisse de côté est tout aussi parlant.</p>

<p>Le rôle des <strong>modèles ouverts</strong> comme infrastructure publique européenne. Mensch préfère parler de Mistral plutôt que de l’écosystème open weights dont il a longtemps été un acteur. Or si on veut une souveraineté plurielle plutôt qu’un monopole national, c’est par là que ça passe.</p>

<p>Le débat sur <strong>l’empreinte environnementale</strong> de la course aux modèles frontaliers. La décarbonation française est mise en avant comme atout, mais la trajectoire d’usage énergétique de l’IA à dix ans n’est pas neutre, et la priorisation de l’électricité au profit des datacenters mérite un débat public, pas un présupposé.</p>

<p>La question des <strong>biais et de la diversité linguistique européenne</strong>. L’Europe ne parle pas français, elle parle 24 langues officielles. La défense de la souveraineté ne peut pas se réduire à substituer une dépendance américaine par une dépendance francophone.</p>

<p>Et puis, plus prosaïquement, la <strong>lucidité sur les usages</strong> : si l’IA va remplacer 10 % de la masse salariale, ce n’est pas une statistique. Ce sont des métiers, des bassins d’emploi, des trajectoires individuelles. L’État vassal qu’évoque Mensch en conclusion est une figure utile pour faire peur. L’État qui n’accompagne pas ses propres salariés dans la transition est une figure plus immédiate, et beaucoup moins évoquée dans l’audition.</p>

<h2 id="pour-aller-plus-loin">Pour aller plus loin</h2>

<ul>
  <li><strong>L’audition complète</strong> : <a href="http://videos.assemblee-nationale.fr/video.18888392_6a0330a9d4404.vulnerabilites-systemiques-dans-le-secteur-du-numerique--m-arthur-mensch-cofondateur-et-dg-de-mis-12-mai-2026">vidéo officielle de l’Assemblée nationale</a>, 12 mai 2026.</li>
  <li><strong>Livre blanc Mistral AI</strong> : <em>European AI: a playbook to own it</em>, avril 2026, qui détaille les 22 mesures.</li>
  <li><strong>Couverture LCP</strong> : <a href="https://lcp.fr/actualites/intelligence-artificielle-le-patron-de-mistral-ai-arthur-mensch-n-exclut-pas-une-hausse">« Le patron de Mistral AI n’exclut pas une hausse du chômage »</a>, 12 mai 2026.</li>
  <li><strong>Bloomberg</strong> : <a href="https://www.bloomberg.com/news/articles/2026-05-13/mistral-developing-new-ai-model-for-banks-lacking-mythos-access">« Mistral Developing New AI Model for Banks Lacking Mythos Access »</a>, 13 mai 2026.</li>
  <li><strong>Mes notes sur les hallucinations des LLMs</strong> : <a href="/fr/hallucinations-llm-devoxx-2026/">Comprendre, mesurer et maîtriser les hallucinations</a>, utile pour comprendre pourquoi la robustesse linguistique en français est un vrai enjeu de souveraineté.</li>
</ul>

<hr />

<p><em>Audition d’Arthur Mensch (Mistral AI) — Commission d’enquête de l’Assemblée nationale sur les dépendances structurelles et les vulnérabilités systémiques dans le secteur du numérique, 12 mai 2026.</em></p>
]]></content:encoded>
        <pubDate>Fri, 15 May 2026 00:00:00 +0200</pubDate>
        <link>https://angelo-lima.fr/fr/arthur-mensch-mistral-ai-audition-assemblee-nationale/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/fr/arthur-mensch-mistral-ai-audition-assemblee-nationale/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Tech</category>
          
          <category>Personnel</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/mensch-assemblee-nationale-2026.webp" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>Claude Code Cheat Sheet — Avril 2026 : Opus 4.7, Auto Mode et Computer Use dans le CLI</title>
        <description>
          
            Cheatsheet Claude Code avril 2026 exhaustive : 60+ commandes slash, 70+ flags et variables d&apos;environnement, 26 événements hooks, Opus 4.7, xhigh effort, Auto Mode, Computer Use dans le CLI, Monitor tool, refonte de la Desktop app. Disponible en FR et EN.
          
        </description>
        <content:encoded><![CDATA[<p>J’avais publié une cheatsheet Claude Code fin mars. Moins de quatre semaines plus tard, elle est déjà incomplète : Opus 4.7 est sorti le 16 avril, Computer Use est descendu dans le CLI, Auto Mode est passé en GA sur Max, sept nouvelles commandes slash sont arrivées (et deux ont été supprimées), cinq événements hooks se sont ajoutés, et la Desktop app a été refondue le 14 avril. Entre v2.1.83 et v2.1.101, Anthropic a poussé une trentaine de releases en cinq semaines.</p>

<p>J’ai donc republié une version avril 2026 — la <strong>même architecture visuelle</strong> que la version mars, réécrite pour coller à chaque ajout récent, avec la <strong>palette du blog</strong> (fond sombre, accent doré) plutôt que le thème Reddit d’origine.</p>

<h2 id="la-cheat-sheet">La cheat sheet</h2>

<ul>
  <li><strong><a href="/assets/data/claude-code-cheatsheet-avril-2026.html">Français — HTML interactif</a></strong></li>
  <li><strong><a href="/assets/data/claude-code-cheatsheet-april-2026-en.html">English — Interactive HTML</a></strong></li>
</ul>

<p>La version de mars reste accessible pour référence : <a href="/assets/data/claude-code-cheatsheet-2026.html">FR</a> · <a href="/assets/data/claude-code-cheatsheet-2026-en.html">EN</a>.</p>

<p>Les éléments marqués d’un badge doré <strong>NEW</strong> sont des features ajoutées depuis fin mars 2026. Les éléments barrés <strong>REMOVED</strong> sont des commandes retirées.</p>

<h2 id="ce-qui-est-couvert">Ce qui est couvert</h2>

<p>14 sections au lieu de 13 dans la version mars (la nouvelle row regroupe Auto Mode, Models &amp; Effort et Platforms) :</p>

<table>
  <thead>
    <tr>
      <th>Section</th>
      <th>Couverture</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Raccourcis Clavier</td>
      <td>~30 raccourcis, 17 contextes, mode Vim visual</td>
    </tr>
    <tr>
      <td>Commandes Slash</td>
      <td><strong>60+ commandes</strong> en 6 catégories, /vim supprimée</td>
    </tr>
    <tr>
      <td>CLI Flags &amp; Sous-commandes</td>
      <td>60+ flags en 8 catégories, wizards Bedrock/Vertex</td>
    </tr>
    <tr>
      <td>The Big 5 (Extension System)</td>
      <td>CLAUDE.md, Rules, Commands, Skills, Subagents, MCP, Plugins</td>
    </tr>
    <tr>
      <td>MCP Computer Use &amp; Monitor</td>
      <td>27 outils bureau, watchers background</td>
    </tr>
    <tr>
      <td>Modes de Permission</td>
      <td>6 modes + hardening avril (Bash, PowerShell, sandbox)</td>
    </tr>
    <tr>
      <td>Hooks</td>
      <td><strong>26 événements</strong>, 5 types de handlers, champ <code class="language-plaintext highlighter-rouge">if</code>, <code class="language-plaintext highlighter-rouge">duration_ms</code></td>
    </tr>
    <tr>
      <td>Input Superpowers</td>
      <td>@mentions, !shell, images, pipes, worktrees, background</td>
    </tr>
    <tr>
      <td>Configuration</td>
      <td>Hiérarchie 5 niveaux, 24 env vars, 12 champs settings.json</td>
    </tr>
    <tr>
      <td>File Structure Map</td>
      <td>Arborescence projet + globale (avec <code class="language-plaintext highlighter-rouge">themes/</code> et <code class="language-plaintext highlighter-rouge">plans/</code>)</td>
    </tr>
    <tr>
      <td>Rewind &amp; Checkpoints</td>
      <td>Options rewind + prompt caching 1h</td>
    </tr>
    <tr>
      <td><strong>Auto Mode</strong></td>
      <td>Permission classifier, fast+thinking paths, hook <code class="language-plaintext highlighter-rouge">PermissionDenied</code></td>
    </tr>
    <tr>
      <td><strong>Models &amp; Effort Levels</strong></td>
      <td>Opus 4.7, Sonnet 4.6, Haiku 4.5 + niveau <code class="language-plaintext highlighter-rouge">xhigh</code></td>
    </tr>
    <tr>
      <td><strong>Plateformes</strong></td>
      <td>CLI (Linux/macOS/Windows natif), Desktop refondu, Web, IDE</td>
    </tr>
    <tr>
      <td>Pro Workflow</td>
      <td>Plan → Execute, Focus View, Monitor tool, adaptive thinking</td>
    </tr>
    <tr>
      <td>Personnaliser Claude Code</td>
      <td>Frontmatter complet pour chaque type d’extension</td>
    </tr>
    <tr>
      <td>Quick Reference</td>
      <td>Combos à jour avec les nouveautés d’avril</td>
    </tr>
  </tbody>
</table>

<h2 id="ajouts-et-changements-depuis-mars-2026">Ajouts et changements depuis mars 2026</h2>

<h3 id="claude-opus-47-16-avril">Claude Opus 4.7 (16 avril)</h3>

<p>1M de contexte natif, 64K à 128K de tokens en sortie, et surtout un <strong>adaptive thinking</strong> : plus de <code class="language-plaintext highlighter-rouge">budget_tokens</code> manuel, le modèle décide lui-même quand réfléchir plus longtemps. Visible par des indicateurs inline (<em>“still thinking”</em>, <em>“thinking more”</em>). Par défaut, l’effort passe à un nouveau niveau <code class="language-plaintext highlighter-rouge">xhigh</code> (100K tokens, MRCR v2 à 71%), positionné entre <code class="language-plaintext highlighter-rouge">high</code> et <code class="language-plaintext highlighter-rouge">max</code>.</p>

<h3 id="auto-mode-en-ga-pour-max">Auto Mode en GA pour Max</h3>

<p>Le mode Auto (classifier de permissions) est sorti de research preview pour les abonnés Max avec Opus 4.7. Le classifier a deux chemins : un <em>fast path</em> sur Haiku qui classe chaque appel d’outil en safe/risky/uncertain, et un <em>thinking path</em> sur Opus/Sonnet qui reprend les cas ambigus. Le nouvel hook <code class="language-plaintext highlighter-rouge">PermissionDenied</code> permet de réagir à un refus (par exemple demander une autorisation explicite via un script) et peut renvoyer <code class="language-plaintext highlighter-rouge">{"retry": true}</code> pour relancer l’outil.</p>

<h3 id="computer-use-dans-le-cli">Computer Use dans le CLI</h3>

<p>Computer Use était cantonné à la Desktop app dans la version mars. Depuis v2.1.86 il est disponible dans le CLI sur <strong>macOS et Windows Desktop</strong> (Linux non supporté), avec multi-monitor. Les 27 outils (screenshot, clicks, typing, <code class="language-plaintext highlighter-rouge">computer_batch</code>, etc.) restent identiques. Toujours en research preview, Pro/Max uniquement.</p>

<h3 id="monitor-tool-v2198">Monitor tool (v2.1.98)</h3>

<p>Un outil built-in qui spawn des watchers en arrière-plan : tail de logs, suivi CI, auto-fix de crashes. Chaque ligne stdout devient une notification dans la conversation. Fin des <code class="language-plaintext highlighter-rouge">while sleep; do ... done</code> dans Bash. Se combine avec <code class="language-plaintext highlighter-rouge">/loop</code> en mode self-pacing (omettre l’intervalle, Claude choisit le tick ou utilise Monitor).</p>

<h3 id="7-nouvelles-commandes-slash-2-supprimées">7 nouvelles commandes slash, 2 supprimées</h3>

<p>Ajoutées : <code class="language-plaintext highlighter-rouge">/ultraplan</code> (draft dans le cloud, revue dans le navigateur, exécution locale), <code class="language-plaintext highlighter-rouge">/autofix-pr</code> (réparer une PR depuis le terminal ou le web), <code class="language-plaintext highlighter-rouge">/team-onboarding</code> (guide ramp-up pour un co-équipier à partir de votre usage), <code class="language-plaintext highlighter-rouge">/powerup</code> (leçons animées pour apprendre les features), <code class="language-plaintext highlighter-rouge">/tui</code> (rendu fullscreen sans flicker), <code class="language-plaintext highlighter-rouge">/focus</code> (vue condensée), <code class="language-plaintext highlighter-rouge">/effort</code> (slider interactif avec ↑↓).</p>

<p>Supprimées : <code class="language-plaintext highlighter-rouge">/vim</code> (remplacée par <code class="language-plaintext highlighter-rouge">/config</code> → Editor mode) et <code class="language-plaintext highlighter-rouge">/tag</code> (remplacée par des titres de sessions AI-generated).</p>

<h3 id="5-événements-hooks-supplémentaires">5 événements hooks supplémentaires</h3>

<p>Le total passe de 25 à 26 événements listés, plus plusieurs améliorations : <code class="language-plaintext highlighter-rouge">PermissionDenied</code> pour réagir aux refus Auto Mode, <code class="language-plaintext highlighter-rouge">PostUserPromptSubmit</code> qui peut override le <code class="language-plaintext highlighter-rouge">sessionTitle</code>, <code class="language-plaintext highlighter-rouge">PostToolUse</code> reçoit maintenant <code class="language-plaintext highlighter-rouge">duration_ms</code> dans son input, <code class="language-plaintext highlighter-rouge">PreCompact</code> peut bloquer une compaction (exit 2), le champ <code class="language-plaintext highlighter-rouge">if</code> accepte <code class="language-plaintext highlighter-rouge">mcp__server__tool</code> et un nouveau type de handler <code class="language-plaintext highlighter-rouge">mcp_tool</code> appelle directement un outil MCP.</p>

<h3 id="une-vingtaine-de-nouvelles-variables-denvironnement">Une vingtaine de nouvelles variables d’environnement</h3>

<p>Entre autres : <code class="language-plaintext highlighter-rouge">CLAUDE_CODE_NO_FLICKER</code> (rendu alt-screen activé par défaut v2.1.89), <code class="language-plaintext highlighter-rouge">CLAUDE_CODE_HIDE_CWD</code>, <code class="language-plaintext highlighter-rouge">CLAUDE_CODE_USE_MANTLE</code> (Bedrock via Mantle), <code class="language-plaintext highlighter-rouge">CLAUDE_CODE_CERT_STORE</code>, <code class="language-plaintext highlighter-rouge">CLAUDE_CODE_SUBPROCESS_ENV_SCRUB</code> (isolation PID namespace Linux), <code class="language-plaintext highlighter-rouge">CLAUDE_CODE_SCRIPT_CAPS</code>, <code class="language-plaintext highlighter-rouge">CLAUDE_CODE_PERFORCE_MODE</code>, <code class="language-plaintext highlighter-rouge">ENABLE_PROMPT_CACHING_1H</code>, <code class="language-plaintext highlighter-rouge">FORCE_PROMPT_CACHING_5M</code>, <code class="language-plaintext highlighter-rouge">ENABLE_TOOL_SEARCH</code>, <code class="language-plaintext highlighter-rouge">OTEL_LOG_TOOL_DETAILS</code>, <code class="language-plaintext highlighter-rouge">DISABLE_UPDATES</code>. Sept nouveaux champs de <code class="language-plaintext highlighter-rouge">settings.json</code> également : <code class="language-plaintext highlighter-rouge">prUrlTemplate</code>, <code class="language-plaintext highlighter-rouge">sandbox.failIfUnavailable</code>, <code class="language-plaintext highlighter-rouge">disableSkillShellExecution</code>, <code class="language-plaintext highlighter-rouge">showThinkingSummaries</code> (off en interactif depuis v2.1.86), <code class="language-plaintext highlighter-rouge">statusLine.refreshInterval</code>.</p>

<h3 id="desktop-app-refondue-14-avril">Desktop app refondue (14 avril)</h3>

<p>Multi-session sidebar, drag-and-drop pane layout, terminal intégré, file editor avec preview HTML/PDF, diff viewer refait. <code class="language-plaintext highlighter-rouge">/desktop</code> transfère une session du CLI vers l’app. Computer Use fonctionne aussi depuis la Desktop app sur macOS et Windows.</p>

<h3 id="claude-code-sur-le-web">Claude Code sur le web</h3>

<p><code class="language-plaintext highlighter-rouge">claude.ai/code</code> en research preview pour les abonnés Pro et Max : infrastructure cloud, sessions persistantes depuis mobile, possibilité de reprendre en local avec <code class="language-plaintext highlighter-rouge">/teleport</code>.</p>

<h3 id="defaults-qui-ont-basculé">Defaults qui ont basculé</h3>

<ul>
  <li>Rendu flicker-free (alt-screen) <strong>on</strong> par défaut (v2.1.89)</li>
  <li>OS CA certificate store <strong>trusté</strong> par défaut (v2.1.101), plus besoin de configurer un proxy TLS d’entreprise</li>
  <li>Thinking summaries <strong>off</strong> par défaut en interactif (v2.1.86)</li>
  <li>Effort par défaut : <code class="language-plaintext highlighter-rouge">high</code> sur API-key / Bedrock / Vertex / Team / Enterprise, <code class="language-plaintext highlighter-rouge">xhigh</code> pour les utilisateurs Opus 4.7</li>
</ul>

<hr />

<p>Sources officielles : <a href="https://code.claude.com/docs/en/changelog">Claude Code Changelog</a>, <a href="https://code.claude.com/docs/en/whats-new">What’s New</a> (semaines <a href="https://code.claude.com/docs/en/whats-new/2026-w13">W13</a>, <a href="https://code.claude.com/docs/en/whats-new/2026-w14">W14</a>, <a href="https://code.claude.com/docs/en/whats-new/2026-w15">W15</a>), <a href="https://platform.claude.com/docs/en/about-claude/models/whats-new-claude-4-7">Opus 4.7 notes</a>, <a href="https://code.claude.com/docs/en/computer-use">Computer Use</a>, <a href="https://www.anthropic.com/engineering/claude-code-auto-mode">Auto Mode</a>.</p>

<p>Si vous repérez une erreur ou une feature manquante, dites-le moi, je garderai cette cheatsheet à jour au fil des évolutions.</p>
]]></content:encoded>
        <pubDate>Fri, 24 Apr 2026 00:00:00 +0200</pubDate>
        <link>https://angelo-lima.fr/fr/claude-code-cheatsheet-avril-2026-mise-a-jour/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/fr/claude-code-cheatsheet-avril-2026-mise-a-jour/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Développement</category>
          
          <category>Claude Code</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/claude-code.webp" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>Claude Code Cheat Sheet — April 2026: Opus 4.7, Auto Mode, and Computer Use in the CLI</title>
        <description>
          
            Exhaustive April 2026 Claude Code cheatsheet: 60+ slash commands, 70+ CLI flags and env vars, 26 hook events, Opus 4.7, xhigh effort level, Auto Mode, Computer Use in the CLI, Monitor tool, redesigned Desktop app. Available in EN and FR.
          
        </description>
        <content:encoded><![CDATA[<p>I published a Claude Code cheatsheet at the end of March. Less than four weeks later it is already incomplete: Opus 4.7 shipped on April 16, Computer Use landed in the CLI, Auto Mode went GA on Max, seven new slash commands appeared (and two were removed), five hook updates arrived, and the Desktop app was redesigned on April 14. Between v2.1.83 and v2.1.101, Anthropic shipped roughly thirty releases in five weeks.</p>

<p>So I republished an April 2026 edition — <strong>same visual architecture</strong> as the March version, rewritten to match every recent addition, and using <strong>the blog palette</strong> (dark background, gold accent) instead of the original Reddit theme.</p>

<h2 id="the-cheat-sheet">The cheat sheet</h2>

<ul>
  <li><strong><a href="/assets/data/claude-code-cheatsheet-april-2026-en.html">English — Interactive HTML</a></strong></li>
  <li><strong><a href="/assets/data/claude-code-cheatsheet-avril-2026.html">French — Interactive HTML</a></strong></li>
</ul>

<p>The March version stays available for reference: <a href="/assets/data/claude-code-cheatsheet-2026-en.html">EN</a> · <a href="/assets/data/claude-code-cheatsheet-2026.html">FR</a>.</p>

<p>Items with a gold <strong>NEW</strong> badge shipped since late March 2026. Items tagged <strong>REMOVED</strong> are commands that were retired.</p>

<h2 id="whats-covered">What’s covered</h2>

<p>14 sections instead of 13 in the March version (the new row groups Auto Mode, Models &amp; Effort, and Platforms):</p>

<table>
  <thead>
    <tr>
      <th>Section</th>
      <th>Coverage</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Keyboard Shortcuts</td>
      <td>~30 shortcuts, 17 contexts, Vim visual mode</td>
    </tr>
    <tr>
      <td>Slash Commands</td>
      <td><strong>60+ commands</strong> in 6 categories, /vim removed</td>
    </tr>
    <tr>
      <td>CLI Flags &amp; Subcommands</td>
      <td>60+ flags in 8 categories, Bedrock/Vertex wizards</td>
    </tr>
    <tr>
      <td>The Big 5 (Extension System)</td>
      <td>CLAUDE.md, Rules, Commands, Skills, Subagents, MCP, Plugins</td>
    </tr>
    <tr>
      <td>MCP Computer Use &amp; Monitor</td>
      <td>27 desktop tools, background watchers</td>
    </tr>
    <tr>
      <td>Permission Modes</td>
      <td>6 modes + April hardening (Bash, PowerShell, sandbox)</td>
    </tr>
    <tr>
      <td>Hooks</td>
      <td><strong>26 events</strong>, 5 handler types, <code class="language-plaintext highlighter-rouge">if</code> field, <code class="language-plaintext highlighter-rouge">duration_ms</code></td>
    </tr>
    <tr>
      <td>Input Superpowers</td>
      <td>@mentions, !shell, images, pipes, worktrees, background</td>
    </tr>
    <tr>
      <td>Configuration</td>
      <td>5-level hierarchy, 24 env vars, 12 settings.json fields</td>
    </tr>
    <tr>
      <td>File Structure Map</td>
      <td>Project + global tree (now with <code class="language-plaintext highlighter-rouge">themes/</code> and <code class="language-plaintext highlighter-rouge">plans/</code>)</td>
    </tr>
    <tr>
      <td>Rewind &amp; Checkpoints</td>
      <td>Rewind options + 1h prompt caching</td>
    </tr>
    <tr>
      <td><strong>Auto Mode</strong></td>
      <td>Permission classifier, fast+thinking paths, <code class="language-plaintext highlighter-rouge">PermissionDenied</code> hook</td>
    </tr>
    <tr>
      <td><strong>Models &amp; Effort Levels</strong></td>
      <td>Opus 4.7, Sonnet 4.6, Haiku 4.5 + <code class="language-plaintext highlighter-rouge">xhigh</code> effort</td>
    </tr>
    <tr>
      <td><strong>Platforms</strong></td>
      <td>CLI (Linux/macOS/Windows native), redesigned Desktop, Web, IDE</td>
    </tr>
    <tr>
      <td>Pro Workflow</td>
      <td>Plan → Execute, Focus View, Monitor tool, adaptive thinking</td>
    </tr>
    <tr>
      <td>Customize Claude Code</td>
      <td>Full frontmatter for every extension type</td>
    </tr>
    <tr>
      <td>Quick Reference</td>
      <td>Combos refreshed with April additions</td>
    </tr>
  </tbody>
</table>

<h2 id="additions-and-changes-since-march-2026">Additions and changes since March 2026</h2>

<h3 id="claude-opus-47-april-16">Claude Opus 4.7 (April 16)</h3>

<p>Native 1M context, 64K to 128K output tokens, and above all <strong>adaptive thinking</strong>: no more manual <code class="language-plaintext highlighter-rouge">budget_tokens</code>, the model itself decides when to think longer. Visible through inline indicators (<em>“still thinking”</em>, <em>“thinking more”</em>). Default effort shifts to a new <code class="language-plaintext highlighter-rouge">xhigh</code> level (100K tokens, 71% on MRCR v2), positioned between <code class="language-plaintext highlighter-rouge">high</code> and <code class="language-plaintext highlighter-rouge">max</code>.</p>

<h3 id="auto-mode-ga-for-max-subscribers">Auto Mode GA for Max subscribers</h3>

<p>The Auto mode (permission classifier) left research preview for Max subscribers with Opus 4.7. The classifier runs two paths: a <em>fast path</em> on Haiku that tags each tool call as safe/risky/uncertain, and a <em>thinking path</em> on Opus/Sonnet that handles ambiguous cases. The new <code class="language-plaintext highlighter-rouge">PermissionDenied</code> hook fires on denials (useful to request an explicit grant via a script) and can return <code class="language-plaintext highlighter-rouge">{"retry": true}</code> to rerun the tool.</p>

<h3 id="computer-use-in-the-cli">Computer Use in the CLI</h3>

<p>Computer Use was Desktop-app-only in the March release. Since v2.1.86 it is available in the CLI on <strong>macOS and Windows Desktop</strong> (Linux not supported), with multi-monitor support. The 27 tools (screenshot, clicks, typing, <code class="language-plaintext highlighter-rouge">computer_batch</code>, etc.) are unchanged. Still a research preview, Pro/Max only.</p>

<h3 id="monitor-tool-v2198">Monitor tool (v2.1.98)</h3>

<p>A built-in tool that spawns background watchers: tail logs, watch CI, auto-fix crashes. Each stdout line becomes a notification in the conversation. Replaces <code class="language-plaintext highlighter-rouge">while sleep; do ... done</code> Bash loops. Pairs with <code class="language-plaintext highlighter-rouge">/loop</code> in self-pacing mode (omit the interval; Claude picks the next tick or uses Monitor).</p>

<h3 id="7-new-slash-commands-2-removed">7 new slash commands, 2 removed</h3>

<p>Added: <code class="language-plaintext highlighter-rouge">/ultraplan</code> (draft in the cloud, review in the browser, execute locally), <code class="language-plaintext highlighter-rouge">/autofix-pr</code> (fix a PR from the terminal or web), <code class="language-plaintext highlighter-rouge">/team-onboarding</code> (generate a teammate ramp-up guide from your usage), <code class="language-plaintext highlighter-rouge">/powerup</code> (animated lessons to learn features), <code class="language-plaintext highlighter-rouge">/tui</code> (flicker-free fullscreen rendering), <code class="language-plaintext highlighter-rouge">/focus</code> (condensed view), <code class="language-plaintext highlighter-rouge">/effort</code> (interactive slider with ↑↓).</p>

<p>Removed: <code class="language-plaintext highlighter-rouge">/vim</code> (use <code class="language-plaintext highlighter-rouge">/config</code> → Editor mode) and <code class="language-plaintext highlighter-rouge">/tag</code> (replaced by AI-generated session titles).</p>

<h3 id="hook-system-updates">Hook system updates</h3>

<p>The listed total moves from 25 to 26 events, plus several refinements: <code class="language-plaintext highlighter-rouge">PermissionDenied</code> for Auto Mode refusals, <code class="language-plaintext highlighter-rouge">PostUserPromptSubmit</code> that can override <code class="language-plaintext highlighter-rouge">sessionTitle</code>, <code class="language-plaintext highlighter-rouge">PostToolUse</code> now receives <code class="language-plaintext highlighter-rouge">duration_ms</code> in its input, <code class="language-plaintext highlighter-rouge">PreCompact</code> can block compaction (exit 2), the <code class="language-plaintext highlighter-rouge">if</code> field accepts <code class="language-plaintext highlighter-rouge">mcp__server__tool</code>, and a new handler type <code class="language-plaintext highlighter-rouge">mcp_tool</code> calls an MCP tool directly.</p>

<h3 id="roughly-twenty-new-environment-variables">Roughly twenty new environment variables</h3>

<p>Among others: <code class="language-plaintext highlighter-rouge">CLAUDE_CODE_NO_FLICKER</code> (alt-screen rendering on by default since v2.1.89), <code class="language-plaintext highlighter-rouge">CLAUDE_CODE_HIDE_CWD</code>, <code class="language-plaintext highlighter-rouge">CLAUDE_CODE_USE_MANTLE</code> (Bedrock via Mantle), <code class="language-plaintext highlighter-rouge">CLAUDE_CODE_CERT_STORE</code>, <code class="language-plaintext highlighter-rouge">CLAUDE_CODE_SUBPROCESS_ENV_SCRUB</code> (Linux PID namespace isolation), <code class="language-plaintext highlighter-rouge">CLAUDE_CODE_SCRIPT_CAPS</code>, <code class="language-plaintext highlighter-rouge">CLAUDE_CODE_PERFORCE_MODE</code>, <code class="language-plaintext highlighter-rouge">ENABLE_PROMPT_CACHING_1H</code>, <code class="language-plaintext highlighter-rouge">FORCE_PROMPT_CACHING_5M</code>, <code class="language-plaintext highlighter-rouge">ENABLE_TOOL_SEARCH</code>, <code class="language-plaintext highlighter-rouge">OTEL_LOG_TOOL_DETAILS</code>, <code class="language-plaintext highlighter-rouge">DISABLE_UPDATES</code>. Seven new <code class="language-plaintext highlighter-rouge">settings.json</code> fields too: <code class="language-plaintext highlighter-rouge">prUrlTemplate</code>, <code class="language-plaintext highlighter-rouge">sandbox.failIfUnavailable</code>, <code class="language-plaintext highlighter-rouge">disableSkillShellExecution</code>, <code class="language-plaintext highlighter-rouge">showThinkingSummaries</code> (off in interactive mode since v2.1.86), <code class="language-plaintext highlighter-rouge">statusLine.refreshInterval</code>.</p>

<h3 id="redesigned-desktop-app-april-14">Redesigned Desktop app (April 14)</h3>

<p>Multi-session sidebar, drag-and-drop pane layout, integrated terminal, file editor with HTML/PDF preview, rebuilt diff viewer. <code class="language-plaintext highlighter-rouge">/desktop</code> transfers a session from the CLI to the app. Computer Use also works from the Desktop app on macOS and Windows.</p>

<h3 id="claude-code-on-the-web">Claude Code on the web</h3>

<p><code class="language-plaintext highlighter-rouge">claude.ai/code</code> in research preview for Pro and Max subscribers: cloud infrastructure, persistent sessions from mobile, <code class="language-plaintext highlighter-rouge">/teleport</code> to resume locally.</p>

<h3 id="defaults-that-flipped">Defaults that flipped</h3>

<ul>
  <li>Flicker-free rendering (alt-screen) <strong>on</strong> by default (v2.1.89)</li>
  <li>OS CA certificate store <strong>trusted</strong> by default (v2.1.101), no more manual setup for enterprise TLS proxies</li>
  <li>Thinking summaries <strong>off</strong> by default in interactive mode (v2.1.86)</li>
  <li>Default effort: <code class="language-plaintext highlighter-rouge">high</code> on API-key / Bedrock / Vertex / Team / Enterprise, <code class="language-plaintext highlighter-rouge">xhigh</code> for Opus 4.7 users</li>
</ul>

<hr />

<p>Official sources: <a href="https://code.claude.com/docs/en/changelog">Claude Code Changelog</a>, <a href="https://code.claude.com/docs/en/whats-new">What’s New</a> (weeks <a href="https://code.claude.com/docs/en/whats-new/2026-w13">W13</a>, <a href="https://code.claude.com/docs/en/whats-new/2026-w14">W14</a>, <a href="https://code.claude.com/docs/en/whats-new/2026-w15">W15</a>), <a href="https://platform.claude.com/docs/en/about-claude/models/whats-new-claude-4-7">Opus 4.7 notes</a>, <a href="https://code.claude.com/docs/en/computer-use">Computer Use</a>, <a href="https://www.anthropic.com/engineering/claude-code-auto-mode">Auto Mode</a>.</p>

<p>If you spot an error or a missing feature, please reach out. I’ll keep this cheatsheet updated as Claude Code evolves.</p>
]]></content:encoded>
        <pubDate>Fri, 24 Apr 2026 00:00:00 +0200</pubDate>
        <link>https://angelo-lima.fr/en/claude-code-cheatsheet-april-2026-update/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/en/claude-code-cheatsheet-april-2026-update/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Development</category>
          
          <category>Claude Code</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/claude-code.webp" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>Understanding, measuring and controlling LLM hallucinations</title>
        <description>
          
            A write-up of Aygalic Jara&apos;s talk (SCIAM / LISN) at Devoxx France 2026: why LLMs hallucinate, how to measure it, and practical strategies to keep it under control in production.
          
        </description>
        <content:encoded><![CDATA[<p>Thursday 23 April 2026, 3:40 PM, Palais des Congrès. <strong>Aygalic Jara</strong>, consultant and PhD candidate at SCIAM under a CIFRE agreement with LISN (Laboratoire Interdisciplinaire des Sciences du Numérique), gave a talk whose title summed up the whole programme: <em>“LLMs and hallucinations: understanding, measuring, controlling”</em>. Room packed, topic hot. It sits at the core of his PhD work, of which a first state-of-the-art paper was published in 2025 at the JEP-TALN-RECITAL conference under the title <em>“State of the art: evaluation, detection and mitigation of LLM hallucinations”</em>.</p>

<p>LLM hallucinations are not a one-off bug that an update could patch away. They are a structural consequence of how these models actually work. That was Aygalic’s thesis, and it is the thread I pick up here by mixing parts of his presentation, a few academic references implicitly mobilised during the talk, and the current landscape of French research on the topic.</p>

<h2 id="two-families-of-hallucinations">Two families of hallucinations</h2>

<p>A useful first reflex: distinguish two broad types of hallucinations, which neither share the same causes nor the same remedies.</p>

<ul>
  <li><strong>Factuality hallucinations</strong>: the model states information that is simply wrong (a date, a name, a made-up citation, a case law that does not exist).</li>
  <li><strong>Predictability (or faithfulness) hallucinations</strong>: the model produces an output that is inconsistent with the context, the instructions, or the sources provided — even if it could be factually correct elsewhere.</li>
</ul>

<p>The distinction is not only academic. It shapes the defence strategy: you don’t protect a legal RAG system against a wild date the same way you protect it against a reply that drifts from the contract it was asked to read.</p>

<h2 id="where-hallucinations-come-from">Where hallucinations come from</h2>

<p>Two big sources, well documented by recent literature (<a href="https://arxiv.org/abs/2311.05232">Huang et al. 2023</a>, among others):</p>

<p><strong>From data.</strong> The model is trained on a corpus frozen in time — its <em>cut-off date</em>. As soon as the world moves (regulation, position, product, executive), the model stays put. The older or sparser the data, the more likely the fabrications.</p>

<p><strong>From the next-token prediction mechanism.</strong> An LLM doesn’t <em>know</em> anything in the strict sense. It optimises a conditional probability, one token at a time. And this mechanism is made worse by a bias we often underestimate: <strong>sycophancy</strong>. Post-training (RLHF and relatives) teaches the model to be helpful, to produce an answer. Faced with a question it doesn’t know the answer to, it would rather invent than disappoint.</p>

<p>That’s the point I kept thinking about: a significant share of hallucinations comes literally from the fact that we taught the model to <em>want to help</em>. Sycophancy is a property we explicitly want at RLHF time, and its side effects are precisely the hallucinations we’d like to remove afterwards.</p>

<h2 id="fundamental-limits-to-accept">Fundamental limits to accept</h2>

<p>No LLM can remember everything. As you feed it more, it has to compress, forget, prioritise. That mechanically produces factuality errors on niche topics, recent events, or fine-grained data.</p>

<p>The first reflex, and the right one, is to <strong>provide the required context at query time</strong> rather than expect the model to carry it in its weights. That’s the heart of <em>context engineering</em>, and it’s the principle behind RAG and all its variants (agentic RAG, Self-RAG, etc.). But nothing is free: building a RAG pipeline is expensive, and a growing context mechanically degrades performance just by its size.</p>

<p>The second avenue is teaching the model to <strong>say “I don’t know”</strong>. That’s the idea behind <em>R-tuning</em>: build fine-tuning datasets where the right answer is abstention. The problem is that, pushed too far, the model can end up refusing to answer anything. Like every technical trade-off, you have to find the sweet spot, and it depends on the use case.</p>

<h2 id="the-pyramid-of-hallucination-robustness">The pyramid of hallucination robustness</h2>

<p>Aygalic proposed a reading grid in five levels, each covering a family of defences. The lower levels are the most fundamental. The upper ones kick in when the previous ones weren’t enough.</p>

<p><strong>1. Training techniques.</strong> Corpus quality, RLHF, fine-tuning, R-tuning, distillation. This is the foundation everything else rests on.</p>

<p><strong>2. Context Engineering.</strong> Prompt engineering, context optimisation, RAG and variants. You hand the model the material it needs to answer correctly.</p>

<p><strong>3. Post-Gen quality control.</strong> Once the answer is generated, you validate it: external fact-checking, source attribution, self-verification, consistency checks. This is where guardrails and <em>groundedness</em> scores come in.</p>

<p><strong>4. Agentic orchestration.</strong> You move past the single call to the model: function &amp; tool calling, agentic RAG, multi-agent architectures, reflection agents. You split the work across several calls that check each other.</p>

<p><strong>5. Interpretability.</strong> The top of the pyramid, and the most technical level. It splits in two:</p>
<ul>
  <li>In the <strong>grey box</strong>, you do uncertainty quantification.</li>
  <li>In the <strong>white box</strong>, you do <em>probing</em> and attribution scoring.</li>
</ul>

<p><em>Probing</em> deserves a closer look. The idea, popularised notably by <a href="https://arxiv.org/abs/2304.13734">Azaria &amp; Mitchell (2023)</a> (“The Internal State of an LLM Knows When It’s Lying”), is to exploit the fact that an LLM often “knows” when it’s making things up: the information is present in its internal activations, but not in the generated output. You extract the transformer’s internal vectors between two layers and train a small logistic regression on top to predict, token by token, the probability of hallucination. On open models, you can go further: turn a neuron off to establish causation, identify problematic attention circuits, and so on. That’s the main advantage of open-weight models over closed ones, and it’s exactly the playground of current fundamental research.</p>

<h2 id="building-your-ai-system-three-axes">Building your AI system: three axes</h2>

<p>Beyond the pyramid, Aygalic proposed an operational framework in three axes, which also maps onto the structure of his state-of-the-art paper (evaluation / detection / mitigation):</p>

<ul>
  <li><strong>Prevention</strong>: how do you <em>limit</em> hallucinations upstream?</li>
  <li><strong>Detection</strong>: how do you <em>spot</em> the ones that slip through?</li>
  <li><strong>Residual handling</strong>: what do you do with hallucinations you couldn’t prevent? Automatic handling? Smart escalation to a human?</li>
</ul>

<p>None of these three columns is optional. A strategy that only tackles prevention stays blind to its own blind spots. A strategy that relies only on detection lets too many cases through in production.</p>

<h3 id="an-example-rag-stack-for-factual-prevention">An example RAG stack for factual prevention</h3>

<p>Aygalic presented a representative stack for an enterprise RAG pipeline:</p>
<ul>
  <li><strong>LlamaIndex</strong> for document indexing</li>
  <li><strong>Qdrant</strong> as the vector database</li>
  <li><strong>Cohere</strong> for embeddings</li>
  <li>An LLM at the end of the chain for generation</li>
</ul>

<p>Nothing revolutionary, but it is now a standardised base that avoids nasty surprises. Alternative on the <em>groundedness</em> verification side: <strong>Guardrails AI</strong> for a rule- and safety-oriented approach, and <strong>ragas</strong> for a quantitative <em>groundedness</em> score you can track over time.</p>

<h3 id="residual-handling-smart-escalation">Residual handling: smart escalation</h3>

<p>When everything else has failed (question too complex, forbidden, or a user explicitly asking for a human), you need to decide automatically when an operator should take over. It’s a layer that’s often neglected, even though it shapes how the whole system is perceived. In law, for example, that’s exactly what <strong>HalluGraph</strong> does, the tool built by Valentin Noël and the Devoteam team (<a href="https://www.devoteam.com/fr/news-and-pr/ia-droit-valentin-noel-et-lequipe-devoteam-primes-a-la-conference-aaai-2026-a-singapour-pour-leur-lutte-contre-les-hallucinations-des-llm/">awarded at AAAI 2026</a>): if the AI fails the knowledge graph consistency test, the system blocks the answer and requires human intervention.</p>

<h2 id="evaluate-continuously-or-dont-evaluate-at-all">Evaluate continuously, or don’t evaluate at all</h2>

<p>An AI system that isn’t evaluated continuously degrades silently. Aygalic distinguished several planes.</p>

<p><strong>Factuality.</strong> A series of benchmarks of increasing difficulty, usable as a thermometer from one generation to the next. The timeline speaks for itself:</p>

<table>
  <thead>
    <tr>
      <th>Benchmark</th>
      <th>Year</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>TriviaQA</td>
      <td>July 2017</td>
    </tr>
    <tr>
      <td>Natural Questions</td>
      <td>June 2019</td>
    </tr>
    <tr>
      <td>MMLU</td>
      <td>September 2020</td>
    </tr>
    <tr>
      <td>FreshQA</td>
      <td>October 2023</td>
    </tr>
    <tr>
      <td>GPQA</td>
      <td>November 2023</td>
    </tr>
    <tr>
      <td>MMLU Pro</td>
      <td>June 2024</td>
    </tr>
    <tr>
      <td>Humanity’s Last Exam</td>
      <td>January 2025</td>
    </tr>
  </tbody>
</table>

<p>Each benchmark is harder than the previous one. The progression says a lot about the difficulty race that structures research: as soon as a benchmark is <em>saturated</em> by frontier models, the community builds a more demanding one.</p>

<p><strong>Faithfulness.</strong></p>
<ul>
  <li><em>IFEval</em> for faithfulness to instructions and context (“write a summary in 25 sentences and 2 paragraphs”).</li>
  <li><em>Comprehensive RAG Benchmark (CRAG)</em> to measure the model’s ability to rely on sources and say “I don’t know” when the information isn’t there.</li>
  <li><em>Berkeley Function-Calling Leaderboard</em> for tool calling and parameter validation.</li>
</ul>

<p><strong>Practical use cases.</strong></p>
<ul>
  <li><em>τ-Bench</em> for business tasks (banking, telecom, retail, airline) with long context, databases and APIs.</li>
  <li><em>GDPval</em> (<a href="https://openai.com/index/gdpval/">OpenAI, September 2025</a>) for 44 high-value jobs (law, finance, engineering, healthcare…). A benchmark oriented towards reasoning and real deliverables (documents, slides, spreadsheets). A notable paper from late 2025 showed that some frontier models (Claude Opus 4.1, GPT-5) are approaching parity with human experts on GDPval tasks. A strong signal for where the market is heading.</li>
</ul>

<p><strong>Sub-systems.</strong></p>
<ul>
  <li><em>HalluEval 2.0</em> for hallucination detection specifically.</li>
  <li><em>IFEval</em>, <em>Berkeley Function Calling Leaderboard</em>, <em>FollowBench</em> for instruction following.</li>
  <li><em>XSTest</em> (Exaggerated Safety) and <em>JailbreakBench</em> / <em>HarmBench</em> for guardrail robustness.</li>
</ul>

<p><strong>Resources to watch.</strong></p>
<ul>
  <li><a href="https://artificialanalysis.ai">artificialanalysis.ai</a></li>
  <li><a href="https://arena.ai/leaderboard">arena.ai/leaderboard</a></li>
  <li><a href="https://llm-stats.com">llm-stats.com</a></li>
</ul>

<p>As a complement, the French benchmark <strong>Phare</strong> (Potential Harm Assessment &amp; Risk Evaluation), developed by <a href="https://www.silicon.fr/data-ia-1372/llm-francais-biais-hallucinations-226679">Giskard in partnership with Google DeepMind</a>, evaluates LLM robustness to hallucinations, biases and jailbreaks, including in French. That point matters: the main LLMs are often more robust in English than in French, and the gap is not small.</p>

<h2 id="the-bigger-is-always-better-trap-inverse-scaling-laws">The “bigger is always better” trap: <em>inverse scaling laws</em></h2>

<p>That’s the bonus Aygalic ended on, and probably the most counter-intuitive point of the talk. We live with the idea that the bigger a model, the more capable it is, and that’s broadly true under the classical <em>scaling laws</em> (test loss decreasing linearly as a function of compute, dataset size, parameter count).</p>

<p>But a stranger phenomenon shows up on some tasks: <strong>inverse scaling</strong>. Not all capabilities of a model evolve at the same pace as it grows, and some actually <em>regress</em>. The <em>Memo Trap</em> benchmark is a textbook case: several model families (Anthropic, Chinchilla, Gopher, GPT-2/3/4, OPT, PaLM…) see their accuracy <em>drop</em> as FLOPs go up.</p>

<p>One interpretation: the bigger a model, the more Twitter, Reddit and general noise it has ingested. It knows the right answers <em>and</em> every wrong variant floating around the web. It becomes more <em>talkative</em> without being more <em>accurate</em>. The Phare benchmark results point in the same direction: model size does not predict robustness, and small models sometimes resist better, in particular against encoding attacks where their “inability to decode protects them”, according to Giskard’s analysis.</p>

<p>The practical consequence is strong: <strong>picking your model is not picking the biggest one</strong>. For certain use cases, especially sensitive ones where <em>robustness</em> matters more than <em>virtuosity</em>, a small specialised model often behaves better. Less error surface, less “toxic culture” internalised, and an inference cost that allows richer architectures (multi-agent, cross-verification). The right reflex is to benchmark carefully on your task rather than trust the global leaderboard.</p>

<h2 id="takeaways">Takeaways</h2>

<p>To keep hallucinations under control in a production system, the plan is actually fairly simple to state, and just as hard to execute:</p>

<ul>
  <li><strong>Know the fundamental limits of LLMs</strong>: their predictive nature, their sycophancy, their frozen corpus. Never treat them as oracles.</li>
  <li><strong>Evaluate your system continuously</strong>, at several levels (factuality, faithfulness, use cases, sub-systems), with a permanent adjustment loop. An unmeasured system is a drifting system.</li>
  <li><strong>Put in place the right prevention strategies for your use case</strong>: context engineering, function calling, message checks, guardrails. No single brick is enough on its own, none is free, but their composition, designed around the use case and honestly measured, is currently the most serious way to build systems that hallucinate less, and that know what to do when they still do.</li>
</ul>

<p>The regulatory context pushes in the same direction. The European AI Act, whose rollout spans 2025-2027, classifies a growing number of uses as “high-risk” and imposes robustness, accuracy and human-oversight requirements. Hallucinations are no longer only a technical problem: they’re becoming a compliance problem.</p>

<hr />

<h2 id="further-reading">Further reading</h2>

<ul>
  <li><strong>Aygalic Jara’s state-of-the-art paper</strong>: <em>“État de l’art : évaluation, détection et mitigation des hallucinations des LLMs”</em>, JEP-TALN-RECITAL 2025. <a href="https://aclanthology.org/2025.jeptalnrecital-recital.7.pdf">PDF on ACL Anthology</a>.</li>
  <li><strong>The reference survey</strong>: Huang et al. (2023), <em>A Survey on Hallucination in Large Language Models</em>. <a href="https://arxiv.org/abs/2311.05232">arXiv:2311.05232</a>.</li>
  <li><strong>On probing</strong>: Azaria &amp; Mitchell (2023), <em>The Internal State of an LLM Knows When It’s Lying</em>.</li>
  <li><strong>On self-critical RAG</strong>: Asai et al. (2023), <em>Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection</em>. <a href="https://arxiv.org/abs/2310.11511">arXiv:2310.11511</a>.</li>
  <li><strong>HalluGraph</strong> (Devoteam, AAAI 2026): a knowledge-graph approach to legal verification.</li>
  <li><strong>Phare benchmark</strong> (Giskard × Google DeepMind): LLM robustness evaluation including French.</li>
</ul>

<hr />

<p><em>Devoxx France 2026 — 14th edition, Palais des Congrès de Paris, 22-24 April 2026.</em></p>
]]></content:encoded>
        <pubDate>Thu, 23 Apr 2026 00:00:00 +0200</pubDate>
        <link>https://angelo-lima.fr/en/llm-hallucinations-devoxx-2026-en/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/en/llm-hallucinations-devoxx-2026-en/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Development</category>
          
          <category>Tech</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/hallucinations-llm-devoxx-2026.png" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>Comprendre, mesurer et maîtriser les hallucinations des LLMs</title>
        <description>
          
            Compte-rendu du talk d&apos;Aygalic Jara (SCIAM / LISN) à Devoxx France 2026 : pourquoi les LLMs hallucinent, comment mesurer le phénomène, et les stratégies concrètes pour le maîtriser en production.
          
        </description>
        <content:encoded><![CDATA[<p>Jeudi 23 avril 2026, 15h40, Palais des Congrès. <strong>Aygalic Jara</strong>, consultant doctorant chez SCIAM en thèse CIFRE avec le LISN (Laboratoire Interdisciplinaire des Sciences du Numérique), a présenté un talk dont le titre résumait tout le programme : <em>“LLMs et hallucinations : comprendre, mesurer, maîtriser”</em>. Salle pleine, sujet brûlant. Le sujet est au cœur de ses travaux de thèse, dont un premier article d’état de l’art a été publié en 2025 aux journées JEP-TALN-RECITAL sous le titre <em>“État de l’art : évaluation, détection et mitigation des hallucinations des LLMs”</em>.</p>

<p>Les hallucinations des LLMs ne sont pas un bug ponctuel qu’une mise à jour pourrait corriger. Elles sont une conséquence structurelle du fonctionnement même de ces modèles. C’est la thèse que défendait Aygalic, et c’est le fil que je déroule ici en mélangeant ses éléments de présentation, quelques références académiques mobilisées implicitement pendant le talk, et le contexte actuel de la recherche française sur le sujet.</p>

<h2 id="deux-familles-dhallucinations">Deux familles d’hallucinations</h2>

<p>Premier réflexe utile : distinguer deux grands types d’hallucinations, qui n’ont ni les mêmes causes ni les mêmes remèdes.</p>

<ul>
  <li>Les <strong>hallucinations de factualité</strong> : le modèle énonce une information fausse dans l’absolu (une date, un nom, une citation inventée, une jurisprudence qui n’existe pas).</li>
  <li>Les <strong>hallucinations de prédictibilité</strong> (ou de fidélité) : le modèle produit une sortie incohérente avec le contexte, les instructions ou les sources fournies, même si elle pourrait être factuellement correcte par ailleurs.</li>
</ul>

<p>Cette distinction n’est pas qu’académique. Elle détermine la stratégie de défense : on ne protège pas un système RAG juridique contre une date fantaisiste comme on le protège contre une réponse qui s’écarte du contrat qu’on lui a donné à lire.</p>

<h2 id="doù-viennent-les-hallucinations">D’où viennent les hallucinations</h2>

<p>Deux grandes sources, bien documentées par la littérature récente (<a href="https://arxiv.org/abs/2311.05232">Huang et al. 2023</a>, parmi d’autres) :</p>

<p><strong>De la donnée.</strong> Le modèle est entraîné sur un corpus figé dans le temps — sa <em>cut-off date</em>. Dès que le monde bouge (réglementation, poste, produit, dirigeant), le modèle reste sur ses positions. Plus la donnée est ancienne ou absente du corpus, plus les inventions deviennent probables.</p>

<p><strong>Du mécanisme de prédiction du prochain token.</strong> Un LLM ne <em>sait</em> rien au sens propre. Il optimise une probabilité conditionnelle, token par token. Et ce mécanisme s’aggrave d’un biais qu’on sous-estime souvent : la <strong>complaisance</strong>. Le post-entraînement (RLHF et apparentés) enseigne au modèle à être serviable, à produire une réponse. Face à une question dont il ignore la réponse, il préfère encore inventer plutôt que de décevoir.</p>

<p>C’est ce point qui m’a le plus fait réfléchir : une part significative des hallucinations vient littéralement du fait qu’on a appris au modèle à <em>vouloir aider</em>. La complaisance est une propriété voulue au moment du RLHF, et ses effets de bord sont précisément les hallucinations qu’on voudrait lui retirer ensuite.</p>

<h2 id="les-limites-fondamentales-à-accepter">Les limites fondamentales à accepter</h2>

<p>Aucun LLM ne peut tout retenir. À mesure qu’on le nourrit, on doit compresser, oublier, hiérarchiser. De là viennent mécaniquement les erreurs de factualité sur les sujets de niche, les événements récents, ou les données fines.</p>

<p>Le premier réflexe, et c’est le bon, consiste à <strong>fournir le contexte nécessaire au moment de la requête</strong> plutôt qu’à exiger du modèle qu’il le porte dans ses poids. C’est le cœur du <em>context engineering</em>, et c’est le principe du RAG et de toutes ses variantes (RAG agentique, Self-RAG, etc.). Mais rien n’est gratuit : construire une pipeline RAG coûte cher, et un contexte qui grossit dégrade mécaniquement la performance à cause de sa taille même.</p>

<p>La deuxième piste consiste à apprendre au modèle à <strong>dire “je ne sais pas”</strong>. C’est l’idée du <em>R-tuning</em> : construire des jeux de fine-tuning où la bonne réponse est l’abstention. Sauf qu’à force, le modèle peut finir par refuser de répondre à tout. Comme pour tout compromis technique, il faut trouver le point d’équilibre, et il dépend du cas d’usage.</p>

<h2 id="la-pyramide-de-la-robustesse-aux-hallucinations">La pyramide de la robustesse aux hallucinations</h2>

<p>Aygalic a proposé une grille de lecture en cinq niveaux, chacun couvrant une famille de défenses. Les niveaux du bas sont les plus fondamentaux. Ceux du haut interviennent quand les précédents n’ont pas suffi.</p>

<p><strong>1. Techniques d’entraînement.</strong> Qualité du corpus, RLHF, fine-tuning, R-tuning, distillation. C’est le socle sur lequel tout le reste repose.</p>

<p><strong>2. Context Engineering.</strong> Prompt engineering, optimisation de contexte, RAG et variantes. On fournit au modèle la matière dont il a besoin pour répondre juste.</p>

<p><strong>3. Contrôle Qualité Post-Gen.</strong> Une fois la réponse générée, on la valide : fact-checking externe, attribution des sources, auto-vérification, vérification de cohérence. C’est ici qu’interviennent les guardrails et les scores de <em>groundedness</em>.</p>

<p><strong>4. Orchestration Agentique.</strong> On dépasse l’appel unique au modèle : function &amp; tool calling, RAG agentique, architectures multi-agents, agents de réflexion. On répartit le travail entre plusieurs appels qui se contrôlent mutuellement.</p>

<p><strong>5. Interprétabilité.</strong> Le sommet, et le niveau le plus technique. Il se découpe en deux :</p>
<ul>
  <li>En <strong>boîte grise</strong>, on fait de la quantification d’incertitude.</li>
  <li>En <strong>boîte blanche</strong>, on fait du <em>probing</em> et du scoring d’attribution.</li>
</ul>

<p>Le <em>probing</em> mérite qu’on s’y attarde. L’idée, popularisée notamment par <a href="https://arxiv.org/abs/2304.13734">Azaria &amp; Mitchell (2023)</a> (“The Internal State of an LLM Knows When It’s Lying”), est d’exploiter le fait qu’un LLM “sait” souvent quand il invente : l’information est présente dans ses activations internes, mais pas dans la sortie générée. On récupère donc les vecteurs internes du transformer entre deux couches et on entraîne une petite régression logistique dessus pour prédire, token par token, la probabilité d’hallucination. Sur modèles ouverts, on peut aller plus loin : éteindre un neurone pour établir une causalité, repérer les circuits d’attention problématiques, etc. C’est le principal avantage des modèles open-weights sur les modèles fermés, et c’est précisément le terrain de jeu de la recherche fondamentale actuelle.</p>

<h2 id="construire-son-système-ia--trois-axes">Construire son système IA : trois axes</h2>

<p>Au-delà de la pyramide, Aygalic proposait un cadre opérationnel en trois axes, qui recoupe d’ailleurs la structure de son article d’état de l’art (évaluation / détection / mitigation) :</p>

<ul>
  <li><strong>Prévention</strong> : comment <em>limiter</em> l’apparition des hallucinations en amont ?</li>
  <li><strong>Détection</strong> : comment <em>repérer</em> celles qui passent quand même ?</li>
  <li><strong>Gestion résiduelle</strong> : que fait-on des hallucinations qu’on n’a pas pu empêcher ? Gestion automatique ? Escalade intelligente vers un humain ?</li>
</ul>

<p>Aucune de ces trois colonnes n’est optionnelle. Une stratégie qui ne traite que la prévention reste aveugle à ses propres angles morts. Une stratégie qui se repose uniquement sur la détection laisse passer trop de cas en production.</p>

<h3 id="un-exemple-de-stack-rag-pour-la-prévention-factuelle">Un exemple de stack RAG pour la prévention factuelle</h3>

<p>Aygalic présentait une stack représentative pour une pipeline RAG d’entreprise :</p>
<ul>
  <li><strong>LlamaIndex</strong> pour l’indexation des documents</li>
  <li><strong>Qdrant</strong> comme base vectorielle</li>
  <li><strong>Cohere</strong> pour les embeddings</li>
  <li>Un LLM en bout de chaîne pour la génération</li>
</ul>

<p>Rien de révolutionnaire, mais c’est un socle maintenant standardisé qui évite les mauvaises surprises. Alternative sur la partie vérification de <em>groundedness</em> : <strong>Guardrails AI</strong> pour une approche orientée règles et <em>safety</em>, et <strong>ragas</strong> pour un scoring quantitatif de <em>groundedness</em> mesurable dans le temps.</p>

<h3 id="gestion-résiduelle--lescalade-intelligente">Gestion résiduelle : l’escalade intelligente</h3>

<p>Quand tout le reste a échoué (question trop complexe, interdite, ou utilisateur qui demande explicitement un humain), il faut décider automatiquement quand un opérateur doit prendre le relais. C’est une couche souvent négligée, alors qu’elle conditionne la qualité perçue de tout le système. Dans le droit, par exemple, c’est exactement ce que propose <strong>HalluGraph</strong>, l’outil développé par Valentin Noël et l’équipe Devoteam (<a href="https://www.devoteam.com/fr/news-and-pr/ia-droit-valentin-noel-et-lequipe-devoteam-primes-a-la-conference-aaai-2026-a-singapour-pour-leur-lutte-contre-les-hallucinations-des-llm/">primé à AAAI 2026</a>) : si l’IA échoue au test de cohérence par graphe de connaissances, le système bloque la réponse et exige une intervention humaine.</p>

<h2 id="évaluer-en-continu-ou-ne-rien-évaluer-du-tout">Évaluer en continu, ou ne rien évaluer du tout</h2>

<p>Un système IA qui n’est pas évalué en continu se dégrade en silence. Aygalic distinguait plusieurs plans.</p>

<p><strong>Factualité.</strong> Une série de benchmarks de difficulté croissante, qu’on peut utiliser comme thermomètre de génération en génération. La chronologie est parlante :</p>

<table>
  <thead>
    <tr>
      <th>Benchmark</th>
      <th>Année</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>TriviaQA</td>
      <td>Juillet 2017</td>
    </tr>
    <tr>
      <td>Natural Questions</td>
      <td>Juin 2019</td>
    </tr>
    <tr>
      <td>MMLU</td>
      <td>Septembre 2020</td>
    </tr>
    <tr>
      <td>FreshQA</td>
      <td>Octobre 2023</td>
    </tr>
    <tr>
      <td>GPQA</td>
      <td>Novembre 2023</td>
    </tr>
    <tr>
      <td>MMLU Pro</td>
      <td>Juin 2024</td>
    </tr>
    <tr>
      <td>Humanity’s Last Exam</td>
      <td>Janvier 2025</td>
    </tr>
  </tbody>
</table>

<p>Chaque benchmark est plus difficile que le précédent. L’évolution en dit long sur la course à la difficulté qui structure la recherche : dès qu’un benchmark est <em>saturé</em> par les modèles frontaliers, la communauté en construit un plus exigeant.</p>

<p><strong>Fidélité.</strong></p>
<ul>
  <li><em>IFEval</em> pour la fidélité aux instructions et au contexte (“écrire un résumé en 25 phrases et 2 paragraphes”).</li>
  <li><em>Comprehensive RAG Benchmark (CRAG)</em> pour mesurer la capacité du modèle à s’appuyer sur les sources et à dire “je ne sais pas” quand l’information n’y est pas.</li>
  <li><em>Berkeley Function-Calling Leaderboard</em> pour l’appel d’outils et la vérification des paramètres.</li>
</ul>

<p><strong>Cas d’usages pratiques.</strong></p>
<ul>
  <li><em>τ-Bench</em> pour des tâches métier (banking, telecom, retail, airline) avec long contexte, BDD et APIs.</li>
  <li><em>GDPval</em> (<a href="https://openai.com/index/gdpval/">OpenAI, septembre 2025</a>) pour 44 métiers à haute valeur économique (droit, finance, ingénierie, santé…). Benchmark orienté raisonnement et production de livrables réels (documents, slides, tableurs). Un papier marquant de cette fin d’année 2025 a montré que certains modèles frontaliers (Claude Opus 4.1, GPT-5) approchent la parité avec les experts humains sur les tâches GDPval. Signal fort pour l’évolution du marché.</li>
</ul>

<p><strong>Sous-systèmes.</strong></p>
<ul>
  <li><em>HalluEval 2.0</em> pour la détection d’hallucinations spécifiquement.</li>
  <li><em>IFEval</em>, <em>Berkeley Function Calling Leaderboard</em>, <em>FollowBench</em> pour le suivi d’instructions.</li>
  <li><em>XSTest</em> (Exaggerated Safety) et <em>JailbreakBench</em> / <em>HarmBench</em> pour la robustesse des guardrails.</li>
</ul>

<p><strong>Ressources à surveiller.</strong></p>
<ul>
  <li><a href="https://artificialanalysis.ai">artificialanalysis.ai</a></li>
  <li><a href="https://arena.ai/leaderboard">arena.ai/leaderboard</a></li>
  <li><a href="https://llm-stats.com">llm-stats.com</a></li>
</ul>

<p>À titre complémentaire, le benchmark français <strong>Phare</strong> (Potential Harm Assessment &amp; Risk Evaluation), développé par <a href="https://www.silicon.fr/data-ia-1372/llm-francais-biais-hallucinations-226679">Giskard en partenariat avec Google DeepMind</a>, évalue la robustesse des LLMs aux hallucinations, biais et jailbreaks, y compris en français. Point qui n’est pas anodin : les principaux LLMs sont souvent plus robustes en anglais qu’en français, et l’écart n’est pas négligeable.</p>

<h2 id="le-piège-du-plus-gros-est-toujours-mieux--les-inverse-scaling-laws">Le piège du “plus gros est toujours mieux” : les <em>inverse scaling laws</em></h2>

<p>C’est le bonus sur lequel Aygalic a fini, et c’est probablement le point le plus contre-intuitif du talk. On vit avec l’idée que plus un modèle est grand, plus il est performant, et c’est globalement vrai sur les <em>scaling laws</em> classiques (test loss qui décroît linéairement en fonction du compute, de la taille du dataset, du nombre de paramètres).</p>

<p>Mais un phénomène plus étrange apparaît sur certaines tâches : le <strong>scaling inverse</strong>. Toutes les capacités d’un modèle n’évoluent pas au même rythme quand on le fait grossir, et certaines <em>régressent</em>. Le benchmark <em>Memo Trap</em> est un cas d’école : on y voit plusieurs familles de modèles (Anthropic, Chinchilla, Gopher, GPT-2/3/4, OPT, PaLM…) dont la précision <em>diminue</em> à mesure que les FLOPs augmentent.</p>

<p>Une interprétation possible : plus un modèle est gros, plus il a ingéré de Twitter, de Reddit, et globalement de bruit. Il connaît les bonnes réponses <em>et</em> toutes les variantes fausses qui circulent sur le web. Il devient plus <em>bavard</em> sans être toujours plus <em>juste</em>. Les résultats du benchmark Phare cité plus haut vont dans le même sens : la taille du modèle ne prédit pas sa robustesse, et les petits modèles sont parfois plus résistants, notamment sur les attaques par encodage où leur “incapacité à décoder les protège”, selon l’analyse de Giskard.</p>

<p>La conséquence pratique est forte : <strong>choisir son modèle ne revient pas à prendre le plus gros</strong>. Pour certains cas d’usage, surtout les cas sensibles où la <em>robustesse</em> compte plus que la <em>virtuosité</em>, un petit modèle spécialisé se comporte souvent mieux. Moins de surface d’erreur, moins de “culture toxique” intériorisée, et un coût d’inférence qui permet des architectures plus riches (multi-agents, vérification croisée). Le bon réflexe est de benchmarker finement sur sa tâche plutôt que de se fier au classement général.</p>

<h2 id="ce-quil-faut-retenir">Ce qu’il faut retenir</h2>

<p>Pour maîtriser les hallucinations sur un système en production, le plan est finalement assez simple à énoncer, et tout aussi difficile à exécuter :</p>

<ul>
  <li><strong>Connaître les limites fondamentales des LLMs</strong> : leur nature prédictive, leur complaisance, leur corpus figé. Ne jamais les traiter comme des oracles.</li>
  <li><strong>Évaluer son système en continu</strong>, à plusieurs niveaux (factualité, fidélité, cas d’usage, sous-systèmes), avec une boucle permanente d’ajustement. Un système non mesuré est un système qui dérive.</li>
  <li><strong>Mettre en place les bonnes stratégies de prévention pour son cas d’usage</strong> : context engineering, function calling, vérification des messages, guardrails. Aucune brique n’est suffisante seule, aucune n’est gratuite, mais leur composition, pensée en fonction du cas d’usage et mesurée honnêtement, reste aujourd’hui la voie la plus sérieuse pour construire des systèmes qui hallucinent moins, et qui savent quoi faire quand ils hallucinent quand même.</li>
</ul>

<p>Le contexte réglementaire pousse d’ailleurs dans cette direction. L’AI Act européen, dont le déploiement s’étale sur 2025-2027, classifie un nombre croissant d’usages comme “à haut risque” et impose des exigences de robustesse, de précision et de supervision humaine. Les hallucinations ne sont plus seulement un problème technique : elles sont en train de devenir un problème de conformité.</p>

<hr />

<h2 id="pour-aller-plus-loin">Pour aller plus loin</h2>

<ul>
  <li><strong>L’article d’état de l’art d’Aygalic Jara</strong> : <em>“État de l’art : évaluation, détection et mitigation des hallucinations des LLMs”</em>, JEP-TALN-RECITAL 2025. <a href="https://aclanthology.org/2025.jeptalnrecital-recital.7.pdf">PDF sur ACL Anthology</a>.</li>
  <li><strong>Le survey de référence</strong> : Huang et al. (2023), <em>A Survey on Hallucination in Large Language Models</em>. <a href="https://arxiv.org/abs/2311.05232">arXiv:2311.05232</a>.</li>
  <li><strong>Sur le probing</strong> : Azaria &amp; Mitchell (2023), <em>The Internal State of an LLM Knows When It’s Lying</em>.</li>
  <li><strong>Sur le RAG auto-critique</strong> : Asai et al. (2023), <em>Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection</em>. <a href="https://arxiv.org/abs/2310.11511">arXiv:2310.11511</a>.</li>
  <li><strong>HalluGraph</strong> (Devoteam, AAAI 2026) : une approche par graphes de connaissances pour la vérification juridique.</li>
  <li><strong>Benchmark Phare</strong> (Giskard × Google DeepMind) : évaluation de la robustesse des LLMs incluant le français.</li>
</ul>

<hr />

<p><em>Devoxx France 2026 — 14ᵉ édition, Palais des Congrès de Paris, 22-24 avril 2026.</em></p>
]]></content:encoded>
        <pubDate>Thu, 23 Apr 2026 00:00:00 +0200</pubDate>
        <link>https://angelo-lima.fr/fr/hallucinations-llm-devoxx-2026/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/fr/hallucinations-llm-devoxx-2026/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Développement</category>
          
          <category>Tech</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/hallucinations-llm-devoxx-2026.png" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>SDD, Compound Engineering, BMAD : Quelle philosophie de travail avec l&apos;IA choisir ?</title>
        <description>
          
            Cartographie des approches structurées pour le développement assisté par IA — et pourquoi les combiner est probablement la bonne réponse
          
        </description>
        <content:encoded><![CDATA[<p>Le vibe coding a démocratisé le développement assisté par IA. Mais en 2026, le constat est unanime : <strong>ça ne scale pas</strong>. Les projets sérieux exigent plus de structure. Trois familles d’approches ont émergé pour répondre à ce besoin — et chacune attaque le problème sous un angle différent.</p>

<p>Cet article propose une cartographie comparative de ces approches, avec des pistes concrètes pour choisir — ou combiner.</p>

<h2 id="le-problème--pourquoi-le-vibe-coding-atteint-un-mur">Le problème : pourquoi le vibe coding atteint un mur</h2>

<p>Le terme <a href="https://en.wikipedia.org/wiki/Vibe_coding">vibe coding</a>, popularisé par Andrej Karpathy début 2025, décrit un workflow où le développeur délègue la génération de code à l’IA via du langage naturel, sans structuration formelle des exigences.</p>

<p>Le problème est documenté et mesurable. Selon une <a href="https://www.augmentcode.com/tools/best-spec-driven-development-tools">analyse d’Augment Code</a> portant sur des équipes utilisant le développement assisté par IA, le vibe coding atteint un mur documenté autour de trois mois, lorsque la dette technique s’accumule de manière significative. Une <a href="https://qubittool.com/blog/spec-coding-complete-guide">étude de GitClear</a> analysant 211 millions de lignes de code révèle que depuis la généralisation des outils IA, le taux de copier-coller de code a augmenté de 48%, tandis que les activités de refactoring ont chuté de 60%.</p>

<p>Quand la fenêtre de contexte se remplit, l’IA perd le fil : oubli des exigences précédentes, régressions logiques, hallucinations sur l’architecture. Le code review devient impossible sans spécification de référence.</p>

<p>Trois familles de solutions ont émergé.</p>

<hr />

<h2 id="1-spec-driven-development-sdd--cadrer-linput">1. Spec-Driven Development (SDD) : cadrer l’input</h2>

<h3 id="le-principe">Le principe</h3>

<p>Le SDD part d’un constat simple : <strong>la qualité de l’output de l’IA dépend directement de la qualité de l’input</strong>. Si vous cadrez suffisamment ce que vous demandez — via une spécification formelle — le résultat sera prédictible et traçable.</p>

<p>Selon <a href="https://en.wikipedia.org/wiki/Spec-driven_development">Wikipedia</a>, le SDD est une méthodologie où la spécification formelle sert de source de vérité principale, dont découlent l’implémentation, les tests et la documentation. Les racines remontent aux workflows NASA des années 1960 et aux premières méthodes formelles.</p>

<p>En pratique, le cycle de vie SDD suit quatre phases : <strong>Spécifier → Planifier → Implémenter → Valider</strong>.</p>

<h3 id="les-outils">Les outils</h3>

<table>
  <thead>
    <tr>
      <th>Outil</th>
      <th>Éditeur</th>
      <th>Philosophie</th>
      <th>Adapté à</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong><a href="https://openspec.pro/">OpenSpec</a></strong></td>
      <td>Fission-AI</td>
      <td>Léger, 3 phases (propose → apply → archive), marqueurs delta</td>
      <td>Brownfield, itération sur l’existant</td>
    </tr>
    <tr>
      <td><strong><a href="https://speckit.org/">Spec Kit</a></strong></td>
      <td>GitHub</td>
      <td>Strict, 4 phases séquentielles avec gates</td>
      <td>Greenfield, projets structurés</td>
    </tr>
    <tr>
      <td><strong><a href="https://kiro.dev/">Kiro</a></strong></td>
      <td>AWS</td>
      <td>Puissant, intégré à leur IDE</td>
      <td>Écosystème AWS, équipes verrouillées</td>
    </tr>
    <tr>
      <td><strong><a href="https://ai-devkit.com/">AI DevKit</a></strong></td>
      <td>codeaholicguy</td>
      <td>Scaffolding + mémoire persistante via MCP</td>
      <td>Workflows multi-sessions</td>
    </tr>
  </tbody>
</table>

<p><strong>OpenSpec</strong> se distingue par son mécanisme d’isolation des changements. Chaque feature vit dans un dossier <code class="language-plaintext highlighter-rouge">changes/</code> indépendant avec des marqueurs delta (<code class="language-plaintext highlighter-rouge">ADDED</code>/<code class="language-plaintext highlighter-rouge">MODIFIED</code>/<code class="language-plaintext highlighter-rouge">REMOVED</code>), fusionné dans les specs principales uniquement à l’archivage. C’est le plus adapté au brownfield — ce qui représente la majorité des projets réels.</p>

<p><strong>Spec Kit</strong> (GitHub) est plus structuré et prescriptif. Le workflow <code class="language-plaintext highlighter-rouge">/specify</code> → <code class="language-plaintext highlighter-rouge">/plan</code> → <code class="language-plaintext highlighter-rouge">/tasks</code> → <code class="language-plaintext highlighter-rouge">/implement</code> impose des checkpoints explicites. Plus adapté au greenfield, mais l’overhead peut dépasser le bénéfice sur des petites features.</p>

<p><strong>AI DevKit</strong> apporte une couche intéressante que les autres n’ont pas : un <a href="https://ai-devkit.com/faq/ai-devkit-vs-spec-kit/">système de mémoire persistante</a> avec stockage et recherche via MCP ou CLI. Les deux ne sont d’ailleurs pas mutuellement exclusifs — AI DevKit peut fournir la fondation workflow tandis que Spec Kit apporte la discipline spec-first.</p>

<h3 id="forces-et-limites-du-sdd">Forces et limites du SDD</h3>

<p><strong>Forces :</strong></p>
<ul>
  <li>Traçabilité spec → code → tests</li>
  <li>Réduction mesurable des hallucinations (le scope contraint réduit l’ambiguïté)</li>
  <li>Compatible avec les pratiques de code review existantes</li>
  <li>Les specs sont versionnées, auditables</li>
</ul>

<p><strong>Limites :</strong></p>
<ul>
  <li>Le <strong>spec drift</strong> est inhérent — la dérive entre spec et implémentation est <a href="https://www.thoughtworks.com/en-us/insights/blog/agile-engineering-practices/spec-driven-development-unpacking-2025-new-engineering-practices">difficile à éviter</a> selon Thoughtworks</li>
  <li>Overhead d’écriture des specs sur les petites features</li>
  <li><strong>Ne capitalise pas sur les apprentissages</strong> — les specs décrivent <em>ce qu’on veut</em>, pas <em>ce qu’on a appris en le construisant</em></li>
</ul>

<p>Ce dernier point est crucial. C’est la lacune structurelle du SDD pur.</p>

<hr />

<h2 id="2-compound-engineering--capitaliser-sur-laccumulation">2. Compound Engineering : capitaliser sur l’accumulation</h2>

<h3 id="le-principe-1">Le principe</h3>

<p>Le <a href="https://every.to/chain-of-thought/compound-engineering-how-every-codes-with-agents">Compound Engineering</a>, développé par Every, Inc. (Dan Shipper &amp; Kieran Klaassen, décembre 2025), part d’une observation inverse : dans le développement traditionnel, chaque feature rend la suivante plus difficile (dette technique, edge cases, interdépendances). Le compound engineering inverse cette dynamique — <strong>chaque unité de travail doit rendre les suivantes plus faciles</strong>.</p>

<p>Comment ? En créant une boucle d’apprentissage où chaque bug, test échoué ou insight de résolution est documenté et réutilisé par les agents et l’équipe future.</p>

<h3 id="la-boucle">La boucle</h3>

<p>Le workflow est en quatre phases :</p>

<ol>
  <li><strong>Plan</strong> — Comprendre le requirement, rechercher les approches, synthétiser un plan d’implémentation détaillé</li>
  <li><strong>Work</strong> — Les agents écrivent le code et les tests selon le plan</li>
  <li><strong>Review</strong> — Validation humaine du résultat</li>
  <li><strong>Compound</strong> — <em>(C’est ici que tout se joue)</em> — Documenter les learnings, les patterns découverts, les erreurs à ne pas reproduire</li>
</ol>

<p>C’est la quatrième étape qui différencie le compound engineering. Sans elle, vous faites du développement traditionnel assisté par IA. Avec elle, votre base de connaissances s’enrichit à chaque cycle.</p>

<p>La méthodologie alloue <a href="https://reading.torqsoftware.com/notes/software/ai-ml/agentic-coding/2026-01-19-compound-engineering-claude-code/">80% du temps développeur à la planification et la review</a>, les 20% restants au work et au compound. Le développeur devient un orchestrateur et un arbitre de qualité.</p>

<h3 id="battle-tested">Battle-tested</h3>

<p>Ce qui donne du poids à cette approche : Every gère cinq produits en interne, chacun principalement construit et maintenu par une seule personne, utilisés par des milliers d’utilisateurs quotidiennement. Le <a href="https://github.com/every-engineering/compound-engineering">plugin Claude Code</a> a dépassé les 7 000 stars sur GitHub.</p>

<h3 id="forces-et-limites">Forces et limites</h3>

<p><strong>Forces :</strong></p>
<ul>
  <li>Répond frontalement à la dette technique</li>
  <li>La connaissance s’accumule dans le repo (pas dans la tête du dev)</li>
  <li>Adapté au solo dev ou petite équipe</li>
  <li>Compatibilité naturelle avec les <code class="language-plaintext highlighter-rouge">CLAUDE.md</code>, <code class="language-plaintext highlighter-rouge">learnings/</code>, ADR</li>
</ul>

<p><strong>Limites :</strong></p>
<ul>
  <li>Pas de processus formel de spécification en amont</li>
  <li>Dépend de la discipline du développeur pour la phase “Compound”</li>
  <li>Moins adapté aux environnements réglementés nécessitant un audit trail</li>
</ul>

<hr />

<h2 id="3-bmad--simuler-une-équipe-agile-complète">3. BMAD : simuler une équipe agile complète</h2>

<h3 id="le-principe-2">Le principe</h3>

<p><a href="https://docs.bmad-method.org/">BMAD</a> (Breakthrough Method for Agile AI-Driven Development) pousse le curseur encore plus loin que le SDD. Au lieu de structurer l’interaction avec un seul agent, BMAD orchestre <strong>12+ agents spécialisés</strong> qui simulent une équipe agile complète : Analyst, Product Manager, Architect, Scrum Master, Developer, QA, UX Designer…</p>

<p>Le concept fondateur est l’<strong>Agent-as-Code</strong> : chaque agent est défini dans un fichier Markdown versionné, avec ses responsabilités, contraintes et outputs attendus. Portable, réutilisable, diffable dans les PRs.</p>

<h3 id="le-workflow">Le workflow</h3>

<p>Le pipeline BMAD suit la logique agile :</p>

<ol>
  <li><strong>Analyst</strong> → Crée un brief projet</li>
  <li><strong>PM</strong> → Produit un PRD (Product Requirements Document) basé sur le brief</li>
  <li><strong>Architect</strong> → Conçoit l’architecture basée sur le PRD</li>
  <li><strong>Scrum Master</strong> → Génère des stories détaillées pour le développement</li>
  <li><strong>Developer</strong> → Implémente story par story</li>
  <li><strong>QA</strong> → Valide contre les critères d’acceptance</li>
</ol>

<p>Des quality gates à chaque transition empêchent les problèmes de se cumuler d’un sprint à l’autre. Chaque agent produit un artefact vérifiable — pas juste une réponse dans le chat.</p>

<h3 id="forces-et-limites-1">Forces et limites</h3>

<p><strong>Forces :</strong></p>
<ul>
  <li>Couverture complète du SDLC</li>
  <li>Audit trail exhaustif (chaque artefact est versionné)</li>
  <li>Le “Party Mode” permet la collaboration entre agents dans une même session</li>
  <li>Extensible (Expansion Packs pour game dev, DevOps, etc.)</li>
</ul>

<p><strong>Limites :</strong></p>
<ul>
  <li><strong>Overhead considérable</strong> — la cérémonie multi-agents est lourde pour un dev solo</li>
  <li>Plus adapté au greenfield complexe ou à l’entreprise</li>
  <li>La qualité dépend fortement du modèle sous-jacent (certains LLMs peinent à <a href="https://medium.com/@visrow/what-is-bmad-method-a-simple-guide-to-the-future-of-ai-driven-development-412274f91419">parser correctement les fichiers Markdown structurés</a>)</li>
  <li><strong>Même lacune que le SDD</strong> : les artefacts sont des specs, pas des learnings</li>
</ul>

<hr />

<h2 id="comparatif-synthétique">Comparatif synthétique</h2>

<table>
  <thead>
    <tr>
      <th>Critère</th>
      <th>SDD (OpenSpec)</th>
      <th>Compound Engineering</th>
      <th>BMAD</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Problème résolu</strong></td>
      <td>Cadrer l’input IA</td>
      <td>Capitaliser les apprentissages</td>
      <td>Simuler une équipe agile</td>
    </tr>
    <tr>
      <td><strong>Philosophie</strong></td>
      <td>Contrat / spécification</td>
      <td>Boucle d’apprentissage</td>
      <td>Orchestration multi-agents</td>
    </tr>
    <tr>
      <td><strong>Overhead</strong></td>
      <td>Faible à modéré</td>
      <td>Faible</td>
      <td>Élevé</td>
    </tr>
    <tr>
      <td><strong>Adapté au solo dev</strong></td>
      <td>✅</td>
      <td>✅✅</td>
      <td>⚠️</td>
    </tr>
    <tr>
      <td><strong>Adapté à l’entreprise</strong></td>
      <td>✅</td>
      <td>✅</td>
      <td>✅✅</td>
    </tr>
    <tr>
      <td><strong>Brownfield</strong></td>
      <td>✅✅ (OpenSpec)</td>
      <td>✅✅</td>
      <td>⚠️</td>
    </tr>
    <tr>
      <td><strong>Greenfield</strong></td>
      <td>✅✅ (Spec Kit)</td>
      <td>✅</td>
      <td>✅✅</td>
    </tr>
    <tr>
      <td><strong>Capitalisation learnings</strong></td>
      <td>❌</td>
      <td>✅✅</td>
      <td>❌</td>
    </tr>
    <tr>
      <td><strong>Audit trail</strong></td>
      <td>✅✅</td>
      <td>✅</td>
      <td>✅✅✅</td>
    </tr>
    <tr>
      <td><strong>Gestion du spec drift</strong></td>
      <td>⚠️ Inhérent</td>
      <td>✅ (learnings capturent les écarts)</td>
      <td>⚠️ Inhérent</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="ma-thèse--ces-approches-se-combinent">Ma thèse : ces approches se combinent</h2>

<p>Voici le point que je ne vois abordé nulle part : <strong>le SDD et le Compound Engineering ne répondent pas au même problème</strong>. L’un mise sur l’input (cadrer ce qu’on demande à l’IA), l’autre sur l’accumulation (capitaliser ce qu’on apprend en le faisant). Les traiter comme des alternatives, c’est passer à côté de l’essentiel.</p>

<p>Le SDD seul ne répond pas à la problématique d’accumulation — qui à mon sens est un sujet qu’on se posait déjà bien avant l’IA, en documentant des Architecture Decision Records (ADR), des post-mortems, des runbooks.</p>

<p>Le Compound Engineering seul manque de la rigueur contractuelle du SDD pour les projets qui dépassent un certain seuil de complexité.</p>

<h3 id="un-workflow-combiné-possible">Un workflow combiné possible</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Spec (OpenSpec)          Compound (Every)
┌─────────────┐          ┌─────────────────┐
│ /opsx:propose │ ──────▶ │ Plan            │
│ proposal.md  │          │ (enrichi par     │
│ specs/       │          │  les learnings)  │
│ design.md    │          ├─────────────────┤
│ tasks.md     │          │ Work            │
└─────────────┘          │ (guidé par       │
                         │  les specs)      │
                         ├─────────────────┤
                         │ Review           │
                         ├─────────────────┤
                         │ Compound         │
                         │ → learnings.md   │
                         │ → CLAUDE.md      │
                         │ → patterns/      │
                         └────────┬────────┘
                                  │
                         ┌────────▼────────┐
                         │ /opsx:archive    │
                         │ specs → main     │
                         │ learnings        │
                         │ persistent       │
                         └─────────────────┘
</code></pre></div></div>

<p>L’idée :</p>
<ol>
  <li><strong>Spécifier</strong> avec OpenSpec quand la complexité le justifie (nouvelle feature significative, changement architectural)</li>
  <li><strong>Exécuter</strong> dans la boucle compound (Plan → Work → Review → Compound)</li>
  <li><strong>Capitaliser</strong> les learnings dans des fichiers persistants (<code class="language-plaintext highlighter-rouge">CLAUDE.md</code>, <code class="language-plaintext highlighter-rouge">learnings/</code>, ADR) que les specs futures pourront référencer</li>
  <li><strong>Archiver</strong> la spec OpenSpec et les learnings ensemble</li>
</ol>

<p>Les learnings enrichissent les futures specs. Les specs cadrent l’exécution. La boucle est vertueuse.</p>

<hr />

<h2 id="arbre-de-décision-pratique">Arbre de décision pratique</h2>

<p>Pour choisir votre approche, partez de votre contexte :</p>

<p><strong>Vous êtes seul ou en binôme sur un produit existant ?</strong>
→ Compound Engineering comme philosophie de base, OpenSpec quand un changement le justifie.</p>

<p><strong>Vous démarrez un projet greenfield structuré ?</strong>
→ Spec Kit ou OpenSpec pour la phase initiale, puis transition vers la boucle compound une fois le socle posé.</p>

<p><strong>Vous êtes dans un contexte réglementé ou entreprise avec audit trail ?</strong>
→ BMAD ou Spec Kit pour la couverture formelle, complété par les patterns compound pour la capitalisation.</p>

<p><strong>Vous expérimentez ou prototypez rapidement ?</strong>
→ Le vibe coding reste pertinent pour les 48 premières heures. Passez au compound engineering dès que le prototype doit évoluer.</p>

<p><strong>Vous travaillez avec Claude Code ?</strong>
→ Le compound engineering s’intègre naturellement via <code class="language-plaintext highlighter-rouge">CLAUDE.md</code> et les learnings. OpenSpec fonctionne via ses slash commands. Les deux cohabitent sans friction.</p>

<hr />

<h2 id="conclusion">Conclusion</h2>

<p>2025 était l’année du vibe coding. 2026 est l’année où l’on structure. Mais structurer ne veut pas dire choisir un camp — SDD <em>ou</em> compound engineering. Ce sont deux réponses complémentaires à deux problèmes distincts.</p>

<p>Le SDD répond à : <strong>“comment s’assurer que l’IA construit ce qu’on veut ?”</strong>
Le compound engineering répond à : <strong>“comment s’assurer que chaque cycle de travail enrichit le suivant ?”</strong></p>

<p>La question la plus intéressante est peut-être celle-ci : existe-t-il des solutions qui combinent nativement ces deux philosophies ? Je n’en ai pas trouvé à ce jour. C’est peut-être un espace à inventer.</p>

<hr />

<p><em>Cet article fait partie de mes réflexions sur le développement augmenté par l’IA. Pour aller plus loin sur les outils concrets, voir ma <a href="/fr/claude-code-installation-premiers-pas/">série sur Claude Code</a> et mon article sur <a href="/fr/entropie-homme-machine/">l’entropie homme-machine</a>.</em></p>

<h3 id="sources-et-lectures-complémentaires">Sources et lectures complémentaires</h3>

<ul>
  <li><a href="https://openspec.pro/">OpenSpec — Documentation officielle</a></li>
  <li><a href="https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/">Spec Kit — GitHub Blog</a></li>
  <li><a href="https://every.to/chain-of-thought/compound-engineering-how-every-codes-with-agents">Compound Engineering — Every.to</a></li>
  <li><a href="https://docs.bmad-method.org/">BMAD-METHOD — Documentation</a></li>
  <li><a href="https://ai-devkit.com/">AI DevKit — Site officiel</a></li>
  <li><a href="https://en.wikipedia.org/wiki/Spec-driven_development">Spec-Driven Development — Wikipedia</a></li>
  <li><a href="https://medium.com/aimonks/from-vibe-coding-to-spec-driven-development-where-does-compound-engineering-actually-fit-fcb27dbd2bf1">From Vibe Coding to SDD — AI Monks (Medium)</a></li>
  <li><a href="https://www.infoq.com/articles/spec-driven-development/">SDD: When Architecture Becomes Executable — InfoQ</a></li>
  <li><a href="https://www.thoughtworks.com/en-us/insights/blog/agile-engineering-practices/spec-driven-development-unpacking-2025-new-engineering-practices">Spec-driven development — Thoughtworks</a></li>
  <li><a href="https://qubittool.com/blog/spec-coding-complete-guide">Complete Guide to Spec Coding — QubitTool</a></li>
</ul>
]]></content:encoded>
        <pubDate>Sat, 04 Apr 2026 00:00:00 +0200</pubDate>
        <link>https://angelo-lima.fr/fr/sdd-compound-engineering-bmad-philosophies-ia/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/fr/sdd-compound-engineering-bmad-philosophies-ia/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Développement</category>
          
          <category>Claude Code</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/sdd-compound-engineering.webp" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>SDD, Compound Engineering, BMAD: Which AI Development Philosophy Should You Choose?</title>
        <description>
          
            Mapping structured approaches for AI-assisted development — and why combining them is probably the right answer
          
        </description>
        <content:encoded><![CDATA[<p>Vibe coding democratized AI-assisted development. But by 2026, the verdict is unanimous: <strong>it doesn’t scale</strong>. Serious projects demand more structure. Three families of approaches have emerged to fill that gap — each tackling the problem from a different angle.</p>

<p>This article maps these approaches comparatively, with concrete guidance on how to choose — or combine — them.</p>

<h2 id="the-problem-why-vibe-coding-hits-a-wall">The problem: why vibe coding hits a wall</h2>

<p>The term <a href="https://en.wikipedia.org/wiki/Vibe_coding">vibe coding</a>, popularized by Andrej Karpathy in early 2025, describes a workflow where the developer delegates code generation to an AI via natural language, without formally structuring requirements.</p>

<p>The problem is documented and measurable. According to an <a href="https://www.augmentcode.com/tools/best-spec-driven-development-tools">Augment Code analysis</a> of teams using AI-assisted development, vibe coding hits a documented wall around the three-month mark, when technical debt accumulates significantly. A <a href="https://qubittool.com/blog/spec-coding-complete-guide">GitClear study</a> analyzing 211 million lines of code found that since AI tools became widespread, copy-pasted code increased by 48% while refactoring activity dropped by 60%.</p>

<p>When the context window fills up, the AI loses the thread: forgotten requirements, logic regressions, architectural hallucinations. Code review becomes impossible without a reference specification.</p>

<p>Three families of solutions have emerged.</p>

<hr />

<h2 id="1-spec-driven-development-sdd-framing-the-input">1. Spec-Driven Development (SDD): framing the input</h2>

<h3 id="the-concept">The concept</h3>

<p>SDD starts from a simple observation: <strong>the quality of AI output directly depends on the quality of the input</strong>. If you sufficiently frame what you’re asking for — through a formal specification — the result becomes predictable and traceable.</p>

<p>According to <a href="https://en.wikipedia.org/wiki/Spec-driven_development">Wikipedia</a>, SDD is a methodology where the formal specification serves as the primary source of truth, from which implementation, tests, and documentation are derived. Its roots trace back to NASA’s workflows of the 1960s and the earliest formal methods.</p>

<p>In practice, the SDD lifecycle follows four phases: <strong>Specify → Plan → Implement → Validate</strong>.</p>

<h3 id="the-tools">The tools</h3>

<table>
  <thead>
    <tr>
      <th>Tool</th>
      <th>Maker</th>
      <th>Philosophy</th>
      <th>Best for</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong><a href="https://openspec.pro/">OpenSpec</a></strong></td>
      <td>Fission-AI</td>
      <td>Lightweight, 3 phases (propose → apply → archive), delta markers</td>
      <td>Brownfield, iteration on existing code</td>
    </tr>
    <tr>
      <td><strong><a href="https://speckit.org/">Spec Kit</a></strong></td>
      <td>GitHub</td>
      <td>Strict, 4 sequential phases with gates</td>
      <td>Greenfield, structured projects</td>
    </tr>
    <tr>
      <td><strong><a href="https://kiro.dev/">Kiro</a></strong></td>
      <td>AWS</td>
      <td>Powerful, integrated into their IDE</td>
      <td>AWS ecosystem, locked-in teams</td>
    </tr>
    <tr>
      <td><strong><a href="https://ai-devkit.com/">AI DevKit</a></strong></td>
      <td>codeaholicguy</td>
      <td>Scaffolding + persistent memory via MCP</td>
      <td>Multi-session workflows</td>
    </tr>
  </tbody>
</table>

<p><strong>OpenSpec</strong> stands out for its change isolation mechanism. Each feature lives in an independent <code class="language-plaintext highlighter-rouge">changes/</code> folder with delta markers (<code class="language-plaintext highlighter-rouge">ADDED</code>/<code class="language-plaintext highlighter-rouge">MODIFIED</code>/<code class="language-plaintext highlighter-rouge">REMOVED</code>), merged into the main specs only at archival time. It’s the most suited to brownfield work — which represents the majority of real-world projects.</p>

<p><strong>Spec Kit</strong> (GitHub) is more structured and prescriptive. The <code class="language-plaintext highlighter-rouge">/specify</code> → <code class="language-plaintext highlighter-rouge">/plan</code> → <code class="language-plaintext highlighter-rouge">/tasks</code> → <code class="language-plaintext highlighter-rouge">/implement</code> workflow enforces explicit checkpoints. Better suited for greenfield, though the overhead can outweigh the benefit on small features.</p>

<p><strong>AI DevKit</strong> brings an interesting layer the others lack: a <a href="https://ai-devkit.com/faq/ai-devkit-vs-spec-kit/">persistent memory system</a> with storage and retrieval via MCP or CLI. The two aren’t mutually exclusive either — AI DevKit can provide the workflow foundation while Spec Kit brings spec-first discipline.</p>

<h3 id="sdd-strengths-and-limitations">SDD: strengths and limitations</h3>

<p><strong>Strengths:</strong></p>
<ul>
  <li>Traceability from spec → code → tests</li>
  <li>Measurable reduction in hallucinations (constrained scope reduces ambiguity)</li>
  <li>Compatible with existing code review practices</li>
  <li>Specs are versioned and auditable</li>
</ul>

<p><strong>Limitations:</strong></p>
<ul>
  <li><strong>Spec drift</strong> is inherent — the gap between spec and implementation is <a href="https://www.thoughtworks.com/en-us/insights/blog/agile-engineering-practices/spec-driven-development-unpacking-2025-new-engineering-practices">hard to avoid</a> according to Thoughtworks</li>
  <li>Writing specs adds overhead for small features</li>
  <li><strong>Doesn’t capture accumulated learning</strong> — specs describe <em>what you want</em>, not <em>what you learned while building it</em></li>
</ul>

<p>That last point is critical. It’s the structural blind spot of pure SDD.</p>

<hr />

<h2 id="2-compound-engineering-capitalizing-on-accumulation">2. Compound Engineering: capitalizing on accumulation</h2>

<h3 id="the-concept-1">The concept</h3>

<p><a href="https://every.to/chain-of-thought/compound-engineering-how-every-codes-with-agents">Compound Engineering</a>, developed by Every, Inc. (Dan Shipper &amp; Kieran Klaassen, December 2025), starts from the opposite observation: in traditional development, each feature makes the next one harder (technical debt, edge cases, interdependencies). Compound engineering inverts this dynamic — <strong>each unit of work should make the next ones easier</strong>.</p>

<p>How? By creating a learning loop where every bug, failed test, or resolution insight is documented and reused by future agents and team members.</p>

<h3 id="the-loop">The loop</h3>

<p>The workflow has four phases:</p>

<ol>
  <li><strong>Plan</strong> — Understand the requirement, research approaches, synthesize a detailed implementation plan</li>
  <li><strong>Work</strong> — Agents write code and tests according to the plan</li>
  <li><strong>Review</strong> — Human validation of the result</li>
  <li><strong>Compound</strong> — <em>(This is where everything happens)</em> — Document learnings, discovered patterns, mistakes to avoid repeating</li>
</ol>

<p>It’s the fourth step that sets compound engineering apart. Without it, you’re just doing traditional AI-assisted development. With it, your knowledge base grows with every cycle.</p>

<p>The methodology allocates <a href="https://reading.torqsoftware.com/notes/software/ai-ml/agentic-coding/2026-01-19-compound-engineering-claude-code/">80% of developer time to planning and review</a>, leaving 20% for work and compounding. The developer becomes an orchestrator and quality arbiter.</p>

<h3 id="battle-tested">Battle-tested</h3>

<p>What gives this approach credibility: Every runs five internal products, each built and maintained primarily by a single person, used by thousands of daily users. The <a href="https://github.com/every-engineering/compound-engineering">Claude Code plugin</a> has surpassed 7,000 stars on GitHub.</p>

<h3 id="strengths-and-limitations">Strengths and limitations</h3>

<p><strong>Strengths:</strong></p>
<ul>
  <li>Directly addresses technical debt</li>
  <li>Knowledge accumulates in the repo (not just in someone’s head)</li>
  <li>Well-suited to solo devs or small teams</li>
  <li>Natural compatibility with <code class="language-plaintext highlighter-rouge">CLAUDE.md</code>, <code class="language-plaintext highlighter-rouge">learnings/</code>, ADRs</li>
</ul>

<p><strong>Limitations:</strong></p>
<ul>
  <li>No formal upstream specification process</li>
  <li>Relies on developer discipline during the “Compound” phase</li>
  <li>Less suited to regulated environments requiring a formal audit trail</li>
</ul>

<hr />

<h2 id="3-bmad-simulating-a-full-agile-team">3. BMAD: simulating a full agile team</h2>

<h3 id="the-concept-2">The concept</h3>

<p><a href="https://docs.bmad-method.org/">BMAD</a> (Breakthrough Method for Agile AI-Driven Development) pushes the cursor even further than SDD. Instead of structuring interaction with a single agent, BMAD orchestrates <strong>12+ specialized agents</strong> that simulate a full agile team: Analyst, Product Manager, Architect, Scrum Master, Developer, QA, UX Designer…</p>

<p>The founding concept is <strong>Agent-as-Code</strong>: each agent is defined in a versioned Markdown file, with its responsibilities, constraints, and expected outputs. Portable, reusable, diff-able in PRs.</p>

<h3 id="the-workflow">The workflow</h3>

<p>The BMAD pipeline follows agile logic:</p>

<ol>
  <li><strong>Analyst</strong> → Creates a project brief</li>
  <li><strong>PM</strong> → Produces a PRD (Product Requirements Document) based on the brief</li>
  <li><strong>Architect</strong> → Designs the architecture based on the PRD</li>
  <li><strong>Scrum Master</strong> → Generates detailed stories for development</li>
  <li><strong>Developer</strong> → Implements story by story</li>
  <li><strong>QA</strong> → Validates against acceptance criteria</li>
</ol>

<p>Quality gates at each transition prevent issues from accumulating across sprints. Each agent produces a verifiable artifact — not just a chat response.</p>

<h3 id="strengths-and-limitations-1">Strengths and limitations</h3>

<p><strong>Strengths:</strong></p>
<ul>
  <li>Full SDLC coverage</li>
  <li>Exhaustive audit trail (every artifact is versioned)</li>
  <li>“Party Mode” enables multi-agent collaboration within a single session</li>
  <li>Extensible (Expansion Packs for game dev, DevOps, etc.)</li>
</ul>

<p><strong>Limitations:</strong></p>
<ul>
  <li><strong>Considerable overhead</strong> — the multi-agent ceremony is heavy for a solo dev</li>
  <li>Better suited to complex greenfield or enterprise contexts</li>
  <li>Quality depends heavily on the underlying model (some LLMs struggle to <a href="https://medium.com/@visrow/what-is-bmad-method-a-simple-guide-to-the-future-of-ai-driven-development-412274f91419">correctly parse structured Markdown files</a>)</li>
  <li><strong>Same blind spot as SDD</strong>: artifacts are specs, not learnings</li>
</ul>

<hr />

<h2 id="summary-comparison">Summary comparison</h2>

<table>
  <thead>
    <tr>
      <th>Criterion</th>
      <th>SDD (OpenSpec)</th>
      <th>Compound Engineering</th>
      <th>BMAD</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Problem solved</strong></td>
      <td>Frame AI input</td>
      <td>Capture learnings</td>
      <td>Simulate an agile team</td>
    </tr>
    <tr>
      <td><strong>Philosophy</strong></td>
      <td>Contract / specification</td>
      <td>Learning loop</td>
      <td>Multi-agent orchestration</td>
    </tr>
    <tr>
      <td><strong>Overhead</strong></td>
      <td>Low to moderate</td>
      <td>Low</td>
      <td>High</td>
    </tr>
    <tr>
      <td><strong>Solo dev friendly</strong></td>
      <td>✅</td>
      <td>✅✅</td>
      <td>⚠️</td>
    </tr>
    <tr>
      <td><strong>Enterprise ready</strong></td>
      <td>✅</td>
      <td>✅</td>
      <td>✅✅</td>
    </tr>
    <tr>
      <td><strong>Brownfield</strong></td>
      <td>✅✅ (OpenSpec)</td>
      <td>✅✅</td>
      <td>⚠️</td>
    </tr>
    <tr>
      <td><strong>Greenfield</strong></td>
      <td>✅✅ (Spec Kit)</td>
      <td>✅</td>
      <td>✅✅</td>
    </tr>
    <tr>
      <td><strong>Learning accumulation</strong></td>
      <td>❌</td>
      <td>✅✅</td>
      <td>❌</td>
    </tr>
    <tr>
      <td><strong>Audit trail</strong></td>
      <td>✅✅</td>
      <td>✅</td>
      <td>✅✅✅</td>
    </tr>
    <tr>
      <td><strong>Spec drift management</strong></td>
      <td>⚠️ Inherent</td>
      <td>✅ (learnings capture divergence)</td>
      <td>⚠️ Inherent</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="my-thesis-these-approaches-combine">My thesis: these approaches combine</h2>

<p>Here’s the point I haven’t seen addressed anywhere: <strong>SDD and Compound Engineering don’t solve the same problem</strong>. One bets on input (framing what you ask the AI), the other on accumulation (capitalizing on what you learn while doing it). Treating them as alternatives misses the point entirely.</p>

<p>SDD alone doesn’t address the accumulation problem — which, to my mind, was a concern long before AI, back when we were documenting Architecture Decision Records (ADRs), post-mortems, and runbooks.</p>

<p>Compound Engineering alone lacks the contractual rigor of SDD for projects that exceed a certain complexity threshold.</p>

<h3 id="a-possible-combined-workflow">A possible combined workflow</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Spec (OpenSpec)          Compound (Every)
┌─────────────┐          ┌─────────────────┐
│ /opsx:propose │ ──────▶ │ Plan            │
│ proposal.md  │          │ (enriched by     │
│ specs/       │          │  learnings)      │
│ design.md    │          ├─────────────────┤
│ tasks.md     │          │ Work            │
└─────────────┘          │ (guided by       │
                         │  specs)          │
                         ├─────────────────┤
                         │ Review           │
                         ├─────────────────┤
                         │ Compound         │
                         │ → learnings.md   │
                         │ → CLAUDE.md      │
                         │ → patterns/      │
                         └────────┬────────┘
                                  │
                         ┌────────▼────────┐
                         │ /opsx:archive    │
                         │ specs → main     │
                         │ learnings        │
                         │ persistent       │
                         └─────────────────┘
</code></pre></div></div>

<p>The idea:</p>
<ol>
  <li><strong>Specify</strong> with OpenSpec when the complexity warrants it (significant new feature, architectural change)</li>
  <li><strong>Execute</strong> within the compound loop (Plan → Work → Review → Compound)</li>
  <li><strong>Capture</strong> learnings in persistent files (<code class="language-plaintext highlighter-rouge">CLAUDE.md</code>, <code class="language-plaintext highlighter-rouge">learnings/</code>, ADRs) that future specs can reference</li>
  <li><strong>Archive</strong> the OpenSpec spec and learnings together</li>
</ol>

<p>Learnings enrich future specs. Specs frame execution. The loop is virtuous.</p>

<hr />

<h2 id="practical-decision-tree">Practical decision tree</h2>

<p>To choose your approach, start from your context:</p>

<p><strong>Working solo or in a pair on an existing product?</strong>
→ Compound Engineering as the base philosophy, OpenSpec when a change justifies it.</p>

<p><strong>Starting a structured greenfield project?</strong>
→ Spec Kit or OpenSpec for the initial phase, then transition to the compound loop once the foundation is in place.</p>

<p><strong>Operating in a regulated or enterprise environment with audit trail requirements?</strong>
→ BMAD or Spec Kit for formal coverage, complemented by compound patterns for knowledge accumulation.</p>

<p><strong>Experimenting or prototyping quickly?</strong>
→ Vibe coding is still relevant for the first 48 hours. Switch to compound engineering as soon as the prototype needs to evolve.</p>

<p><strong>Working with Claude Code?</strong>
→ Compound engineering integrates naturally via <code class="language-plaintext highlighter-rouge">CLAUDE.md</code> and learnings files. OpenSpec works through its slash commands. The two coexist without friction.</p>

<hr />

<h2 id="conclusion">Conclusion</h2>

<p>2025 was the year of vibe coding. 2026 is the year we add structure. But adding structure doesn’t mean picking a side — SDD <em>or</em> compound engineering. These are two complementary answers to two distinct problems.</p>

<p>SDD answers: <strong>“how do you make sure AI builds what you actually want?”</strong>
Compound engineering answers: <strong>“how do you make sure each work cycle enriches the next one?”</strong></p>

<p>The more interesting question might be this: are there solutions that natively combine both philosophies? I haven’t found one yet. That might be a space worth inventing.</p>

<hr />

<p><em>This article is part of my ongoing thoughts on AI-augmented development. For a deeper dive into concrete tooling, see my <a href="/en/claude-code-installation-first-steps/">series on Claude Code</a> and my article on <a href="/en/entropy-human-machine/">human-machine entropy</a>.</em></p>

<h3 id="sources-and-further-reading">Sources and further reading</h3>

<ul>
  <li><a href="https://openspec.pro/">OpenSpec — Official documentation</a></li>
  <li><a href="https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/">Spec Kit — GitHub Blog</a></li>
  <li><a href="https://every.to/chain-of-thought/compound-engineering-how-every-codes-with-agents">Compound Engineering — Every.to</a></li>
  <li><a href="https://docs.bmad-method.org/">BMAD-METHOD — Documentation</a></li>
  <li><a href="https://ai-devkit.com/">AI DevKit — Official site</a></li>
  <li><a href="https://en.wikipedia.org/wiki/Spec-driven_development">Spec-Driven Development — Wikipedia</a></li>
  <li><a href="https://medium.com/aimonks/from-vibe-coding-to-spec-driven-development-where-does-compound-engineering-actually-fit-fcb27dbd2bf1">From Vibe Coding to SDD — AI Monks (Medium)</a></li>
  <li><a href="https://www.infoq.com/articles/spec-driven-development/">SDD: When Architecture Becomes Executable — InfoQ</a></li>
  <li><a href="https://www.thoughtworks.com/en-us/insights/blog/agile-engineering-practices/spec-driven-development-unpacking-2025-new-engineering-practices">Spec-driven development — Thoughtworks</a></li>
  <li><a href="https://qubittool.com/blog/spec-coding-complete-guide">Complete Guide to Spec Coding — QubitTool</a></li>
</ul>
]]></content:encoded>
        <pubDate>Sat, 04 Apr 2026 00:00:00 +0200</pubDate>
        <link>https://angelo-lima.fr/en/sdd-compound-engineering-bmad-philosophies-en/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/en/sdd-compound-engineering-bmad-philosophies-en/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Development</category>
          
          <category>Claude Code</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/sdd-compound-engineering.webp" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>Claude Code Cheat Sheet 2026: Every Command, Shortcut &amp; Feature in One Place</title>
        <description>
          
            The most complete Claude Code cheatsheet for March 2026: 55+ slash commands, 55+ CLI flags, 25 hook events, 6 permission modes, MCP Computer Use, and a full extension creation guide. Available in EN and FR.
          
        </description>
        <content:encoded><![CDATA[<p>Claude Code evolves fast. Most cheatsheets available online are already missing features that shipped in early 2026. I built an <strong>exhaustive, visual reference</strong> covering everything in Claude Code v2.x as of March 2026 — and I’m sharing it for free.</p>

<h2 id="the-cheatsheet">The Cheatsheet</h2>

<p>Available in both English and French:</p>

<ul>
  <li><strong><a href="/assets/data/claude-code-cheatsheet-2026-en.html">English — Interactive HTML</a></strong></li>
  <li><strong><a href="/assets/data/claude-code-cheatsheet-2026.html">French — Interactive HTML</a></strong></li>
</ul>

<table>
  <tbody>
    <tr>
      <td>You can also download the high-res PNGs: <a href="/assets/img/claude-code-cheatsheet-2026-en.png">English</a></td>
      <td><a href="/assets/img/claude-code-cheatsheet-2026.png">French</a> (~4MB each, 2800px wide).</td>
    </tr>
  </tbody>
</table>

<p>Items marked with a green <strong>NEW</strong> badge are features added since late 2025.</p>

<h2 id="whats-covered">What’s Covered</h2>

<p>This isn’t a “top 20 commands” summary. It’s the full reference:</p>

<table>
  <thead>
    <tr>
      <th>Section</th>
      <th>Coverage</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Keyboard Shortcuts</td>
      <td>~30 shortcuts + prefixes + confirmation dialogs</td>
    </tr>
    <tr>
      <td>Slash Commands</td>
      <td><strong>55+ commands</strong> in 7 categories</td>
    </tr>
    <tr>
      <td>CLI Flags</td>
      <td><strong>55+ flags</strong> in 8 categories + subcommands</td>
    </tr>
    <tr>
      <td>The Big 5 (Extension System)</td>
      <td>CLAUDE.md, Rules, Commands, Skills, Subagents, MCP, Plugins</td>
    </tr>
    <tr>
      <td>Permission Modes</td>
      <td>All <strong>6 modes</strong> with permission syntax</td>
    </tr>
    <tr>
      <td>Hooks</td>
      <td>All <strong>25 lifecycle events</strong> + 4 handler types + <code class="language-plaintext highlighter-rouge">if</code> field</td>
    </tr>
    <tr>
      <td>Input Superpowers</td>
      <td>@mentions, !shell, images, pipes, worktrees, background</td>
    </tr>
    <tr>
      <td>Configuration</td>
      <td>5-level hierarchy, config commands, key env vars</td>
    </tr>
    <tr>
      <td>File Structure Map</td>
      <td>Project-level + global-level complete tree</td>
    </tr>
    <tr>
      <td>Rewind &amp; Checkpoints</td>
      <td>All options + context management strategies</td>
    </tr>
    <tr>
      <td>Pro Workflow</td>
      <td>Plan→Execute loop, prompting techniques, advanced patterns</td>
    </tr>
    <tr>
      <td>Customize Claude Code</td>
      <td><strong>How to create each extension type</strong> with full frontmatter</td>
    </tr>
    <tr>
      <td>Quick Reference</td>
      <td>Most-used combos, models &amp; effort levels</td>
    </tr>
  </tbody>
</table>

<h2 id="recent-additions-worth-knowing">Recent Additions Worth Knowing</h2>

<h3 id="mcp-computer-use">MCP Computer Use</h3>

<p>Launched March 23, 2026. Claude can now <strong>see and control your desktop</strong>: take screenshots, click, type, scroll, and drag across macOS applications.</p>

<ul>
  <li><strong>27 tools</strong> including <code class="language-plaintext highlighter-rouge">screenshot</code>, <code class="language-plaintext highlighter-rouge">left_click</code>, <code class="language-plaintext highlighter-rouge">type</code>, <code class="language-plaintext highlighter-rouge">key</code>, <code class="language-plaintext highlighter-rouge">scroll</code>, <code class="language-plaintext highlighter-rouge">zoom</code>, <code class="language-plaintext highlighter-rouge">computer_batch</code></li>
  <li><strong>Security</strong>: <code class="language-plaintext highlighter-rouge">request_access</code> must be called first. Compositor-level filtering — only allowed apps are visible in screenshots</li>
  <li><strong>Performance</strong>: <code class="language-plaintext highlighter-rouge">computer_batch</code> executes a sequence of actions in a single tool call</li>
  <li>Available on <strong>Pro and Max plans</strong>, macOS only for now</li>
</ul>

<h3 id="new-slash-commands">New Slash Commands</h3>

<table>
  <thead>
    <tr>
      <th>Command</th>
      <th>What it does</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">/schedule</code></td>
      <td>Schedule remote agents on a cron</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">/desktop</code></td>
      <td>Hand off session to the Desktop app</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">/voice</code></td>
      <td>Voice dictation input</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">/diff</code></td>
      <td>Interactive diff viewer</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">/security-review</code></td>
      <td>Scan changes for vulnerabilities</td>
    </tr>
  </tbody>
</table>

<h3 id="new-cli-flags">New CLI Flags</h3>

<table>
  <thead>
    <tr>
      <th>Flag</th>
      <th>What it does</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">--tmux</code></td>
      <td>Worktree in a dedicated tmux pane</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">--from-pr 42</code></td>
      <td>Resume from a GitHub PR</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">--fork-session</code></td>
      <td>Fork session keeping full context</td>
    </tr>
  </tbody>
</table>

<h3 id="hooks-25-events-4-handler-types">Hooks: 25 Events, 4 Handler Types</h3>

<p>The hook system now supports <strong>25 lifecycle events</strong> (up from ~8) and <strong>4 handler types</strong>: <code class="language-plaintext highlighter-rouge">command</code>, <code class="language-plaintext highlighter-rouge">http</code>, <code class="language-plaintext highlighter-rouge">prompt</code>, <code class="language-plaintext highlighter-rouge">agent</code>. New events include <code class="language-plaintext highlighter-rouge">SubagentStart/Stop</code>, <code class="language-plaintext highlighter-rouge">TaskCreated/Completed</code>, <code class="language-plaintext highlighter-rouge">TeammateIdle</code>, <code class="language-plaintext highlighter-rouge">PostCompact</code>, <code class="language-plaintext highlighter-rouge">ConfigChange</code>, <code class="language-plaintext highlighter-rouge">FileChanged</code>, and more.</p>

<h3 id="skills--subagents-frontmatter">Skills &amp; Subagents Frontmatter</h3>

<p>Skills gained <code class="language-plaintext highlighter-rouge">context: fork</code>, <code class="language-plaintext highlighter-rouge">paths:</code>, and <code class="language-plaintext highlighter-rouge">effort:</code> options. Subagents gained <code class="language-plaintext highlighter-rouge">isolation: worktree</code> and <code class="language-plaintext highlighter-rouge">memory: project/user/local</code> for persistent knowledge.</p>

<h3 id="customize-claude-code-card">“Customize Claude Code” Card</h3>

<p>One of the most useful sections: a complete guide showing how to create <strong>every type of extension</strong> — slash commands, skills, subagents, rules, hooks, and MCP servers — each with a full frontmatter example and a decision guide for “where should this go?”</p>

<hr />

<p>If you spot an error or a missing feature, feel free to reach out — I’ll keep this cheatsheet updated as Claude Code evolves.</p>
]]></content:encoded>
        <pubDate>Tue, 31 Mar 2026 00:00:00 +0200</pubDate>
        <link>https://angelo-lima.fr/en/claude-code-cheatsheet-2026-update/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/en/claude-code-cheatsheet-2026-update/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Development</category>
          
          <category>Claude Code</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/claude-code.webp" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>Claude Code Cheat Sheet 2026 : Chaque commande, raccourci &amp; feature en un seul endroit</title>
        <description>
          
            La cheatsheet Claude Code la plus complète pour mars 2026 : 55+ commandes slash, 55+ flags CLI, 25 événements hooks, 6 modes de permission, MCP Computer Use, et un guide complet de création d&apos;extensions. Disponible en FR et EN.
          
        </description>
        <content:encoded><![CDATA[<p>Claude Code évolue vite. La plupart des cheatsheets disponibles en ligne sont déjà incomplètes par rapport aux features sorties début 2026. J’ai construit une <strong>référence exhaustive et visuelle</strong> couvrant tout ce qui existe dans Claude Code v2.x en mars 2026 — et je la partage gratuitement.</p>

<h2 id="la-cheatsheet">La Cheatsheet</h2>

<p>Disponible en français et en anglais :</p>

<ul>
  <li><strong><a href="/assets/data/claude-code-cheatsheet-2026.html">Français — HTML interactif</a></strong></li>
  <li><strong><a href="/assets/data/claude-code-cheatsheet-2026-en.html">English — Interactive HTML</a></strong></li>
</ul>

<table>
  <tbody>
    <tr>
      <td>Vous pouvez aussi télécharger les PNG haute résolution : <a href="/assets/img/claude-code-cheatsheet-2026.png">Français</a></td>
      <td><a href="/assets/img/claude-code-cheatsheet-2026-en.png">English</a> (~4 Mo chacun, 2800px de large).</td>
    </tr>
  </tbody>
</table>

<p>Les éléments marqués d’un badge vert <strong>NEW</strong> sont des features ajoutées depuis fin 2025.</p>

<h2 id="ce-qui-est-couvert">Ce qui est couvert</h2>

<p>Ce n’est pas un résumé “top 20 commandes”. C’est la référence complète :</p>

<table>
  <thead>
    <tr>
      <th>Section</th>
      <th>Couverture</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Raccourcis Clavier</td>
      <td>~30 raccourcis + préfixes + dialogues de confirmation</td>
    </tr>
    <tr>
      <td>Commandes Slash</td>
      <td><strong>55+ commandes</strong> en 7 catégories</td>
    </tr>
    <tr>
      <td>CLI Flags</td>
      <td><strong>55+ flags</strong> en 8 catégories + sous-commandes</td>
    </tr>
    <tr>
      <td>The Big 5 (Système d’Extension)</td>
      <td>CLAUDE.md, Rules, Commands, Skills, Subagents, MCP, Plugins</td>
    </tr>
    <tr>
      <td>Modes de Permission</td>
      <td>Les <strong>6 modes</strong> avec la syntaxe de permissions</td>
    </tr>
    <tr>
      <td>Hooks</td>
      <td>Les <strong>25 événements</strong> du cycle de vie + 4 types de handlers + champ <code class="language-plaintext highlighter-rouge">if</code></td>
    </tr>
    <tr>
      <td>Input Superpowers</td>
      <td>@mentions, !shell, images, pipes, worktrees, background</td>
    </tr>
    <tr>
      <td>Configuration</td>
      <td>Hiérarchie 5 niveaux, commandes config, variables d’env clés</td>
    </tr>
    <tr>
      <td>File Structure Map</td>
      <td>Arborescence projet + globale complète</td>
    </tr>
    <tr>
      <td>Rewind &amp; Checkpoints</td>
      <td>Toutes les options + stratégies de gestion du contexte</td>
    </tr>
    <tr>
      <td>Pro Workflow</td>
      <td>Boucle Plan→Execute, techniques de prompting, patterns avancés</td>
    </tr>
    <tr>
      <td>Personnaliser Claude Code</td>
      <td><strong>Comment créer chaque type d’extension</strong> avec frontmatter complet</td>
    </tr>
    <tr>
      <td>Quick Reference</td>
      <td>Combos les plus utilisés, modèles &amp; effort levels</td>
    </tr>
  </tbody>
</table>

<h2 id="ajouts-récents-à-connaître">Ajouts récents à connaître</h2>

<h3 id="mcp-computer-use">MCP Computer Use</h3>

<p>Lancé le 23 mars 2026. Claude peut maintenant <strong>voir et contrôler votre bureau</strong> : prendre des screenshots, cliquer, taper, scroller et faire du drag &amp; drop sur les applications macOS.</p>

<ul>
  <li><strong>27 outils</strong> dont <code class="language-plaintext highlighter-rouge">screenshot</code>, <code class="language-plaintext highlighter-rouge">left_click</code>, <code class="language-plaintext highlighter-rouge">type</code>, <code class="language-plaintext highlighter-rouge">key</code>, <code class="language-plaintext highlighter-rouge">scroll</code>, <code class="language-plaintext highlighter-rouge">zoom</code>, <code class="language-plaintext highlighter-rouge">computer_batch</code></li>
  <li><strong>Sécurité</strong> : <code class="language-plaintext highlighter-rouge">request_access</code> obligatoire. Filtrage au niveau du compositing — seules les apps autorisées sont visibles dans les screenshots</li>
  <li><strong>Performance</strong> : <code class="language-plaintext highlighter-rouge">computer_batch</code> exécute une séquence d’actions en un seul appel</li>
  <li>Disponible sur les plans <strong>Pro et Max</strong>, macOS uniquement pour le moment</li>
</ul>

<h3 id="nouvelles-commandes-slash">Nouvelles commandes Slash</h3>

<table>
  <thead>
    <tr>
      <th>Commande</th>
      <th>Ce qu’elle fait</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">/schedule</code></td>
      <td>Planifier des agents distants en cron</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">/desktop</code></td>
      <td>Transférer la session vers l’app Desktop</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">/voice</code></td>
      <td>Saisie par dictée vocale</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">/diff</code></td>
      <td>Viewer de diff interactif</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">/security-review</code></td>
      <td>Scanner les changements pour les vulnérabilités</td>
    </tr>
  </tbody>
</table>

<h3 id="nouveaux-flags-cli">Nouveaux flags CLI</h3>

<table>
  <thead>
    <tr>
      <th>Flag</th>
      <th>Ce qu’il fait</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">--tmux</code></td>
      <td>Worktree dans un panneau tmux dédié</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">--from-pr 42</code></td>
      <td>Reprendre depuis une PR GitHub</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">--fork-session</code></td>
      <td>Forker la session en gardant le contexte</td>
    </tr>
  </tbody>
</table>

<h3 id="hooks--25-événements-4-types-de-handlers">Hooks : 25 événements, 4 types de handlers</h3>

<p>Le système de hooks supporte maintenant <strong>25 événements</strong> du cycle de vie (contre ~8 auparavant) et <strong>4 types de handlers</strong> : <code class="language-plaintext highlighter-rouge">command</code>, <code class="language-plaintext highlighter-rouge">http</code>, <code class="language-plaintext highlighter-rouge">prompt</code>, <code class="language-plaintext highlighter-rouge">agent</code>. Nouveaux événements : <code class="language-plaintext highlighter-rouge">SubagentStart/Stop</code>, <code class="language-plaintext highlighter-rouge">TaskCreated/Completed</code>, <code class="language-plaintext highlighter-rouge">TeammateIdle</code>, <code class="language-plaintext highlighter-rouge">PostCompact</code>, <code class="language-plaintext highlighter-rouge">ConfigChange</code>, <code class="language-plaintext highlighter-rouge">FileChanged</code>, et d’autres.</p>

<h3 id="frontmatter-skills--subagents">Frontmatter Skills &amp; Subagents</h3>

<p>Les Skills ont gagné les options <code class="language-plaintext highlighter-rouge">context: fork</code>, <code class="language-plaintext highlighter-rouge">paths:</code>, et <code class="language-plaintext highlighter-rouge">effort:</code>. Les Subagents ont gagné <code class="language-plaintext highlighter-rouge">isolation: worktree</code> et <code class="language-plaintext highlighter-rouge">memory: project/user/local</code> pour la connaissance persistante.</p>

<h3 id="card-personnaliser-claude-code">Card “Personnaliser Claude Code”</h3>

<p>Une des sections les plus utiles : un guide complet montrant comment créer <strong>chaque type d’extension</strong> — commandes slash, skills, sous-agents, rules, hooks et serveurs MCP — chacun avec un exemple de frontmatter complet et un guide de décision “où placer quoi ?”.</p>

<hr />

<p>Si vous repérez une erreur ou une feature manquante, n’hésitez pas à me contacter — je maintiendrai cette cheatsheet à jour au fil des évolutions de Claude Code.</p>
]]></content:encoded>
        <pubDate>Tue, 31 Mar 2026 00:00:00 +0200</pubDate>
        <link>https://angelo-lima.fr/fr/claude-code-cheatsheet-2026-mise-a-jour/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/fr/claude-code-cheatsheet-2026-mise-a-jour/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Développement</category>
          
          <category>Claude Code</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/claude-code.webp" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>/insights : La Commande qui Analyse Votre Façon de Coder avec Claude</title>
        <description>
          
            La commande /insights de Claude Code analyse 30 jours de sessions pour générer un rapport HTML interactif : statistiques, frictions, suggestions CLAUDE.md et recommandations personnalisées.
          
        </description>
        <content:encoded><![CDATA[<p>Annoncée début février 2026 par Thariq Shihipar d’Anthropic, la commande <code class="language-plaintext highlighter-rouge">/insights</code> est l’une des dernières additions à Claude Code. Le principe : analyser vos 30 derniers jours de sessions et générer un rapport détaillé de vos habitudes. Patterns récurrents, points de friction, workflows inefficaces — tout y passe.</p>

<h2 id="quest-ce-que-insights-">Qu’est-ce que /insights ?</h2>

<p><code class="language-plaintext highlighter-rouge">/insights</code> est une commande intégrée à Claude Code qui analyse l’historique de vos sessions locales et produit un <strong>rapport HTML interactif</strong>. Pas besoin de configuration, pas de tracking externe : tout est basé sur les données déjà stockées sur votre machine.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Dans Claude Code, tapez simplement :</span>
/insights
</code></pre></div></div>

<p>Le rapport est généré dans <code class="language-plaintext highlighter-rouge">~/.claude/usage-data/report.html</code> et s’ouvre automatiquement dans votre navigateur.</p>

<h2 id="comment-ça-fonctionne-techniquement">Comment ça Fonctionne Techniquement</h2>

<p>Le système traite vos données en <strong>6 étapes</strong> :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Sessions locales (~/.claude/projects/)
    ↓
1. Collecte et filtrage des sessions
    ↓
2. Extraction des métadonnées (tokens, outils, durée, modifications)
    ↓
3. Analyse qualitative des transcriptions via LLM (Haiku)
    ↓
4. Agrégation des données sur l'ensemble des sessions
    ↓
5. Analyse multi-prompt générant des insights spécialisés
    ↓
6. Rendu HTML avec visualisations interactives
</code></pre></div></div>

<h3 id="filtrage-intelligent">Filtrage Intelligent</h3>

<p>Toutes les sessions ne sont pas analysées. Sont exclues :</p>

<table>
  <thead>
    <tr>
      <th>Exclusion</th>
      <th>Raison</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Sessions de subagents (<code class="language-plaintext highlighter-rouge">agent-*</code>)</td>
      <td>Bruit dans les données</td>
    </tr>
    <tr>
      <td>Sessions internes d’extraction</td>
      <td>Données techniques internes</td>
    </tr>
    <tr>
      <td>Sessions &lt; 2 messages utilisateur</td>
      <td>Pas assez de contexte</td>
    </tr>
    <tr>
      <td>Sessions &lt; 1 minute</td>
      <td>Démarrages accidentels</td>
    </tr>
  </tbody>
</table>

<h3 id="traitement-des-données">Traitement des Données</h3>

<ul>
  <li><strong>Modèle utilisé</strong> : Haiku (rapport coût/performance optimal)</li>
  <li><strong>Limite</strong> : 50 nouvelles sessions analysées par exécution</li>
  <li><strong>Cache</strong> : Les analyses sont cachées dans <code class="language-plaintext highlighter-rouge">~/.claude/usage-data/facets/&lt;session-id&gt;.json</code></li>
  <li><strong>Sessions longues</strong> : Découpées en segments de 25 000 caractères, chacun résumé séparément</li>
</ul>

<h2 id="ce-que-contient-le-rapport">Ce que Contient le Rapport</h2>

<h3 id="1-dashboard-statistiques">1. Dashboard Statistiques</h3>

<p>Vue d’ensemble chiffrée de votre activité :</p>

<ul>
  <li><strong>Sessions et messages</strong> : nombre total, moyenne par jour</li>
  <li><strong>Temps passé</strong> : durée cumulée de vos sessions</li>
  <li><strong>Tokens consommés</strong> : input et output</li>
  <li><strong>Activité Git</strong> : commits et pushs</li>
  <li><strong>Jours actifs</strong> : fréquence et séries d’activité</li>
  <li><strong>Heures de pointe</strong> : quand vous êtes le plus productif</li>
</ul>

<h3 id="2-résumé-exécutif-at-a-glance">2. Résumé Exécutif (“At a Glance”)</h3>

<p>Quatre sections ciblées :</p>

<table>
  <thead>
    <tr>
      <th>Section</th>
      <th>Contenu</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Ce qui fonctionne</td>
      <td>Vos workflows les plus efficaces</td>
    </tr>
    <tr>
      <td>Ce qui freine</td>
      <td>Les frictions récurrentes identifiées</td>
    </tr>
    <tr>
      <td>Quick wins</td>
      <td>Améliorations faciles à implémenter</td>
    </tr>
    <tr>
      <td>Opportunités ambitieuses</td>
      <td>Changements de workflow plus profonds</td>
    </tr>
  </tbody>
</table>

<h3 id="3-visualisations-interactives">3. Visualisations Interactives</h3>

<ul>
  <li><strong>Graphique d’activité quotidienne</strong> avec sélecteur de fuseau horaire</li>
  <li><strong>Distribution des outils utilisés</strong> (Read, Edit, Bash, Grep, etc.)</li>
  <li><strong>Répartition des langages</strong> de programmation</li>
  <li><strong>Niveaux de satisfaction</strong> par session</li>
  <li><strong>Types de sessions</strong> : tâche unique, multi-tâches, itération, exploration, question rapide</li>
</ul>

<h3 id="4-analyse-des-frictions">4. Analyse des Frictions</h3>

<p>C’est la section la plus actionnable. Le rapport catégorise vos points de douleur :</p>

<table>
  <thead>
    <tr>
      <th>Type de Friction</th>
      <th>Exemple</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Mauvaise compréhension</td>
      <td>Claude part dans la mauvaise direction</td>
    </tr>
    <tr>
      <td>Approche incorrecte</td>
      <td>Solution techniquement fausse proposée</td>
    </tr>
    <tr>
      <td>Code bugué</td>
      <td>Le code généré ne fonctionne pas</td>
    </tr>
    <tr>
      <td>Action rejetée</td>
      <td>Vous avez refusé une action de Claude</td>
    </tr>
    <tr>
      <td>Changements excessifs</td>
      <td>Claude modifie trop de choses</td>
    </tr>
    <tr>
      <td>Échecs d’outils</td>
      <td>Erreurs d’exécution des outils</td>
    </tr>
  </tbody>
</table>

<p>Chaque friction est documentée avec des <strong>exemples concrets</strong> tirés de vos sessions.</p>

<h3 id="5-suggestions-claudemd">5. Suggestions CLAUDE.md</h3>

<p>La section la plus intéressante : le rapport génère des <strong>règles prêtes à copier-coller</strong> dans votre <code class="language-plaintext highlighter-rouge">CLAUDE.md</code>, basées sur les instructions que vous répétez souvent.</p>

<p>Exemple de suggestion :</p>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gh"># Suggestion générée par /insights</span>

<span class="gu">## Testing</span>
<span class="p">-</span> Toujours exécuter les tests après modification d'un fichier source
<span class="p">-</span> Utiliser vitest pour les tests unitaires, pas jest

<span class="gu">## Conventions</span>
<span class="p">-</span> Utiliser des imports absolus avec l'alias @/
<span class="p">-</span> Nommer les fichiers en kebab-case
</code></pre></div></div>

<p>Ces suggestions ciblent précisément les patterns répétitifs détectés dans vos sessions. L’idée : <strong>dire une fois à Claude ce que vous répétez chaque jour</strong>.</p>

<h3 id="6-recommandations-de-features">6. Recommandations de Features</h3>

<p>Selon votre profil d’utilisation, le rapport suggère des fonctionnalités Claude Code que vous n’exploitez peut-être pas :</p>

<ul>
  <li><strong>MCP Servers</strong> si vous interagissez souvent avec des outils externes</li>
  <li><strong>Skills personnalisés</strong> si vous répétez les mêmes workflows</li>
  <li><strong>Hooks</strong> si vous faites des actions manuelles post-édition</li>
  <li><strong>Mode Headless</strong> si vous avez des tâches CI/CD</li>
  <li><strong>Task Agents</strong> si vous faites de l’exploration de codebase complexe</li>
</ul>

<h2 id="catégories-dobjectifs-trackés">Catégories d’Objectifs Trackés</h2>

<p>Le rapport classifie automatiquement vos sessions par type de tâche :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>debug/investigate     │ implement feature    │ fix bug
write script/tool     │ refactor code        │ configure system
create PR/commit      │ analyze data         │ understand codebase
write tests           │ write docs           │ deploy/infra
</code></pre></div></div>

<p>Cette classification aide à comprendre <strong>comment vous répartissez votre temps</strong> avec Claude Code.</p>

<h2 id="confidentialité-et-données">Confidentialité et Données</h2>

<p>Point important : <strong>tout est local</strong>.</p>

<ul>
  <li>L’analyse s’exécute sur votre machine via l’API Anthropic</li>
  <li>Aucun code source n’est uploadé</li>
  <li>L’analyse porte sur les <strong>patterns d’interaction</strong>, pas sur le contenu du code</li>
  <li>Le rapport HTML reste en local, partageable à votre discrétion</li>
  <li>Les facettes cachées ne contiennent que des métadonnées agrégées</li>
</ul>

<h2 id="bonnes-pratiques">Bonnes Pratiques</h2>

<h3 id="fréquence-dutilisation">Fréquence d’Utilisation</h3>

<p>Ne lancez pas <code class="language-plaintext highlighter-rouge">/insights</code> tous les jours. Le sweet spot :</p>

<ul>
  <li><strong>Toutes les 2-3 semaines</strong> pour un suivi régulier</li>
  <li><strong>Après un milestone</strong> (fin de feature, release)</li>
  <li><strong>Après une période de friction</strong> pour identifier les causes</li>
</ul>

<h3 id="exploiter-le-rapport">Exploiter le Rapport</h3>

<ol>
  <li><strong>Commencez par les frictions</strong> : c’est là que se cachent les gains rapides</li>
  <li><strong>Copiez les suggestions CLAUDE.md</strong> pertinentes dans votre projet</li>
  <li><strong>Testez les features recommandées</strong> que vous n’utilisez pas encore</li>
  <li><strong>Comparez les rapports</strong> d’un mois sur l’autre pour mesurer votre progression</li>
</ol>

<h3 id="workflow-mensuel-recommandé">Workflow Mensuel Recommandé</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/insights
    ↓
Lire les frictions identifiées
    ↓
Copier les suggestions CLAUDE.md pertinentes
    ↓
Tester 1-2 features recommandées
    ↓
Reprendre le travail normal
    ↓
/insights le mois suivant → mesurer l'évolution
</code></pre></div></div>

<h2 id="limitations">Limitations</h2>

<ul>
  <li><strong>50 sessions max</strong> par analyse (les plus récentes sont priorisées)</li>
  <li><strong>Modèle Haiku</strong> pour l’analyse (bon rapport qualité/prix, mais moins fin qu’Opus)</li>
  <li><strong>30 jours</strong> de fenêtre d’analyse</li>
  <li>Le rapport peut prendre <strong>plusieurs minutes</strong> selon le volume (600+ messages = patience)</li>
</ul>

<h2 id="mon-avis">Mon Avis</h2>

<p>La feature n’a qu’un mois d’existence au moment où j’écris, mais elle m’a déjà surpris. Après mon premier <code class="language-plaintext highlighter-rouge">/insights</code>, j’ai découvert que je répétais les mêmes consignes de formatting dans plus de la moitié de mes sessions — du temps perdu que quelques lignes dans <code class="language-plaintext highlighter-rouge">CLAUDE.md</code> auraient pu éviter.</p>

<p>C’est un <strong>miroir de vos habitudes</strong> : parfois flatteur, parfois brutal. La vraie valeur est dans les suggestions <code class="language-plaintext highlighter-rouge">CLAUDE.md</code>. Au lieu de répéter les mêmes instructions session après session, vous les codifiez une bonne fois. C’est exactement le genre d’optimisation meta qui fait gagner du temps sur le long terme.</p>

<p>Le fait que tout reste local est un plus non négligeable, surtout pour ceux qui travaillent sur du code propriétaire. On est encore aux débuts de cette feature — il sera intéressant de voir comment Anthropic la fera évoluer dans les prochaines versions.</p>

<hr />

<p><em>La commande est toute fraîche — c’est le moment de l’essayer et de découvrir ce que vos sessions révèlent sur vous.</em></p>
]]></content:encoded>
        <pubDate>Thu, 05 Mar 2026 00:00:00 +0100</pubDate>
        <link>https://angelo-lima.fr/fr/claude-code-insights-commande/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/fr/claude-code-insights-commande/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Développement</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/claude-code.webp" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>/insights: The Command That Analyzes How You Code with Claude</title>
        <description>
          
            Claude Code&apos;s /insights command analyzes 30 days of sessions to generate an interactive HTML report: statistics, friction points, CLAUDE.md suggestions and personalized recommendations.
          
        </description>
        <content:encoded><![CDATA[<p>Announced in early February 2026 by Anthropic’s Thariq Shihipar, the <code class="language-plaintext highlighter-rouge">/insights</code> command is one of the latest additions to Claude Code. The concept: analyze your last 30 days of sessions and generate a detailed report of your habits. Recurring patterns, friction points, inefficient workflows — nothing escapes it.</p>

<h2 id="what-is-insights">What is /insights?</h2>

<p><code class="language-plaintext highlighter-rouge">/insights</code> is a built-in Claude Code command that analyzes your local session history and produces an <strong>interactive HTML report</strong>. No configuration needed, no external tracking: everything is based on data already stored on your machine.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># In Claude Code, simply type:</span>
/insights
</code></pre></div></div>

<p>The report is generated at <code class="language-plaintext highlighter-rouge">~/.claude/usage-data/report.html</code> and opens automatically in your browser.</p>

<h2 id="how-it-works-technically">How It Works Technically</h2>

<p>The system processes your data in <strong>6 stages</strong>:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Local sessions (~/.claude/projects/)
    ↓
1. Session collection and filtering
    ↓
2. Metadata extraction (tokens, tools, duration, modifications)
    ↓
3. Qualitative transcript analysis via LLM (Haiku)
    ↓
4. Data aggregation across all sessions
    ↓
5. Multi-prompt analysis generating specialized insights
    ↓
6. HTML rendering with interactive visualizations
</code></pre></div></div>

<h3 id="smart-filtering">Smart Filtering</h3>

<p>Not all sessions are analyzed. Excluded:</p>

<table>
  <thead>
    <tr>
      <th>Exclusion</th>
      <th>Reason</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Subagent sessions (<code class="language-plaintext highlighter-rouge">agent-*</code>)</td>
      <td>Noise in the data</td>
    </tr>
    <tr>
      <td>Internal extraction sessions</td>
      <td>Internal technical data</td>
    </tr>
    <tr>
      <td>Sessions &lt; 2 user messages</td>
      <td>Not enough context</td>
    </tr>
    <tr>
      <td>Sessions &lt; 1 minute</td>
      <td>Accidental starts</td>
    </tr>
  </tbody>
</table>

<h3 id="data-processing">Data Processing</h3>

<ul>
  <li><strong>Model used</strong>: Haiku (optimal cost/performance ratio)</li>
  <li><strong>Limit</strong>: 50 new sessions analyzed per run</li>
  <li><strong>Cache</strong>: Analyses are cached in <code class="language-plaintext highlighter-rouge">~/.claude/usage-data/facets/&lt;session-id&gt;.json</code></li>
  <li><strong>Long sessions</strong>: Split into 25,000-character segments, each summarized separately</li>
</ul>

<h2 id="what-the-report-contains">What the Report Contains</h2>

<h3 id="1-statistics-dashboard">1. Statistics Dashboard</h3>

<p>A quantified overview of your activity:</p>

<ul>
  <li><strong>Sessions and messages</strong>: total count, daily average</li>
  <li><strong>Time spent</strong>: cumulative session duration</li>
  <li><strong>Tokens consumed</strong>: input and output</li>
  <li><strong>Git activity</strong>: commits and pushes</li>
  <li><strong>Active days</strong>: frequency and activity streaks</li>
  <li><strong>Peak hours</strong>: when you’re most productive</li>
</ul>

<h3 id="2-executive-summary-at-a-glance">2. Executive Summary (“At a Glance”)</h3>

<p>Four targeted sections:</p>

<table>
  <thead>
    <tr>
      <th>Section</th>
      <th>Content</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>What’s working</td>
      <td>Your most effective workflows</td>
    </tr>
    <tr>
      <td>What’s hindering</td>
      <td>Recurring friction points identified</td>
    </tr>
    <tr>
      <td>Quick wins</td>
      <td>Easy improvements to implement</td>
    </tr>
    <tr>
      <td>Ambitious opportunities</td>
      <td>Deeper workflow changes</td>
    </tr>
  </tbody>
</table>

<h3 id="3-interactive-visualizations">3. Interactive Visualizations</h3>

<ul>
  <li><strong>Daily activity chart</strong> with timezone selector</li>
  <li><strong>Tool usage distribution</strong> (Read, Edit, Bash, Grep, etc.)</li>
  <li><strong>Programming language breakdown</strong></li>
  <li><strong>Satisfaction levels</strong> per session</li>
  <li><strong>Session types</strong>: single task, multi-task, iteration, exploration, quick question</li>
</ul>

<h3 id="4-friction-analysis">4. Friction Analysis</h3>

<p>This is the most actionable section. The report categorizes your pain points:</p>

<table>
  <thead>
    <tr>
      <th>Friction Type</th>
      <th>Example</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Misunderstood request</td>
      <td>Claude heads in the wrong direction</td>
    </tr>
    <tr>
      <td>Wrong approach</td>
      <td>Technically incorrect solution proposed</td>
    </tr>
    <tr>
      <td>Buggy code</td>
      <td>Generated code doesn’t work</td>
    </tr>
    <tr>
      <td>Rejected action</td>
      <td>You refused a Claude action</td>
    </tr>
    <tr>
      <td>Excessive changes</td>
      <td>Claude modifies too much</td>
    </tr>
    <tr>
      <td>Tool failures</td>
      <td>Tool execution errors</td>
    </tr>
  </tbody>
</table>

<p>Each friction is documented with <strong>concrete examples</strong> from your sessions.</p>

<h3 id="5-claudemd-suggestions">5. CLAUDE.md Suggestions</h3>

<p>The most valuable section: the report generates <strong>copy-paste-ready rules</strong> for your <code class="language-plaintext highlighter-rouge">CLAUDE.md</code>, based on instructions you repeat often.</p>

<p>Example suggestion:</p>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gh"># Suggestion generated by /insights</span>

<span class="gu">## Testing</span>
<span class="p">-</span> Always run tests after modifying a source file
<span class="p">-</span> Use vitest for unit tests, not jest

<span class="gu">## Conventions</span>
<span class="p">-</span> Use absolute imports with the @/ alias
<span class="p">-</span> Name files in kebab-case
</code></pre></div></div>

<p>These suggestions precisely target repetitive patterns detected in your sessions. The idea: <strong>tell Claude once what you repeat every day</strong>.</p>

<h3 id="6-feature-recommendations">6. Feature Recommendations</h3>

<p>Based on your usage profile, the report suggests Claude Code features you might not be leveraging:</p>

<ul>
  <li><strong>MCP Servers</strong> if you frequently interact with external tools</li>
  <li><strong>Custom Skills</strong> if you repeat the same workflows</li>
  <li><strong>Hooks</strong> if you perform manual post-edit actions</li>
  <li><strong>Headless Mode</strong> if you have CI/CD tasks</li>
  <li><strong>Task Agents</strong> if you do complex codebase exploration</li>
</ul>

<h2 id="goal-categories-tracked">Goal Categories Tracked</h2>

<p>The report automatically classifies your sessions by task type:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>debug/investigate     │ implement feature    │ fix bug
write script/tool     │ refactor code        │ configure system
create PR/commit      │ analyze data         │ understand codebase
write tests           │ write docs           │ deploy/infra
</code></pre></div></div>

<p>This classification helps understand <strong>how you distribute your time</strong> with Claude Code.</p>

<h2 id="privacy-and-data">Privacy and Data</h2>

<p>Important point: <strong>everything is local</strong>.</p>

<ul>
  <li>Analysis runs on your machine via the Anthropic API</li>
  <li>No source code is uploaded</li>
  <li>Analysis focuses on <strong>interaction patterns</strong>, not code content</li>
  <li>The HTML report stays local, shareable at your discretion</li>
  <li>Cached facets contain only aggregated metadata</li>
</ul>

<h2 id="best-practices">Best Practices</h2>

<h3 id="usage-frequency">Usage Frequency</h3>

<p>Don’t run <code class="language-plaintext highlighter-rouge">/insights</code> every day. The sweet spot:</p>

<ul>
  <li><strong>Every 2-3 weeks</strong> for regular monitoring</li>
  <li><strong>After a milestone</strong> (feature completion, release)</li>
  <li><strong>After a friction period</strong> to identify root causes</li>
</ul>

<h3 id="leveraging-the-report">Leveraging the Report</h3>

<ol>
  <li><strong>Start with frictions</strong>: that’s where quick wins hide</li>
  <li><strong>Copy relevant CLAUDE.md suggestions</strong> into your project</li>
  <li><strong>Test recommended features</strong> you’re not using yet</li>
  <li><strong>Compare reports</strong> month over month to measure your progress</li>
</ol>

<h3 id="recommended-monthly-workflow">Recommended Monthly Workflow</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/insights
    ↓
Read identified frictions
    ↓
Copy relevant CLAUDE.md suggestions
    ↓
Test 1-2 recommended features
    ↓
Resume normal work
    ↓
/insights next month → measure evolution
</code></pre></div></div>

<h2 id="limitations">Limitations</h2>

<ul>
  <li><strong>50 sessions max</strong> per analysis (most recent are prioritized)</li>
  <li><strong>Haiku model</strong> for analysis (good cost/quality ratio, but less nuanced than Opus)</li>
  <li><strong>30-day</strong> analysis window</li>
  <li>Report can take <strong>several minutes</strong> depending on volume (600+ messages = patience)</li>
</ul>

<h2 id="my-take">My Take</h2>

<p>The feature is only a month old as I write this, but it has already surprised me. After my first <code class="language-plaintext highlighter-rouge">/insights</code> run, I discovered I was repeating the same formatting instructions in over half my sessions — wasted time that a few lines in <code class="language-plaintext highlighter-rouge">CLAUDE.md</code> could have prevented.</p>

<p>It’s a <strong>mirror of your habits</strong>: sometimes flattering, sometimes brutal. The real value lies in the <code class="language-plaintext highlighter-rouge">CLAUDE.md</code> suggestions. Instead of repeating the same instructions session after session, you codify them once and for all. This is exactly the kind of meta-optimization that saves time in the long run.</p>

<p>The fact that everything stays local is a significant plus, especially for those working on proprietary code. We’re still in the early days of this feature — it will be interesting to see how Anthropic evolves it in upcoming versions.</p>

<hr />

<p><em>The command is brand new — now is the time to try it and discover what your sessions reveal about you.</em></p>
]]></content:encoded>
        <pubDate>Thu, 05 Mar 2026 00:00:00 +0100</pubDate>
        <link>https://angelo-lima.fr/en/claude-code-insights-command/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/en/claude-code-insights-command/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Développement</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/claude-code.webp" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>Sourdine : Transcription de réunions avec IA 100% locale</title>
        <description>
          
            Sourdine est une application Electron qui transcrit vos réunions en temps réel et génère des notes automatiques avec une IA qui tourne entièrement sur votre Mac. Aucune API, aucun abonnement, 100% vie privée.
          
        </description>
        <content:encoded><![CDATA[<p>Combien de réunions avez-vous cette semaine ? Et combien de notes avez-vous réellement prises ? Entre participer activement et prendre des notes détaillées, il faut choisir. C’est de cette frustration qu’est né <strong>Sourdine</strong> — avec une contrainte majeure : <strong>tout doit rester sur ma machine</strong>.</p>

<h2 id="le-problème--ia-cloud-vs-vie-privée">Le Problème : IA Cloud vs Vie Privée</h2>

<p>Les solutions de transcription (Otter.ai, Fireflies, transcriptions Teams/Meet) partagent un point commun : <strong>vos conversations transitent par leurs serveurs</strong>. Problématique pour :</p>

<ul>
  <li>Réunions stratégiques d’entreprise</li>
  <li>Entretiens confidentiels</li>
  <li>Discussions médicales ou juridiques</li>
  <li>Tout ce qui ne regarde pas Google, Microsoft ou une startup</li>
</ul>

<p>Sans parler des abonnements mensuels qui s’accumulent.</p>

<h2 id="la-solution--tout-local-zéro-compromis">La Solution : Tout Local, Zéro Compromis</h2>

<p><strong>Sourdine</strong> fait tourner deux modèles d’IA directement sur votre Mac :</p>

<table>
  <thead>
    <tr>
      <th>Modèle</th>
      <th>Taille</th>
      <th>Rôle</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Parakeet TDT</strong> (NVIDIA)</td>
      <td>640 Mo</td>
      <td>Transcription speech-to-text</td>
    </tr>
    <tr>
      <td><strong>Mistral 7B</strong></td>
      <td>4.4 Go</td>
      <td>Résumés, points clés, chat contextuel</td>
    </tr>
  </tbody>
</table>

<p>Aucune connexion internet après le téléchargement initial. Vos données ne quittent jamais votre machine.</p>

<h2 id="comment-ça-marche">Comment Ça Marche</h2>

<h3 id="capture-audio-intelligente">Capture Audio Intelligente</h3>

<p>Sourdine capture simultanément deux sources :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Micro (votre voix)    →  ┐
                         ├→  Mixeur audio  →  Transcription
Audio système (Teams) →  ┘
</code></pre></div></div>

<p>Cette double capture utilise <strong>ScreenCaptureKit</strong> (macOS 14.2+). J’ai développé un module natif en <strong>Rust</strong> avec napi-rs pour l’intégrer à Electron.</p>

<h3 id="pipeline-de-transcription">Pipeline de Transcription</h3>

<table>
  <thead>
    <tr>
      <th>Étape</th>
      <th>Technologie</th>
      <th>Fonction</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1. Détection voix</td>
      <td>Silero VAD</td>
      <td>Identifie parole vs silence/bruit</td>
    </tr>
    <tr>
      <td>2. Transcription</td>
      <td>Parakeet TDT via sherpa-onnx</td>
      <td>Convertit audio en texte</td>
    </tr>
    <tr>
      <td>3. Notes IA</td>
      <td>Mistral 7B via node-llama-cpp</td>
      <td>Génère résumé, actions, points clés</td>
    </tr>
  </tbody>
</table>

<p>Le STT tourne dans un worker Node.js séparé pour ne pas bloquer l’interface.</p>

<h3 id="génération-de-notes">Génération de Notes</h3>

<p>Mistral 7B analyse la transcription pour extraire :</p>

<ul>
  <li><strong>Résumé</strong> concis de la discussion</li>
  <li><strong>Points clés</strong> abordés</li>
  <li><strong>Actions à suivre</strong> avec personnes assignées</li>
  <li><strong>Titre</strong> descriptif automatique</li>
</ul>

<p>Vous pouvez aussi poser des questions : <em>“Qu’est-ce que Pierre a dit à propos du budget ?”</em></p>

<p>Toutes les réunions sont indexées via <strong>SQLite FTS5</strong> (recherche full-text) et exportables en <strong>Markdown</strong> ou <strong>texte brut</strong>.</p>

<h2 id="architecture-technique">Architecture Technique</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>┌──────────────────────────────────────────────────┐
│  Electron Main Process                           │
│  ├── NestJS Backend (injection de dépendances)  │
│  ├── stt-worker (sherpa-onnx, process isolé)    │
│  ├── llm-worker (node-llama-cpp, process isolé) │
│  └── SQLite (stockage local, recherche FTS5)    │
└──────────────────────────────────────────────────┘
                       │ IPC
┌──────────────────────┴───────────────────────────┐
│  Renderer Process (Angular 21)                   │
└──────────────────────────────────────────────────┘
</code></pre></div></div>

<h3 id="stack-technique">Stack Technique</h3>

<table>
  <thead>
    <tr>
      <th>Couche</th>
      <th>Technologies</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Desktop</strong></td>
      <td>Electron 34</td>
    </tr>
    <tr>
      <td><strong>Frontend</strong></td>
      <td>Angular 21, Signals, SCSS</td>
    </tr>
    <tr>
      <td><strong>Backend</strong></td>
      <td>NestJS 11, RxJS</td>
    </tr>
    <tr>
      <td><strong>Database</strong></td>
      <td>SQLite + FTS5 (recherche full-text)</td>
    </tr>
    <tr>
      <td><strong>Audio</strong></td>
      <td>Rust/napi-rs + ScreenCaptureKit</td>
    </tr>
    <tr>
      <td><strong>Build</strong></td>
      <td>Nx monorepo, Vite, Electron Forge</td>
    </tr>
  </tbody>
</table>

<h3 id="pourquoi-ces-choix-">Pourquoi Ces Choix ?</h3>

<ul>
  <li><strong>Electron</strong> — Accès natif au système (audio, fichiers), écosystème TypeScript</li>
  <li><strong>NestJS dans Electron</strong> — Architecture modulaire, injection de dépendances</li>
  <li><strong>Workers séparés</strong> — Isolation des modèles IA (crash-safe)</li>
  <li><strong>Rust pour l’audio</strong> — Performances natives, intégration ScreenCaptureKit</li>
</ul>

<h2 id="performance-sur-apple-silicon">Performance sur Apple Silicon</h2>

<table>
  <thead>
    <tr>
      <th>Métrique</th>
      <th>MacBook Pro M2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Transcription</td>
      <td>Temps réel</td>
    </tr>
    <tr>
      <td>Génération LLM</td>
      <td>~20 tokens/s</td>
    </tr>
    <tr>
      <td>RAM au pic</td>
      <td>~4 Go</td>
    </tr>
    <tr>
      <td>CPU actif</td>
      <td>15-30%</td>
    </tr>
  </tbody>
</table>

<p>Les puces Apple Silicon avec leur Neural Engine sont parfaitement adaptées.</p>

<h2 id="ce-que-jai-appris">Ce Que J’ai Appris</h2>

<h3 id="1-laudio-cest-compliqué">1. L’Audio, C’est Compliqué</h3>

<ul>
  <li>Resampling (48kHz → 16kHz)</li>
  <li>Conversion formats (Float32 → Int16 PCM)</li>
  <li>Mixage sources multiples</li>
  <li>Gestion buffers et latence</li>
</ul>

<h3 id="2-lia-locale-a-des-contraintes">2. L’IA Locale a des Contraintes</h3>

<ul>
  <li>16 Go RAM minimum</li>
  <li>Chargement initial de plusieurs secondes</li>
  <li>Qualité dépend de la quantification (Q4_K_M = bon compromis)</li>
</ul>

<h3 id="3-electron-nest-pas-mort">3. Electron N’est Pas Mort</h3>

<p>Malgré les critiques sur la mémoire, reste le meilleur choix pour desktop cross-platform avec accès natif.</p>

<h2 id="installation">Installation</h2>

<h3 id="prérequis">Prérequis</h3>

<table>
  <thead>
    <tr>
      <th>Composant</th>
      <th>Minimum</th>
      <th>Recommandé</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>macOS</td>
      <td>14.2 (Sonoma)</td>
      <td>15+ (Sequoia)</td>
    </tr>
    <tr>
      <td>Processeur</td>
      <td>Apple Silicon (M1)</td>
      <td>M2/M3/M4</td>
    </tr>
    <tr>
      <td>RAM</td>
      <td>16 Go</td>
      <td>32 Go</td>
    </tr>
    <tr>
      <td>Stockage</td>
      <td>10 Go</td>
      <td>20 Go</td>
    </tr>
  </tbody>
</table>

<h3 id="téléchargement-du-dmg">Téléchargement du DMG</h3>

<p><strong><a href="https://github.com/Lingelo/Sourdine/releases/download/v0.2.1-beta/Sourdine.dmg">Télécharger Sourdine v0.2.1-beta</a></strong></p>

<ol>
  <li>Ouvrir le DMG et glisser Sourdine dans Applications</li>
  <li>Exécuter cette commande (app non signée) :
    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>xattr <span class="nt">-cr</span> /Applications/Sourdine.app
</code></pre></div>    </div>
  </li>
  <li>Lancer Sourdine — L’assistant téléchargera les modèles IA (~5 Go)</li>
  <li>Accorder les permissions <strong>Microphone</strong> et <strong>Enregistrement d’écran</strong> au premier lancement</li>
</ol>

<blockquote>
  <p><strong>Beta</strong> : Cette version est en développement actif. Vos retours sont les bienvenus via <a href="https://github.com/Lingelo/Sourdine/issues">GitHub Issues</a>.</p>
</blockquote>

<h2 id="conclusion">Conclusion</h2>

<p><strong>Sourdine</strong> est né d’un besoin personnel : garder le contrôle sur mes données tout en bénéficiant de l’IA. Le projet est <strong>open source</strong> et les contributions sont bienvenues.</p>

<p><strong><a href="https://github.com/Lingelo/Sourdine">github.com/Lingelo/Sourdine</a></strong></p>

<hr />

<p><em>Si vous partagez cette préoccupation pour la vie privée, j’espère que ce projet vous sera utile.</em></p>
]]></content:encoded>
        <pubDate>Sun, 15 Feb 2026 00:00:00 +0100</pubDate>
        <link>https://angelo-lima.fr/fr/sourdine-transcription-reunions-ia-locale/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/fr/sourdine-transcription-reunions-ia-locale/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Développement</category>
          
          <category>Projet</category>
          
          <category>Open-Source</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/sourdine-transcription-ia.webp" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>Sourdine: Meeting Transcription with 100% Local AI</title>
        <description>
          
            Sourdine is an Electron app that transcribes your meetings in real-time and generates automatic notes with AI running entirely on your Mac. No API, no subscription, 100% privacy.
          
        </description>
        <content:encoded><![CDATA[<p>How many meetings do you have this week? And how many notes did you actually take? Between actively participating and taking detailed notes, you have to choose. This frustration led to <strong>Sourdine</strong> — with one major constraint: <strong>everything must stay on my machine</strong>.</p>

<h2 id="the-problem-cloud-ai-vs-privacy">The Problem: Cloud AI vs Privacy</h2>

<p>Transcription solutions (Otter.ai, Fireflies, Teams/Meet transcriptions) share one thing in common: <strong>your conversations go through their servers</strong>. Problematic for:</p>

<ul>
  <li>Strategic business meetings</li>
  <li>Confidential interviews</li>
  <li>Medical or legal discussions</li>
  <li>Anything that’s none of Google, Microsoft, or a startup’s business</li>
</ul>

<p>Not to mention the monthly subscriptions piling up.</p>

<h2 id="the-solution-all-local-zero-compromise">The Solution: All Local, Zero Compromise</h2>

<p><strong>Sourdine</strong> runs two AI models directly on your Mac:</p>

<table>
  <thead>
    <tr>
      <th>Model</th>
      <th>Size</th>
      <th>Role</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Parakeet TDT</strong> (NVIDIA)</td>
      <td>640 MB</td>
      <td>Speech-to-text transcription</td>
    </tr>
    <tr>
      <td><strong>Mistral 7B</strong></td>
      <td>4.4 GB</td>
      <td>Summaries, key points, contextual chat</td>
    </tr>
  </tbody>
</table>

<p>No internet connection needed after initial download. Your data never leaves your machine.</p>

<h2 id="how-it-works">How It Works</h2>

<h3 id="smart-audio-capture">Smart Audio Capture</h3>

<p>Sourdine captures two sources simultaneously:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Microphone (your voice)  →  ┐
                            ├→  Audio mixer  →  Transcription
System audio (Teams)     →  ┘
</code></pre></div></div>

<p>This dual capture uses <strong>ScreenCaptureKit</strong> (macOS 14.2+). I developed a native module in <strong>Rust</strong> with napi-rs to integrate it with Electron.</p>

<h3 id="transcription-pipeline">Transcription Pipeline</h3>

<table>
  <thead>
    <tr>
      <th>Step</th>
      <th>Technology</th>
      <th>Function</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1. Voice detection</td>
      <td>Silero VAD</td>
      <td>Identifies speech vs silence/noise</td>
    </tr>
    <tr>
      <td>2. Transcription</td>
      <td>Parakeet TDT via sherpa-onnx</td>
      <td>Converts audio to text</td>
    </tr>
    <tr>
      <td>3. AI notes</td>
      <td>Mistral 7B via node-llama-cpp</td>
      <td>Generates summary, actions, key points</td>
    </tr>
  </tbody>
</table>

<p>STT runs in a separate Node.js worker to avoid blocking the UI.</p>

<h3 id="note-generation">Note Generation</h3>

<p>Mistral 7B analyzes the transcription to extract:</p>

<ul>
  <li><strong>Summary</strong> of the discussion</li>
  <li><strong>Key points</strong> covered</li>
  <li><strong>Action items</strong> with assigned people</li>
  <li><strong>Title</strong> automatically generated</li>
</ul>

<p>You can also ask questions: <em>“What did Pierre say about the budget?”</em></p>

<p>All meetings are indexed via <strong>SQLite FTS5</strong> (full-text search) and can be exported as <strong>Markdown</strong> or <strong>plain text</strong>.</p>

<h2 id="technical-architecture">Technical Architecture</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>┌──────────────────────────────────────────────────┐
│  Electron Main Process                           │
│  ├── NestJS Backend (dependency injection)      │
│  ├── stt-worker (sherpa-onnx, isolated process) │
│  ├── llm-worker (node-llama-cpp, isolated)      │
│  └── SQLite (local storage, FTS5 search)        │
└──────────────────────────────────────────────────┘
                       │ IPC
┌──────────────────────┴───────────────────────────┐
│  Renderer Process (Angular 21)                   │
└──────────────────────────────────────────────────┘
</code></pre></div></div>

<h3 id="tech-stack">Tech Stack</h3>

<table>
  <thead>
    <tr>
      <th>Layer</th>
      <th>Technologies</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Desktop</strong></td>
      <td>Electron 34</td>
    </tr>
    <tr>
      <td><strong>Frontend</strong></td>
      <td>Angular 21, Signals, SCSS</td>
    </tr>
    <tr>
      <td><strong>Backend</strong></td>
      <td>NestJS 11, RxJS</td>
    </tr>
    <tr>
      <td><strong>Database</strong></td>
      <td>SQLite + FTS5 (full-text search)</td>
    </tr>
    <tr>
      <td><strong>Audio</strong></td>
      <td>Rust/napi-rs + ScreenCaptureKit</td>
    </tr>
    <tr>
      <td><strong>Build</strong></td>
      <td>Nx monorepo, Vite, Electron Forge</td>
    </tr>
  </tbody>
</table>

<h3 id="why-these-choices">Why These Choices?</h3>

<ul>
  <li><strong>Electron</strong> — Native system access (audio, files), TypeScript ecosystem</li>
  <li><strong>NestJS in Electron</strong> — Modular architecture, dependency injection</li>
  <li><strong>Separate workers</strong> — AI model isolation (crash-safe)</li>
  <li><strong>Rust for audio</strong> — Native performance, ScreenCaptureKit integration</li>
</ul>

<h2 id="performance-on-apple-silicon">Performance on Apple Silicon</h2>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th>MacBook Pro M2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Transcription</td>
      <td>Real-time</td>
    </tr>
    <tr>
      <td>LLM generation</td>
      <td>~20 tokens/s</td>
    </tr>
    <tr>
      <td>Peak RAM</td>
      <td>~4 GB</td>
    </tr>
    <tr>
      <td>Active CPU</td>
      <td>15-30%</td>
    </tr>
  </tbody>
</table>

<p>Apple Silicon chips with their Neural Engine are perfectly suited for this.</p>

<h2 id="what-i-learned">What I Learned</h2>

<h3 id="1-audio-is-complicated">1. Audio Is Complicated</h3>

<ul>
  <li>Resampling (48kHz → 16kHz)</li>
  <li>Format conversion (Float32 → Int16 PCM)</li>
  <li>Multi-source mixing</li>
  <li>Buffer and latency management</li>
</ul>

<h3 id="2-local-ai-has-constraints">2. Local AI Has Constraints</h3>

<ul>
  <li>16 GB RAM minimum</li>
  <li>Initial loading takes several seconds</li>
  <li>Quality depends on quantization (Q4_K_M = good compromise)</li>
</ul>

<h3 id="3-electron-is-not-dead">3. Electron Is Not Dead</h3>

<p>Despite criticism about memory usage, still the best choice for cross-platform desktop with native access.</p>

<h2 id="installation">Installation</h2>

<h3 id="requirements">Requirements</h3>

<table>
  <thead>
    <tr>
      <th>Component</th>
      <th>Minimum</th>
      <th>Recommended</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>macOS</td>
      <td>14.2 (Sonoma)</td>
      <td>15+ (Sequoia)</td>
    </tr>
    <tr>
      <td>Processor</td>
      <td>Apple Silicon (M1)</td>
      <td>M2/M3/M4</td>
    </tr>
    <tr>
      <td>RAM</td>
      <td>16 GB</td>
      <td>32 GB</td>
    </tr>
    <tr>
      <td>Storage</td>
      <td>10 GB</td>
      <td>20 GB</td>
    </tr>
  </tbody>
</table>

<h3 id="download-the-dmg">Download the DMG</h3>

<p><strong><a href="https://github.com/Lingelo/Sourdine/releases/download/v0.2.1-beta/Sourdine.dmg">Download Sourdine v0.2.1-beta</a></strong></p>

<ol>
  <li>Open the DMG and drag Sourdine to Applications</li>
  <li>Run this command (app is not signed):
    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>xattr <span class="nt">-cr</span> /Applications/Sourdine.app
</code></pre></div>    </div>
  </li>
  <li>Launch Sourdine — The wizard will download AI models (~5 GB)</li>
  <li>Grant <strong>Microphone</strong> and <strong>Screen Recording</strong> permissions on first launch</li>
</ol>

<blockquote>
  <p><strong>Beta</strong>: This version is under active development. Feedback is welcome via <a href="https://github.com/Lingelo/Sourdine/issues">GitHub Issues</a>.</p>
</blockquote>

<h2 id="conclusion">Conclusion</h2>

<p><strong>Sourdine</strong> was born from a personal need: keeping control over my data while benefiting from AI. The project is <strong>open source</strong> and contributions are welcome.</p>

<p><strong><a href="https://github.com/Lingelo/Sourdine">github.com/Lingelo/Sourdine</a></strong></p>

<hr />

<p><em>If you share this concern for privacy, I hope this project will be useful to you.</em></p>
]]></content:encoded>
        <pubDate>Sun, 15 Feb 2026 00:00:00 +0100</pubDate>
        <link>https://angelo-lima.fr/en/sourdine-transcription-reunions-ia-locale-en/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/en/sourdine-transcription-reunions-ia-locale-en/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Développement</category>
          
          <category>Projet</category>
          
          <category>Open-Source</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/sourdine-transcription-ia.webp" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>Human and Machine: Entropy, Intelligence, and What Still Sets Us Apart</title>
        <description>
          
            A philosophical exploration of entropy, human and artificial intelligence, and the inner chaos that makes us irreplaceable.
          
        </description>
        <content:encoded><![CDATA[<h2 id="introduction-a-universal-law-nobody-explained-to-you">Introduction: A Universal Law Nobody Explained to You</h2>

<p>There’s a physical law you apply every day without knowing it. It explains why your desk gets messy, why your coffee cools down, why your projects drift, why your teams become disorganized, and perhaps even why you sometimes feel overwhelmed by your emotions.</p>

<p>This law is the <strong>second law of thermodynamics</strong>: the entropy of an isolated system can only increase. In other words: without effort, everything tends toward disorder.</p>

<p>But entropy isn’t really “disorder” in the sense of a messy room. It’s about the <strong>number of possible configurations</strong> [2]. An assembled puzzle has only one correct configuration—low entropy. A scattered puzzle can be mixed in billions of ways—high entropy. And if you shake the box, the puzzle will never solve itself. Things spontaneously move toward the state with the most possible configurations. Always.</p>

<p>This idea has profound implications. On how we work, think, and feel. And above all, it sheds new light on the question that obsesses our era: <strong>what separates human intelligence from artificial intelligence?</strong> The answer might well lie in entropy itself.</p>

<hr />

<h2 id="life-the-anti-entropic-anomaly">Life: The Anti-Entropic Anomaly</h2>

<p>In a universe inexorably marching toward total disorder, life is a spectacular anomaly. From a few simple molecules, it builds organisms of staggering complexity—cells that divide, organs that cooperate, brains that think. Life creates order where there shouldn’t be any.</p>

<p>But it doesn’t violate thermodynamics. It circumvents it. A living organism creates order <strong>locally</strong> by increasing disorder <strong>around it</strong>. You eat ordered food, you release heat and waste. The global balance remains positive in entropy. The universe continues its march toward chaos, but life has found how to swim against the current—temporarily, locally, at the cost of constant energy expenditure.</p>

<p>Erwin Schrödinger understood this as early as 1944 in his book <em>What is Life?</em> [1]: a living organism literally feeds on <strong>negative entropy</strong>. It draws order from its environment to maintain its own structure. As soon as it stops—that’s death. The return to thermodynamic equilibrium. The return to disorder.</p>

<p>This idea is dizzying: <strong>to live is to resist entropy</strong>. Every heartbeat, every breath, every thought is an act of resistance against the universe’s natural tendency toward chaos.</p>

<p>And it’s this resistance that underlies everything we do—including what we call work.</p>

<hr />

<h2 id="human-work-a-universal-struggle-against-disorder">Human Work: A Universal Struggle Against Disorder</h2>

<p>If life is resistance to entropy, then <strong>work is its primary tool</strong>. And not just intellectual or technical work. All professions, without exception, are forms of struggle against disorder.</p>

<h3 id="the-surgeon">The Surgeon</h3>

<p>A sick body is a system whose entropy is increasing—cells become disorganized, organs malfunction, biological processes derail. The surgeon intervenes to <strong>restore order</strong>. They repair, restructure, realign. Every suture is an anti-entropic act. But the operating room itself generates disorder: energy consumed, materials used, staff fatigue. Order is always local, and it always has a cost.</p>

<p>Today, AI systems assist surgeons—image analysis, surgical planning, robotic surgery. They reduce uncertainty upstream. But at the critical moment, when the patient’s body presents an unforeseen anomaly, it’s the surgeon’s intuition—nourished by thousands of hours of embodied practice, by the sensation of tissue under their fingers, by that ability to “sense” that something is wrong—that makes the difference. AI optimizes the plan. The human navigates the chaos.</p>

<h3 id="the-farmer">The Farmer</h3>

<p>A field left to itself returns to wilderness. Weeds invade, soil depletes, biodiversity simplifies. The farmer imposes order: selecting species, structuring rows, controlling irrigation. They transform a chaotic ecosystem into an organized productive system. But again, at the cost of enormous energy expenditure—fuel, fertilizers, physical labor.</p>

<p>Precision agriculture now uses drones, sensors, and algorithms to optimize irrigation and treatments. AI excels at regularity: analyzing satellite data, predicting yields, detecting diseases in images. But the farmer who senses a storm coming by looking at the sky, who knows soil needs rest by taking it in their hand, who adapts practices to a microclimate no algorithm models—they operate in a dimension the machine doesn’t yet touch. Their intelligence is <strong>embodied in the earth</strong> [8].</p>

<h3 id="the-teacher">The Teacher</h3>

<p>An untrained mind is a space of high informational entropy [3]. Ideas are fragmented, connections random, understanding of the world fuzzy. The teacher reduces this entropy: structuring knowledge, creating logical links, building frameworks of understanding. They transform noise into signal.</p>

<p>Adaptive learning platforms and AI tutors already do part of this work—and sometimes better than humans for pure information transmission. But a teacher does much more than transmit knowledge. They perceive the discouraged look of the student in the third row. They sense the exact moment when a class disengages. They adapt their speech not to performance metrics, but to a collective energy they physically feel in the room. AI can personalize a learning path. The teacher creates the <strong>desire to learn</strong>—and that’s emotional entropy transformed into motivation.</p>

<h3 id="the-manager">The Manager</h3>

<p>A team without direction is a high-entropy system. People work in their own directions, priorities are unclear, efforts scatter. The manager creates order: aligning objectives, clarifying roles, coordinating actions.</p>

<p>AI tools can already analyze a team’s velocity, suggest resource allocations, identify workflow blockers. But management, in its most essential dimension, is <strong>emotional work</strong>. It’s knowing that a colleague is going through a divorce and adjusting expectations without saying it explicitly. It’s sensing tension between two people before it explodes. It’s inspiring a collective to give their best when everything seems lost. The machine manages flows. The human manages souls.</p>

<h3 id="the-developer">The Developer</h3>

<p>Code without architecture is chaos. Overlapping functions, circular dependencies, incomprehensible variable names. The developer imposes structure: patterns, conventions, abstractions.</p>

<p>This is perhaps the profession where the human-machine boundary is thinnest today. Code AIs generate functions, entire modules, sometimes complete applications. But as I detailed in my <a href="/en/will-ai-replace-developers-critical-analysis/">critical analysis of AI and developer replacement</a>, generated code is often “almost correct”—and the “almost” hides hours of debugging. The developer’s true value isn’t in writing code. It’s in <strong>understanding the problem</strong>—that ability to translate a fuzzy human need into a coherent software architecture. AI writes code. The human understands <strong>why</strong> that code must exist.</p>

<h3 id="the-artist">The Artist</h3>

<p>One might think art is pure chaos, pure entropy. But it’s exactly the opposite. Facing a blank canvas—a space of infinite possibilities, maximum entropy—the artist makes choices. Every brushstroke reduces possibilities. Every composed note eliminates alternatives. Art is the imposition of a singular order on a space of infinite chaos.</p>

<p>Generative AIs now produce stunning images, music, texts. Technically, they reduce entropy: they converge toward structured outputs from statistical noise. But something fundamental is missing. A human artist paints because they <strong>suffer</strong>, because they’ve seen something that shook them, because they want to say something words cannot express. AI generates because it’s asked to generate. The difference isn’t in the result—it’s in the <strong>intention</strong>. And intention is born from inner chaos. From lived experience. From emotional entropy.</p>

<h3 id="the-lawyer">The Lawyer</h3>

<p>Law is a monumental attempt to reduce social entropy. Without laws, human interactions are unpredictable—high entropy. The legal system imposes rules, procedures, consequences that reduce the number of possible behaviors.</p>

<p>Legal AIs already analyze jurisprudence, predict trial outcomes, generate contracts. But law, in its most critical moments, is an exercise in <strong>structured empathy</strong>. To plead is to understand a jury’s emotions. To judge is to weigh the human intention behind an act. To legislate is to anticipate a society’s passions. Law without humanity is mere bureaucracy—dead order, without the breath of chaos that makes it just.</p>

<h3 id="the-chef">The Chef</h3>

<p>Raw ingredients are a system of high culinary entropy—they can be combined in an almost infinite number of ways, the overwhelming majority of which will be inedible. The chef selects, doses, transforms, assembles according to precise principles to produce an ordered result.</p>

<p>AIs generate recipes, optimize flavor combinations, analyze taste profiles. But a great chef doesn’t follow a recipe—they <strong>feel</strong> it. They taste and adjust in real-time, guided by a sensory memory no database reproduces. Cooking, at its highest level, is a dialogue between body and matter [9]. Between a chaos of flavors and an order that emerges from intuition.</p>

<hr />

<p>The pattern is universal: in every profession, AI excels in the <strong>anti-entropic dimension</strong>—structuring, optimizing, predicting, reducing uncertainty. But humans bring something the machine doesn’t have: the <strong>inner chaos</strong> that gives order its meaning, its direction, and its depth. AI is a canal. The human is a river.</p>

<hr />

<h2 id="intelligence-the-ultimate-anti-entropic-weapon">Intelligence: The Ultimate Anti-Entropic Weapon</h2>

<p>If work is the struggle against entropy, intelligence is the most sophisticated weapon in this arsenal.</p>

<p>Physicist Alex Wissner-Gross proposed an elegant idea in 2013 [4]: intelligent behavior is what <strong>maximizes future options</strong>. An intelligent system acts to keep as many doors open as possible. It’s paradoxical: it looks like maximizing entropy (more possibilities), but in reality it’s <strong>controlling</strong> which possibilities remain open. It’s directed entropy.</p>

<p>Take a chess player. A beginner reduces their own options with each move without realizing it. A grandmaster maintains a position that leaves them a maximum of viable future moves. They don’t create disorder on the board—they <strong>preserve a structured space of possibilities</strong>.</p>

<p>This definition applies to all domains. A good doctor keeps therapeutic options open rather than rushing to a diagnosis. A good investor diversifies rather than betting everything on one position. A good software architect designs extensible systems rather than rigid ones. In each case, intelligence consists of <strong>resisting the premature closure of possibilities</strong>.</p>

<p>Neuroscience suggests the brain operates at <strong>criticality</strong> [5]—that boundary between order and chaos where information propagates most richly. Too much neural order and the brain becomes rigid, unable to adapt. Too much chaos and it can no longer process information coherently. Intelligence emerges at the edge of chaos.</p>

<p>And this is where the comparison with AI becomes revealing.</p>

<hr />

<h2 id="ai-anti-entropy-without-chaos">AI: Anti-Entropy Without Chaos</h2>

<p>A language model is fundamentally an <strong>informational entropy reduction machine</strong> [3]. You ask a vague question—there are millions of possible answers (high entropy). AI gives you a relevant answer—it drastically reduces uncertainty (low entropy). This is literally what an LLM does with each generated token: it chooses among thousands of possible words the one most probable in context.</p>

<p>AI is extraordinarily efficient at this entropy reduction. Often more efficient than a human. It processes more data, faster, with fewer cognitive biases. For purely anti-entropic tasks—classifying, sorting, optimizing, predicting—it’s already superior in many domains.</p>

<p>But there’s a cost, and not just energetic. As I explored in my article on <a href="/en/ai-ecological-impact-training-vs-inference-environmental-costs/">AI’s ecological cost</a>, the datacenters running these models consume massive amounts of energy and produce heat [12]. AI creates informational order by increasing physical disorder elsewhere. Thermodynamics won’t be fooled.</p>

<p>And there’s an even deeper difference. A living organism <strong>maintains itself</strong> [1]. It actively fights against its own degradation. It repairs, adapts, evolves. AI does none of that. Without humans to supply energy, maintain it, correct it, it stops. It doesn’t resist entropy—it’s a tool <strong>in</strong> humanity’s resistance to entropy.</p>

<p>AI is anti-entropic, yes. But it’s anti-entropic <strong>without the counterweight of chaos</strong>. And that’s perhaps where its fundamental limit lies.</p>

<hr />

<h2 id="agi-the-dream-of-a-machine-like-us">AGI: The Dream of a Machine Like Us</h2>

<p>The question everyone asks: could artificial general intelligence bridge this gap?</p>

<p>In theory, an AGI would be an incredible concentrate of order. It could understand, plan, adapt, create in any domain. It would be anti-entropic at a scale we can’t even imagine.</p>

<p>But to be <strong>truly</strong> intelligent in the human sense, it would need something nobody yet knows how to give it: <strong>something to lose</strong>.</p>

<p>A human thinks with urgency because they’re mortal. They create because they suffer. They innovate because they’re afraid. They love because they know it can end. All this existential entropy—the chaos of being a fragile body in an unpredictable world—isn’t a bug in human intelligence. It’s its <strong>engine</strong>.</p>

<p>An AGI, even infinitely more powerful than any human brain, would be intelligent <strong>differently</strong>. It could optimize, solve, structure better than us. But could it write a poem that makes you cry? Not because it doesn’t know how to assemble words—it already knows that. But because behind a touching poem, there’s someone who <strong>lived</strong> the chaos they describe. Someone for whom these words aren’t probabilistic tokens but scars.</p>

<p>There’s also the body argument—what philosophers and neuroscientists call <strong>embodied cognition</strong> [8] [9]. Our intelligence isn’t just in the brain. How you think is shaped by having hands, by feeling hunger, by having back pain, by smelling coffee in the morning. All this sensory experience feeds thought in a way a purely informational system cannot reproduce.</p>

<p>You can’t simulate the fear of death if you can’t die. You can’t understand the joy of a shared meal if you’ve never been hungry. You can’t grasp the beauty of a sunset if you don’t have a retina that vibrates.</p>

<p>It’s the difference between a river and a canal. Both carry water. The canal is more efficient—no meanders, no floods, no surprises. But only the river can carve a canyon. Because the canyon is born from chaos—from the brute force of water that follows no plan, that erodes, that overflows, that destroys to create.</p>

<p>AGI would be a perfect canal. The human is a river. And the world needs both.</p>

<hr />

<h2 id="emotions-the-necessary-chaos-the-machine-will-never-have">Emotions: The Necessary Chaos the Machine Will Never Have</h2>

<p>This is where the human-machine comparison becomes sharpest.</p>

<p>If intelligence is anti-entropic, emotions seem to be the exact opposite. Anger, fear, love, jealousy—they don’t follow logic, they don’t maximize options, they <strong>overwhelm</strong> rational thought. In thermodynamic terms, emotions introduce disorder into the ordered mechanics of intelligence.</p>

<p>But is this a design flaw?</p>

<p>Neurologist Antonio Damasio studied patients with lesions in the ventromedial prefrontal cortex [6]—the area connecting reasoning to emotions. Their IQ was intact. Their logic worked perfectly. But without feeling, they became <strong>incapable of making decisions</strong>. They could analyze the pros and cons of a restaurant for hours without ever choosing. Their pure intelligence, deprived of emotional “noise,” was paralyzed.</p>

<p>Read that last sentence carefully. <strong>Pure intelligence, without emotions, is paralyzed.</strong> This is exactly the condition of an AI. It doesn’t choose—it calculates the highest probability. It doesn’t decide—it optimizes a cost function. It doesn’t act—it executes. The difference between choosing and calculating is created by emotional chaos.</p>

<p>Emotions are a form of <strong>functional entropy</strong>—disorder the system uses as fuel. Fear makes you flee without thinking—which saves your life when a truck is heading toward you. Love pushes you to protect your children at the expense of your own safety—which is “irrational” but biologically brilliant. Enthusiasm pushes you to start an impossible project—which sometimes leads to discoveries pure reason would never have allowed.</p>

<p>If we return to the idea of neural criticality [5], emotions are precisely what prevents the brain from becoming too rigid. They inject just enough chaos to remain adaptive, creative, alive.</p>

<p>That’s why an AI, however powerful, lacks something fundamental. It lacks that <strong>entropic engine</strong> that pushes one to act without calculated reason, to create without guaranteed results, to take irrational risks—in short, to be alive. AI has no guts. And guts, in thermodynamics as in philosophy, matter.</p>

<hr />

<h2 id="emotional-intelligence-taming-the-chaos-the-machine-doesnt-know">Emotional Intelligence: Taming the Chaos the Machine Doesn’t Know</h2>

<p>Then comes a modern concept: <strong>emotional intelligence</strong>. Observing your emotions, naming them, regulating them, using them wisely. It’s applying anti-entropy to what is fundamentally entropic. It’s a fascinating meta-level: intelligence turning against the chaos that feeds it.</p>

<p>Every human culture has attempted this domestication. Greek Stoicism proposed <em>apatheia</em> [11]—not the absence of emotions, but their mastery through reason. Buddhism aims for detachment through meditation. Cognitive-behavioral therapy restructures dysfunctional emotional patterns. Modern personal development promises to “manage your emotions” like managing an investment portfolio.</p>

<p>But here’s the troubling observation: <strong>it never fully works</strong>. You can meditate for ten years, and a betrayal or bereavement brings you back to raw chaos in a second. You can be the calmest, most structured manager in the world, and an unexpected crisis awakens panic. Emotional intelligence is a constant effort that never ends.</p>

<p>This is exactly what thermodynamics predicts. Maintaining order requires permanent effort. As soon as you stop, entropy returns. Emotional intelligence isn’t an achievement—it’s a permanent conquest against our own entropy.</p>

<p>And this may be our <strong>ultimate competitive advantage</strong> over the machine. AI doesn’t need emotional intelligence—it has no emotions to manage. But it’s precisely because we must navigate our own inner chaos that we’re capable of empathy, compassion, deep understanding. Emotional intelligence isn’t a human luxury—it’s the byproduct of a struggle only living beings can wage. And this struggle produces something no algorithm can manufacture: <strong>wisdom</strong>.</p>

<p>But individual wisdom wasn’t enough. Facing the immensity of chaos—death, suffering, the absurd—humanity needed a larger framework. Long before emotional intelligence, long before philosophy, long before science, it had found another tool to fight existential entropy: religion.</p>

<hr />

<h2 id="spirituality-the-oldest-response-to-chaos">Spirituality: The Oldest Response to Chaos</h2>

<p>Look at religions through the lens of entropy, and something striking appears: every spiritual tradition, whatever it may be, is fundamentally an <strong>anti-entropic system applied to human existence</strong> [15].</p>

<p>Existential chaos—awareness of death, suffering, injustice, the absurd—is perhaps the most vertiginous form of entropy the human mind faces. Why am I here? Why suffering? What happens after death? These questions are chasms of uncertainty, spaces of infinite possibilities where the mind can get lost. High existential entropy.</p>

<p>And religion, in all its forms, proposes exactly what any anti-entropic struggle does: <strong>reduce the number of possible configurations</strong>. It provides a framework. A narrative. An order.</p>

<p>Monotheism imposes a single God, a plan, a direction to the universe—where chaos suggests the absence of meaning. Buddhism proposes the Four Noble Truths and the Eightfold Path—a methodical structure for navigating suffering. Hinduism offers the concept of dharma—a cosmic order assigning everyone a role in the greater whole. Animist and shamanic traditions create a network of links between human, nature, and spirits—a mesh of meaning where there could be only void.</p>

<p>In each case, the mechanism is the same: facing a universe that seems chaotic and indifferent, spirituality creates a <strong>structuring narrative</strong> that reduces the anguish of infinity. It transforms “everything is possible and nothing has meaning” into “here is the path, here is the reason, here is your place.”</p>

<h3 id="the-anti-entropy-of-rituals">The Anti-Entropy of Rituals</h3>

<p>Religions don’t just provide intellectual answers. They also structure <strong>time and behavior</strong> [16]—two dimensions where entropy constantly threatens us.</p>

<p>Prayer five times a day in Islam. The weekly Shabbat in Judaism. Sunday Mass in Christianity. Meditation cycles in Buddhism. Fasts, festivals, pilgrimages. All these rituals do exactly the same thing: they impose an <strong>ordered rhythm</strong> on the chaotic flow of existence. They are anti-entropic metronomes.</p>

<p>Without ritual, days blur together. Time loses its structure. Meaning crumbles. This is what many non-religious people are rediscovering today: the need for secular rituals—morning meditation, journaling, exercise routines—to maintain inner order. The form has changed, but the anti-entropic function remains the same.</p>

<p>And collective rituals add an additional dimension: they synchronize the inner chaos of thousands of individuals into a <strong>shared ordered experience</strong> [15]. A collective prayer, a shared song, a silence observed together—these are moments when social entropy is temporarily reduced to almost zero. Everyone feels the same thing, at the same moment, in the same place. It’s extraordinarily powerful. And it’s something no technology has managed to reproduce.</p>

<h3 id="faith-accepting-chaos-to-transcend-it">Faith: Accepting Chaos to Transcend It</h3>

<p>But there’s a fascinating paradox in spirituality that distinguishes it from all other forms of anti-entropic struggle.</p>

<p>Science reduces entropy by <strong>eliminating</strong> uncertainty: it measures, proves, verifies. Technology reduces entropy by <strong>controlling</strong>: it automates, optimizes, predicts. Religion does something radically different: it reduces entropy by <strong>accepting the incomprehensible</strong>.</p>

<p>To believe is to recognize that you don’t understand everything—and find peace in that acceptance. It’s living with mystery without being destroyed by it. It’s the most paradoxical form of anti-entropy: creating inner order not by eliminating chaos, but by giving it a <strong>status</strong>. Mystery is no longer a threat—it becomes sacred.</p>

<p>This is exactly what AI cannot do. An AI facing uncertainty does one of two things: it calculates a probability, or it signals that it lacks data. It cannot <strong>accept</strong> mystery. It cannot find beauty in what it doesn’t understand. It cannot be moved by infinity.</p>

<p>The spiritual quest may be the ultimate proof of our entropic nature. We seek meaning because we live in chaos. We pray, meditate, believe because our inner chaos—our fears, our awareness of death, our visceral need to understand—pushes us there. The machine doesn’t have this quest because it doesn’t have this chaos. It doesn’t need God because it doesn’t need meaning. And perhaps that’s the deepest difference between human and machine: not intelligence, not emotions, but the <strong>ability to search for something we may never find</strong>—and keep searching anyway.</p>

<hr />

<h2 id="human-duality-what-the-machine-cannot-be">Human Duality: What the Machine Cannot Be</h2>

<p>The human being isn’t a creature of order. Nor is it a creature of chaos. It is the <strong>battlefield</strong> between the two. And it’s this tension—this permanent oscillation between structure and disorder—that produces what we call the human experience.</p>

<p>Creativity is born from this tension. A musician who knows only music theory (pure order) composes technically perfect but soulless pieces. A musician who knows nothing about theory (pure chaos) produces noise. The music that moves us is born exactly at the boundary between the two. Enough structure to be understandable. Enough chaos to be surprising. This is exactly what AI doesn’t do: it produces structure <strong>without</strong> the lived chaos that makes it moving.</p>

<p>The same principle applies to innovation. The most revolutionary advances rarely come from pure method or pure chance. They come from that intermediate zone: a structured mind that accepts being surprised by the unexpected. Penicillin, Post-its, microwaves—all discoveries born from the meeting between an ordered system and a chaotic accident. An AI can optimize a research process. But it can’t have the happy accident that changes everything, because it has no body that stumbles, no hand that slips, no attention that drifts toward a fascinating anomaly.</p>

<p>Even our human relationships obey this logic. A relationship that’s too ordered—too predictable, too controlled—suffocates. A relationship that’s too chaotic—without landmarks, without commitment—exhausts. Relationships that last are those that find this dynamic balance between stability and surprise. AI can simulate a conversation. It can’t live a relationship, because a relationship implies the risk of emotional chaos—and that risk is what gives it value.</p>

<hr />

<h2 id="the-future-neither-replacement-nor-opposition-but-complementarity">The Future: Neither Replacement Nor Opposition, But Complementarity</h2>

<p>If AI is the canal and the human is the river, then the future isn’t in replacing one with the other, nor in their opposition, but in their <strong>complementarity</strong>.</p>

<p>AI excels at what we do poorly: processing massive volumes of information, maintaining constant attention, eliminating cognitive biases, optimizing complex systems. It’s an unprecedented anti-entropic amplifier.</p>

<p>Humans excel at what AI cannot do: giving meaning, feeling, understanding others, navigating ambiguity, creating from lived experience, making decisions in total uncertainty. They are the <strong>meaning generators</strong> in a world the machine can order but not understand.</p>

<p>Tomorrow’s surgeon will use AI to plan operations with superhuman precision—and make the difference when the plan fails. The teacher will use AI to personalize each learning path—and inspire students through passion, humanity, their own doubts. The developer will use AI to write code faster—and bring deep understanding of the human problem the code must solve. The artist will use AI as an extraordinary brush—and provide the vision, pain, and beauty that give the work its reason for existence.</p>

<p>In every profession, the same dynamic: <strong>the machine reduces entropy, the human gives it meaning</strong>.</p>

<hr />

<h2 id="what-entropy-teaches-us-about-meaning">What Entropy Teaches Us About Meaning</h2>

<p>If everything tends toward disorder, if every act of order is temporary and costly, what’s the point?</p>

<p>That’s perhaps the wrong question. The right question would be: <strong>doesn’t meaning emerge precisely from this struggle?</strong></p>

<p>Philosopher Albert Camus imagined Sisyphus happy [10]—this man condemned to push a boulder up a mountain only to watch it roll back down eternally. The absurdity of the task doesn’t make it meaningless. It’s in the struggle itself that Sisyphus finds his dignity.</p>

<p>We are all Sisyphus. The surgeon heals patients who will fall ill again. The teacher forms minds that will forget. The developer writes code that will become obsolete. The manager organizes teams that will reorganize. The artist creates works that time will alter. The farmer cultivates fields that seasons will ravage.</p>

<p>And yet, we continue. Not because we ignore entropy, but because the struggle against it is what defines us.</p>

<p>AI cannot be Sisyphus. It has no boulder. It has no mountain. It has neither awareness of the task’s absurdity nor the dignity of pursuing it anyway. It can push harder, faster, longer than us. But it doesn’t know <strong>why</strong> it pushes. And it’s the “why” that makes Sisyphus a hero.</p>

<p>Entropy tells us nothing lasts. But it also tells us that everything beautiful, true, and good that exists was torn from chaos by conscious effort. And that may be the most honest definition of meaning—a definition only a being who knows chaos can understand.</p>

<hr />

<h2 id="conclusion-what-the-machine-teaches-us-about-ourselves">Conclusion: What the Machine Teaches Us About Ourselves</h2>

<p>It’s ironic that it’s the advent of artificial intelligence that forces us to ask the most human question of all: <strong>what makes us irreplaceable?</strong></p>

<p>The answer, seen through the lens of entropy, is clear. It’s not our intelligence—the machine is already faster. It’s not our memory—the machine is already vaster. It’s not our logic—the machine is already more rigorous.</p>

<p>What makes us irreplaceable is our <strong>chaos</strong>. Our emotions, our mortality, our body, our contradictions, our fears, our irrational hopes, our quest for meaning in the face of absurdity. All that inner disorder we spend our lives trying to tame—through intelligence, emotions, spirituality, work—is precisely what gives our intelligence its depth, our creativity its power, our existence its meaning.</p>

<p>Entropy isn’t our enemy. It’s the backdrop against which everything valuable is drawn. Without it, there would be no need to heal, teach, build, create, love. Meaning exists only because disorder threatens it.</p>

<p>The machine is our ally in this struggle. It amplifies our ability to create order. But it can’t fight the battle for us, because the battle isn’t only against external disorder—it’s also against inner disorder. And it’s from this battle—intimate, painful, permanent—the same battle waged by the monk in prayer, the artist before their canvas, the parent consoling their child at three in the morning—that everything that makes us human beings is born.</p>

<p>So the next time you feel overwhelmed by chaos—at work, in your head, in your life—remember this: you’re not failing. You’re doing exactly what life has been doing for 3.8 billion years. You’re resisting entropy. And the simple fact that you’re there, conscious, reading these words, capable of feeling something while reading them—that, no machine can do. And that’s already everything.</p>

<hr />

<p><em>This essay was born from an exploratory conversation between a human and an artificial intelligence about the nature of entropy. The intuitions, doubts, and unexpected connections are human—creative chaos. The structuring, development, and writing were assisted by Claude (Anthropic)—informational anti-entropy. Neither would have produced this text alone. And perhaps that’s the future: not human against machine, but human with machine, in a dance between order and chaos that produces something neither could create separately. The sources below were verified by the author.</em></p>

<hr />

<h2 id="sources-and-references">Sources and References</h2>

<h3 id="thermodynamics-and-entropy">Thermodynamics and Entropy</h3>

<p>[1] <strong>Schrödinger, E.</strong> (1944). <em>What is Life? The Physical Aspect of the Living Cell.</em> Cambridge University Press. — The concept of negative entropy (<em>negentropy</em>) as the engine of life.</p>

<p>[2] <strong>Boltzmann, L.</strong> (1877). <em>Über die Beziehung zwischen dem zweiten Hauptsatze der mechanischen Wärmetheorie und der Wahrscheinlichkeitsrechnung.</em> — The statistical formulation of entropy (S = k·log W).</p>

<p>[3] <strong>Shannon, C.E.</strong> (1948). “A Mathematical Theory of Communication.” <em>Bell System Technical Journal</em>, 27(3), 379–423. — The link between informational and physical entropy.</p>

<h3 id="intelligence-and-entropy">Intelligence and Entropy</h3>

<p>[4] <strong>Wissner-Gross, A.D. &amp; Freer, C.E.</strong> (2013). “Causal Entropic Forces.” <em>Physical Review Letters</em>, 110(16). — Intelligence as maximization of future options.</p>

<p>[5] <strong>Beggs, J.M. &amp; Plenz, D.</strong> (2003). “Neuronal Avalanches in Neocortical Circuits.” <em>Journal of Neuroscience</em>, 23(35), 11167–11177. — Neural criticality: the brain at the edge of chaos.</p>

<h3 id="emotions-and-decision-making">Emotions and Decision-Making</h3>

<p>[6] <strong>Damasio, A.</strong> (1994). <em>Descartes’ Error: Emotion, Reason, and the Human Brain.</em> Putnam Publishing. — The somatic marker hypothesis: without emotions, no decision.</p>

<p>[7] <strong>Damasio, A.</strong> (1999). <em>The Feeling of What Happens: Body and Emotion in the Making of Consciousness.</em> Harcourt Brace. — The role of emotions in consciousness.</p>

<h3 id="embodied-cognition">Embodied Cognition</h3>

<p>[8] <strong>Varela, F.J., Thompson, E. &amp; Rosch, E.</strong> (1991). <em>The Embodied Mind: Cognitive Science and Human Experience.</em> MIT Press. — Intelligence isn’t just in the brain, it’s in the body.</p>

<p>[9] <strong>Clark, A.</strong> (1997). <em>Being There: Putting Brain, Body, and World Together Again.</em> MIT Press. — Body and environment as active participants in cognition.</p>

<h3 id="philosophy-and-meaning">Philosophy and Meaning</h3>

<p>[10] <strong>Camus, A.</strong> (1942). <em>The Myth of Sisyphus.</em> Gallimard. — The absurd and the dignity of struggle.</p>

<p>[11] <strong>Epictetus.</strong> <em>Enchiridion (Handbook).</em> ~125 CE. — The foundations of Stoicism.</p>

<h3 id="ai-and-ecological-cost">AI and Ecological Cost</h3>

<p>[12] <strong>Strubell, E., Ganesh, A. &amp; McCallum, A.</strong> (2019). “Energy and Policy Considerations for Deep Learning in NLP.” <em>Proceedings of the 57th Annual Meeting of the ACL.</em> — The energy cost of large models.</p>

<h3 id="religion-and-anthropology">Religion and Anthropology</h3>

<p>[15] <strong>Durkheim, É.</strong> (1912). <em>The Elementary Forms of Religious Life.</em> Félix Alcan. — Religion as a structuring social fact.</p>

<p>[16] <strong>Eliade, M.</strong> (1957). <em>The Sacred and the Profane.</em> Gallimard. — Sacred time (ordered) vs. profane time (chaotic).</p>
]]></content:encoded>
        <pubDate>Sun, 08 Feb 2026 00:00:00 +0100</pubDate>
        <link>https://angelo-lima.fr/en/entropy-human-machine/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/en/entropy-human-machine/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Personnel</category>
          
        
        
      </item>
    
      <item>
        <title>L&apos;Humain et la Machine : Entropie, Intelligence et ce qui nous sépare encore</title>
        <description>
          
            Une exploration philosophique de l&apos;entropie, de l&apos;intelligence humaine et artificielle, et de ce chaos intérieur qui fait de nous des êtres irremplaçables.
          
        </description>
        <content:encoded><![CDATA[<h2 id="introduction--une-loi-universelle-que-personne-ne-vous-a-expliquée">Introduction : Une loi universelle que personne ne vous a expliquée</h2>

<p>Il existe une loi physique que vous appliquez chaque jour sans le savoir. Elle explique pourquoi votre bureau se désordonne, pourquoi votre café refroidit, pourquoi vos projets dérivent, pourquoi vos équipes se désorganisent, et peut-être même pourquoi vous vous sentez parfois submergé par vos émotions.</p>

<p>Cette loi, c’est le <strong>deuxième principe de la thermodynamique</strong> : l’entropie d’un système isolé ne peut qu’augmenter. Dit autrement : sans effort, tout tend vers le désordre.</p>

<p>Mais l’entropie n’est pas vraiment “le désordre” au sens où on range mal sa chambre. C’est une question de <strong>nombre de configurations possibles</strong> [2]. Un puzzle assemblé n’a qu’une seule configuration correcte — entropie faible. Un puzzle en vrac peut être mélangé de milliards de façons — entropie élevée. Et si vous secouez la boîte, le puzzle ne va jamais se résoudre tout seul. Les choses vont spontanément vers l’état qui a le plus de configurations possibles. Toujours.</p>

<p>Cette idée a des implications profondes. Sur notre façon de travailler, de penser, de ressentir. Et surtout, elle éclaire d’une lumière nouvelle la question qui obsède notre époque : <strong>qu’est-ce qui sépare l’intelligence humaine de l’intelligence artificielle ?</strong> La réponse pourrait bien se trouver dans l’entropie elle-même.</p>

<hr />

<h2 id="la-vie--lanomalie-anti-entropique">La vie : l’anomalie anti-entropique</h2>

<p>Dans un univers qui marche inexorablement vers le désordre total, la vie est une anomalie spectaculaire. À partir de quelques molécules simples, elle construit des organismes d’une complexité stupéfiante — des cellules qui se divisent, des organes qui coopèrent, des cerveaux qui pensent. La vie crée de l’ordre là où il ne devrait pas y en avoir.</p>

<p>Mais elle ne viole pas la thermodynamique. Elle la contourne. Un organisme vivant crée de l’ordre <strong>localement</strong> en augmentant le désordre <strong>autour de lui</strong>. Vous mangez de la nourriture ordonnée, vous rejetez de la chaleur et des déchets. Le bilan global reste positif en entropie. L’univers continue sa marche vers le chaos, mais la vie a trouvé comment nager à contre-courant — temporairement, localement, au prix d’une dépense constante d’énergie.</p>

<p>Erwin Schrödinger l’avait compris dès 1944 dans son livre <em>What is Life?</em> [1] : un organisme vivant se nourrit littéralement d’<strong>entropie négative</strong>. Il puise de l’ordre dans son environnement pour maintenir sa propre structure. Dès qu’il arrête — c’est la mort. Le retour à l’équilibre thermodynamique. Le retour au désordre.</p>

<p>Cette idée est vertigineuse : <strong>vivre, c’est résister à l’entropie</strong>. Chaque battement de cœur, chaque respiration, chaque pensée est un acte de résistance contre la tendance naturelle de l’univers au chaos.</p>

<p>Et c’est cette résistance qui fonde tout ce que nous faisons — y compris ce que nous appelons le travail.</p>

<hr />

<h2 id="le-travail-humain--une-lutte-universelle-contre-le-désordre">Le travail humain : une lutte universelle contre le désordre</h2>

<p>Si la vie est résistance à l’entropie, alors <strong>le travail est son outil principal</strong>. Et pas seulement le travail intellectuel ou technique. Tous les métiers, sans exception, sont des formes de lutte contre le désordre.</p>

<h3 id="le-chirurgien">Le chirurgien</h3>

<p>Un corps malade est un système dont l’entropie augmente — les cellules se désorganisent, les organes dysfonctionnent, les processus biologiques déraillent. Le chirurgien intervient pour <strong>restaurer l’ordre</strong>. Il répare, il restructure, il réaligne. Chaque suture est un acte anti-entropique. Mais la salle d’opération elle-même génère du désordre : énergie consommée, matériel utilisé, fatigue du personnel. L’ordre est toujours local, et il a toujours un coût.</p>

<p>Aujourd’hui, des systèmes d’IA assistent les chirurgiens — analyse d’imagerie, planification opératoire, robots chirurgicaux. Ils réduisent l’incertitude en amont. Mais au moment critique, quand le corps du patient présente une anomalie imprévue, c’est l’intuition du chirurgien — nourrie par des milliers d’heures de pratique incarnée, par la sensation du tissu sous ses doigts, par cette capacité à “sentir” que quelque chose ne va pas — qui fait la différence. L’IA optimise le plan. L’humain navigue le chaos.</p>

<h3 id="lagriculteur">L’agriculteur</h3>

<p>Un champ laissé à lui-même retourne à l’état sauvage. Les mauvaises herbes envahissent, le sol s’appauvrit, la biodiversité se simplifie. L’agriculteur impose un ordre : il sélectionne les espèces, structure les rangées, contrôle l’irrigation. Il transforme un écosystème chaotique en un système productif organisé. Mais là encore, au prix d’une énorme dépense d’énergie — carburant, engrais, travail physique.</p>

<p>L’agriculture de précision utilise désormais des drones, des capteurs et des algorithmes pour optimiser l’irrigation et les traitements. L’IA excelle dans la régularité : analyser des données satellite, prédire les rendements, détecter les maladies sur des images. Mais l’agriculteur qui sent l’orage arriver en regardant le ciel, qui sait qu’un sol a besoin de repos en le prenant dans sa main, qui adapte ses pratiques à un microclimat que nul algorithme ne modélise — celui-là opère dans une dimension que la machine ne touche pas encore. Son intelligence est <strong>incarnée dans la terre</strong> [8].</p>

<h3 id="lenseignant">L’enseignant</h3>

<p>Un esprit non formé est un espace de haute entropie informationnelle [3]. Les idées sont fragmentées, les connexions aléatoires, la compréhension du monde est floue. L’enseignant réduit cette entropie : il structure les connaissances, crée des liens logiques, construit des cadres de compréhension. Il transforme le bruit en signal.</p>

<p>Les plateformes d’apprentissage adaptatif et les tuteurs IA font déjà une partie de ce travail — et parfois mieux que l’humain pour la transmission pure d’information. Mais un enseignant fait bien plus que transmettre du savoir. Il perçoit le regard découragé de l’élève au troisième rang. Il sent le moment exact où une classe décroche. Il adapte son discours non pas à des métriques de performance, mais à une énergie collective qu’il ressent physiquement dans la salle. L’IA peut personnaliser un parcours d’apprentissage. L’enseignant donne <strong>envie d’apprendre</strong> — et ça, c’est de l’entropie émotionnelle transformée en motivation.</p>

<h3 id="le-manager">Le manager</h3>

<p>Une équipe sans direction est un système à haute entropie. Les gens travaillent chacun dans leur direction, les priorités sont floues, les efforts se dispersent. Le manager crée de l’ordre : il aligne les objectifs, clarifie les rôles, coordonne les actions.</p>

<p>Les outils d’IA peuvent déjà analyser la vélocité d’une équipe, suggérer des allocations de ressources, identifier des blocages dans un workflow. Mais le management, dans sa dimension la plus essentielle, c’est du <strong>travail émotionnel</strong>. C’est savoir qu’un collaborateur traverse un divorce et adapter ses attentes sans le dire explicitement. C’est sentir une tension entre deux personnes avant qu’elle n’éclate. C’est inspirer un collectif à donner le meilleur de lui-même quand tout semble perdu. La machine gère des flux. L’humain gère des âmes.</p>

<h3 id="le-développeur">Le développeur</h3>

<p>Du code sans architecture est du chaos. Des fonctions qui se chevauchent, des dépendances circulaires, des noms de variables incompréhensibles. Le développeur impose une structure : des patterns, des conventions, des abstractions.</p>

<p>C’est peut-être le métier où la frontière homme-machine est aujourd’hui la plus ténue. Les IA de code génèrent des fonctions, des modules entiers, parfois des applications complètes. Mais comme je l’ai détaillé dans mon <a href="/fr/ia-remplacement-developpeurs-analyse-critique/">analyse critique sur l’IA et le remplacement des développeurs</a>, le code généré est souvent “presque correct” — et le “presque” cache des heures de débogage. La vraie valeur du développeur n’est pas dans l’écriture de code. C’est dans la <strong>compréhension du problème</strong> — cette capacité à traduire un besoin humain flou en une architecture logicielle cohérente. L’IA écrit du code. L’humain comprend <strong>pourquoi</strong> ce code doit exister.</p>

<h3 id="lartiste">L’artiste</h3>

<p>On pourrait croire que l’art est pur chaos, pure entropie. Mais c’est exactement l’inverse. Face à une toile blanche — espace de possibilités infinies, entropie maximale — l’artiste fait des choix. Chaque coup de pinceau réduit les possibilités. Chaque note composée élimine des alternatives. L’art, c’est l’imposition d’un ordre singulier sur un espace de chaos infini.</p>

<p>Les IA génératives produisent désormais des images époustouflantes, des musiques, des textes. Techniquement, elles réduisent l’entropie : elles convergent vers des outputs structurés à partir d’un bruit statistique. Mais il manque quelque chose de fondamental. Un artiste humain peint parce qu’il <strong>souffre</strong>, parce qu’il a vu quelque chose qui l’a bouleversé, parce qu’il veut dire quelque chose que les mots ne peuvent pas exprimer. L’IA génère parce qu’on lui demande de générer. La différence n’est pas dans le résultat — c’est dans l’<strong>intention</strong>. Et l’intention naît du chaos intérieur. Du vécu. De l’entropie émotionnelle.</p>

<h3 id="le-juriste">Le juriste</h3>

<p>Le droit est une tentative monumentale de réduire l’entropie sociale. Sans lois, les interactions humaines sont imprévisibles — haute entropie. Le système juridique impose des règles, des procédures, des conséquences qui réduisent le nombre de comportements possibles.</p>

<p>Les IA juridiques analysent déjà des jurisprudences, prédisent des issues de procès, génèrent des contrats. Mais le droit, dans ses moments les plus critiques, est un exercice d’<strong>empathie structurée</strong>. Plaider, c’est comprendre les émotions d’un jury. Juger, c’est peser l’intention humaine derrière un acte. Légiférer, c’est anticiper les passions d’une société. Le droit sans humanité n’est que bureaucratie — de l’ordre mort, sans le souffle du chaos qui le rend juste.</p>

<h3 id="le-cuisinier">Le cuisinier</h3>

<p>Des ingrédients bruts sont un système de haute entropie culinaire — ils peuvent être combinés d’un nombre presque infini de façons, dont l’écrasante majorité sera immangeable. Le cuisinier sélectionne, dose, transforme, assemble selon des principes précis pour produire un résultat ordonné.</p>

<p>Des IA génèrent des recettes, optimisent des combinaisons de saveurs, analysent des profils gustatifs. Mais un grand chef ne suit pas une recette — il la <strong>ressent</strong>. Il goûte et ajuste en temps réel, guidé par une mémoire sensorielle que nulle base de données ne reproduit. La cuisine, à son plus haut niveau, est un dialogue entre le corps et la matière [9]. Entre un chaos de saveurs et un ordre qui émerge de l’intuition.</p>

<hr />

<p>Le pattern est universel : dans chaque métier, l’IA excelle dans la <strong>dimension anti-entropique</strong> — structurer, optimiser, prédire, réduire l’incertitude. Mais l’humain apporte quelque chose que la machine n’a pas : le <strong>chaos intérieur</strong> qui donne à l’ordre son sens, sa direction, et sa profondeur. L’IA est un canal. L’humain est un fleuve.</p>

<hr />

<h2 id="lintelligence--larme-anti-entropique-ultime">L’intelligence : l’arme anti-entropique ultime</h2>

<p>Si le travail est la lutte contre l’entropie, l’intelligence est l’arme la plus sophistiquée dans cet arsenal.</p>

<p>Le physicien Alex Wissner-Gross a proposé en 2013 une idée élégante [4] : le comportement intelligent, c’est ce qui <strong>maximise les options futures</strong>. Un système intelligent agit pour se garder le plus de portes ouvertes possible. C’est paradoxal : ça ressemble à maximiser l’entropie (plus de possibilités), mais en réalité c’est <strong>contrôler</strong> quelles possibilités restent ouvertes. C’est de l’entropie dirigée.</p>

<p>Prenez un joueur d’échecs. Un débutant réduit ses propres options à chaque coup sans s’en rendre compte. Un grand maître maintient une position qui lui laisse un maximum de coups futurs viables. Il ne crée pas du désordre sur l’échiquier — il <strong>préserve un espace de possibilités structuré</strong>.</p>

<p>Cette définition s’applique à tous les domaines. Un bon médecin maintient des options thérapeutiques ouvertes plutôt que de se précipiter sur un diagnostic. Un bon investisseur diversifie plutôt que de tout miser sur une seule position. Un bon architecte logiciel conçoit des systèmes extensibles plutôt que rigides. Dans chaque cas, l’intelligence consiste à <strong>résister à la fermeture prématurée des possibilités</strong>.</p>

<p>Les neurosciences suggèrent que le cerveau fonctionne à la <strong>criticité</strong> [5] — cette frontière entre ordre et chaos où l’information se propage de la manière la plus riche possible. Trop d’ordre neuronal et le cerveau devient rigide, incapable de s’adapter. Trop de chaos et il ne peut plus traiter l’information de manière cohérente. L’intelligence émerge au bord du chaos.</p>

<p>Et c’est ici que la comparaison avec l’IA devient révélatrice.</p>

<hr />

<h2 id="lia--une-anti-entropie-sans-chaos">L’IA : une anti-entropie sans chaos</h2>

<p>Un modèle de langage est fondamentalement une <strong>machine à réduire l’entropie informationnelle</strong> [3]. Vous posez une question vague — il y a des millions de réponses possibles (haute entropie). L’IA vous donne une réponse pertinente — elle réduit drastiquement l’incertitude (basse entropie). C’est littéralement ce que fait un LLM à chaque token généré : il choisit parmi des milliers de mots possibles celui qui est le plus probable dans le contexte.</p>

<p>L’IA est extraordinairement efficace dans cette réduction d’entropie. Souvent plus efficace qu’un humain. Elle traite plus de données, plus vite, avec moins de biais cognitifs. Pour les tâches purement anti-entropiques — classer, trier, optimiser, prédire — elle est déjà supérieure dans de nombreux domaines.</p>

<p>Mais il y a un coût, et pas seulement énergétique. Comme je l’ai exploré dans mon article sur <a href="/fr/IA-impact-ecologique/">le coût écologique de l’IA</a>, les datacenters qui font tourner ces modèles consomment des quantités massives d’énergie et produisent de la chaleur [12]. L’IA crée de l’ordre informationnel en augmentant le désordre physique ailleurs. La thermodynamique ne se laisse pas duper.</p>

<p>Et il y a une différence plus profonde encore. Un organisme vivant <strong>se maintient lui-même</strong> [1]. Il lutte activement contre sa propre dégradation. Il se répare, s’adapte, évolue. L’IA ne fait rien de tout ça. Sans humains pour l’alimenter en énergie, la maintenir, la corriger, elle s’arrête. Elle ne résiste pas à l’entropie — elle est un outil <strong>dans</strong> la résistance humaine à l’entropie.</p>

<p>L’IA est anti-entropique, oui. Mais elle est anti-entropique <strong>sans le contrepoids du chaos</strong>. Et c’est peut-être là que réside sa limite fondamentale.</p>

<hr />

<h2 id="lagi--le-rêve-dune-machine-qui-nous-ressemble">L’AGI : le rêve d’une machine qui nous ressemble</h2>

<p>La question que tout le monde se pose : une intelligence artificielle générale pourrait-elle combler ce fossé ?</p>

<p>En théorie, une AGI serait un concentré d’ordre incroyable. Elle pourrait comprendre, planifier, s’adapter, créer dans n’importe quel domaine. Elle serait anti-entropique à une échelle que nous ne pouvons même pas imaginer.</p>

<p>Mais pour être <strong>vraiment</strong> intelligente au sens humain du terme, elle aurait besoin de quelque chose que personne ne sait encore lui donner : <strong>quelque chose à perdre</strong>.</p>

<p>Un humain pense avec urgence parce qu’il est mortel. Il crée parce qu’il souffre. Il innove parce qu’il a peur. Il aime parce qu’il sait que ça peut finir. Toute cette entropie existentielle — le chaos d’être un corps fragile dans un monde imprévisible — n’est pas un bug de l’intelligence humaine. C’est son <strong>moteur</strong>.</p>

<p>Une AGI, même infiniment plus puissante que n’importe quel cerveau humain, serait intelligente <strong>autrement</strong>. Elle pourrait optimiser, résoudre, structurer mieux que nous. Mais pourrait-elle écrire un poème qui fait pleurer ? Pas parce qu’elle ne sait pas assembler les mots — ça, elle sait déjà. Mais parce que derrière un poème qui touche, il y a quelqu’un qui a <strong>vécu</strong> le chaos qu’il décrit. Quelqu’un pour qui ces mots ne sont pas des tokens probabilistes mais des cicatrices.</p>

<p>Il y a aussi l’argument du corps — ce que les philosophes et les neuroscientifiques appellent la <strong>cognition incarnée</strong> [8] [9]. Notre intelligence n’est pas que dans le cerveau. La façon dont vous pensez est façonnée par le fait que vous avez des mains, que vous ressentez la faim, que vous avez mal au dos, que vous sentez l’odeur du café le matin. Toute cette expérience sensorielle nourrit la pensée d’une manière qu’un système purement informationnel ne peut pas reproduire.</p>

<p>Vous ne pouvez pas simuler la peur de mourir si vous ne pouvez pas mourir. Vous ne pouvez pas comprendre la joie d’un repas partagé si vous n’avez jamais eu faim. Vous ne pouvez pas saisir la beauté d’un coucher de soleil si vous n’avez pas de rétine qui vibre.</p>

<p>C’est la différence entre un fleuve et un canal. Les deux transportent de l’eau. Le canal est plus efficace — pas de méandres, pas de crues, pas de surprises. Mais seul le fleuve peut creuser un canyon. Parce que le canyon naît du chaos — de la force brute de l’eau qui ne suit pas de plan, qui érode, qui déborde, qui détruit pour créer.</p>

<p>L’AGI serait un canal parfait. L’humain est un fleuve. Et le monde a besoin des deux.</p>

<hr />

<h2 id="les-émotions--le-chaos-nécessaire-que-la-machine-naura-jamais">Les émotions : le chaos nécessaire que la machine n’aura jamais</h2>

<p>C’est ici que la comparaison homme-machine devient la plus tranchante.</p>

<p>Si l’intelligence est anti-entropique, les émotions semblent être l’exact opposé. La colère, la peur, l’amour, la jalousie — ça ne suit pas la logique, ça ne maximise pas les options, ça <strong>submerge</strong> la pensée rationnelle. En termes thermodynamiques, les émotions introduisent du désordre dans la mécanique ordonnée de l’intelligence.</p>

<p>Mais est-ce un défaut de conception ?</p>

<p>Le neurologue Antonio Damasio a étudié des patients avec des lésions du cortex préfrontal ventromédian [6] — la zone qui connecte le raisonnement aux émotions. Leur QI était intact. Leur logique fonctionnait parfaitement. Mais sans ressentir, ils devenaient <strong>incapables de prendre des décisions</strong>. Ils pouvaient analyser pendant des heures les avantages et inconvénients d’un restaurant sans jamais choisir. Leur intelligence pure, privée du “bruit” émotionnel, était paralysée.</p>

<p>Lisez bien cette dernière phrase. <strong>L’intelligence pure, sans émotions, est paralysée.</strong> C’est exactement la condition d’une IA. Elle ne choisit pas — elle calcule la probabilité la plus élevée. Elle ne décide pas — elle optimise une fonction de coût. Elle n’agit pas — elle exécute. La différence entre choisir et calculer, c’est le chaos émotionnel qui la crée.</p>

<p>Les émotions sont une forme d’<strong>entropie fonctionnelle</strong> — du désordre que le système utilise comme carburant. La peur vous fait fuir sans réfléchir — ce qui vous sauve la vie quand un camion fonce vers vous. L’amour vous pousse à protéger vos enfants au mépris de votre propre sécurité — ce qui est “irrationnel” mais biologiquement brillant. L’enthousiasme vous pousse à commencer un projet impossible — ce qui parfois mène à des découvertes que la pure raison n’aurait jamais permises.</p>

<p>Si on reprend l’idée de la criticité neurale [5], les émotions sont justement ce qui empêche le cerveau de devenir trop rigide. Elles injectent le chaos juste nécessaire pour rester adaptatif, créatif, vivant.</p>

<p>C’est pour ça qu’une IA, aussi puissante soit-elle, manque quelque chose de fondamental. Il lui manque ce <strong>moteur entropique</strong> qui pousse à agir sans raison calculée, à créer sans garantie de résultat, à prendre des risques irrationnels — bref, à être vivant. L’IA n’a pas de tripes. Et les tripes, en thermodynamique comme en philosophie, ça compte.</p>

<hr />

<h2 id="lintelligence-émotionnelle--domestiquer-le-chaos-que-la-machine-ne-connaît-pas">L’intelligence émotionnelle : domestiquer le chaos que la machine ne connaît pas</h2>

<p>Arrive alors un concept moderne : l’<strong>intelligence émotionnelle</strong>. Observer ses émotions, les nommer, les réguler, les utiliser à bon escient. C’est appliquer de l’anti-entropie à ce qui est fondamentalement entropique. C’est un méta-niveau fascinant : l’intelligence qui se retourne contre le chaos qui la nourrit.</p>

<p>Chaque culture humaine a tenté cette domestication. Le stoïcisme grec proposait l’<em>apatheia</em> [11] — non pas l’absence d’émotions, mais leur maîtrise par la raison. Le bouddhisme vise le détachement par la méditation. La psychothérapie cognitive-comportementale restructure les schémas émotionnels dysfonctionnels. Le développement personnel moderne promet de “gérer ses émotions” comme on gère un portefeuille d’investissement.</p>

<p>Mais voilà le constat troublant : <strong>ça ne marche jamais complètement</strong>. Vous pouvez méditer pendant dix ans, une trahison ou un deuil vous ramène au chaos brut en une seconde. Vous pouvez être le manager le plus calme et le plus structuré du monde, une crise inattendue réveille la panique. L’intelligence émotionnelle est un effort constant qui ne s’achève jamais.</p>

<p>C’est exactement ce que prédit la thermodynamique. Maintenir l’ordre demande un effort permanent. Dès que vous arrêtez, l’entropie revient. L’intelligence émotionnelle n’est pas un acquis — c’est une conquête permanente contre notre propre entropie.</p>

<p>Et c’est peut-être notre <strong>avantage compétitif ultime</strong> face à la machine. L’IA n’a pas besoin d’intelligence émotionnelle — elle n’a pas d’émotions à gérer. Mais c’est précisément parce que nous devons naviguer notre propre chaos intérieur que nous sommes capables d’empathie, de compassion, de compréhension profonde. L’intelligence émotionnelle n’est pas un luxe humain — c’est le sous-produit d’une lutte que seuls les êtres vivants peuvent mener. Et cette lutte produit quelque chose qu’aucun algorithme ne peut fabriquer : la <strong>sagesse</strong>.</p>

<p>Mais la sagesse individuelle ne suffisait pas. Face à l’immensité du chaos — la mort, la souffrance, l’absurde — l’humanité avait besoin d’un cadre plus grand. Bien avant l’intelligence émotionnelle, bien avant la philosophie, bien avant la science, elle avait trouvé un autre outil pour lutter contre l’entropie existentielle : la religion.</p>

<hr />

<h2 id="la-spiritualité--la-plus-ancienne-réponse-au-chaos">La spiritualité : la plus ancienne réponse au chaos</h2>

<p>Regardons les religions à travers le prisme de l’entropie, et quelque chose de frappant apparaît : chaque tradition spirituelle, quelle qu’elle soit, est fondamentalement un <strong>système anti-entropique appliqué à l’existence humaine</strong> [15].</p>

<p>Le chaos existentiel — la conscience de la mort, de la souffrance, de l’injustice, de l’absurde — est peut-être la forme la plus vertigineuse d’entropie que l’esprit humain affronte. Pourquoi suis-je ici ? Pourquoi la souffrance ? Que se passe-t-il après la mort ? Ces questions sont des gouffres d’incertitude, des espaces de possibilités infinies où l’esprit peut se perdre. Haute entropie existentielle.</p>

<p>Et la religion, dans toutes ses formes, propose exactement ce que fait toute lutte anti-entropique : <strong>réduire le nombre de configurations possibles</strong>. Elle donne un cadre. Un récit. Un ordre.</p>

<p>Le monothéisme impose un Dieu unique, un plan, une direction à l’univers — là où le chaos suggère l’absence de sens. Le bouddhisme propose les Quatre Nobles Vérités et l’Octuple Sentier — une structure méthodique pour naviguer la souffrance. L’hindouisme offre le concept de dharma — un ordre cosmique qui assigne à chacun un rôle dans le grand tout. Les traditions animistes et chamaniques créent un réseau de liens entre l’humain, la nature et les esprits — un maillage de sens là où il pourrait n’y avoir que du vide.</p>

<p>Dans chaque cas, le mécanisme est le même : face à un univers qui semble chaotique et indifférent, la spiritualité crée un <strong>récit structurant</strong> qui réduit l’angoisse de l’infini. Elle transforme “tout est possible et rien n’a de sens” en “voici le chemin, voici la raison, voici ta place”.</p>

<h3 id="lanti-entropie-des-rituels">L’anti-entropie des rituels</h3>

<p>Les religions ne se contentent pas de fournir des réponses intellectuelles. Elles structurent aussi le <strong>temps et le comportement</strong> [16] — deux dimensions où l’entropie nous guette en permanence.</p>

<p>La prière cinq fois par jour dans l’islam. Le shabbat hebdomadaire dans le judaïsme. La messe dominicale dans le christianisme. Les cycles de méditation dans le bouddhisme. Les jeûnes, les fêtes, les pèlerinages. Tous ces rituels font exactement la même chose : ils imposent un <strong>rythme ordonné</strong> sur le flux chaotique de l’existence. Ils sont des métronomes anti-entropiques.</p>

<p>Sans rituel, les jours se confondent. Le temps perd sa structure. Le sens s’effrite. C’est d’ailleurs ce que beaucoup de personnes non religieuses redécouvrent aujourd’hui : le besoin de rituels laïques — méditation matinale, journaling, routines sportives — pour maintenir un ordre intérieur. La forme a changé, mais la fonction anti-entropique reste la même.</p>

<p>Et les rituels collectifs ajoutent une dimension supplémentaire : ils synchronisent le chaos intérieur de milliers d’individus en une <strong>expérience commune ordonnée</strong> [15]. Une prière collective, un chant partagé, un silence observé ensemble — ce sont des moments où l’entropie sociale est temporairement réduite à presque zéro. Tout le monde ressent la même chose, au même moment, dans le même lieu. C’est extraordinairement puissant. Et c’est quelque chose qu’aucune technologie n’a réussi à reproduire.</p>

<h3 id="la-foi--accepter-le-chaos-pour-le-transcender">La foi : accepter le chaos pour le transcender</h3>

<p>Mais il y a un paradoxe fascinant dans la spiritualité, qui la distingue de toutes les autres formes de lutte anti-entropique.</p>

<p>La science réduit l’entropie en <strong>éliminant</strong> l’incertitude : elle mesure, elle prouve, elle vérifie. La technologie réduit l’entropie en <strong>contrôlant</strong> : elle automatise, elle optimise, elle prévoit. La religion, elle, fait quelque chose de radicalement différent : elle réduit l’entropie en <strong>acceptant l’incompréhensible</strong>.</p>

<p>Croire, c’est reconnaître qu’on ne comprend pas tout — et trouver la paix dans cette acceptation. C’est vivre avec le mystère sans être détruit par lui. C’est la forme la plus paradoxale d’anti-entropie : créer de l’ordre intérieur non pas en éliminant le chaos, mais en lui donnant un <strong>statut</strong>. Le mystère n’est plus une menace — il devient sacré.</p>

<p>C’est exactement ce que l’IA ne peut pas faire. Une IA face à l’incertitude fait une de deux choses : elle calcule une probabilité, ou elle signale qu’elle manque de données. Elle ne peut pas <strong>accepter</strong> le mystère. Elle ne peut pas trouver de la beauté dans ce qu’elle ne comprend pas. Elle ne peut pas être émue par l’infini.</p>

<p>La quête spirituelle est peut-être la preuve ultime de notre nature entropique. Nous cherchons un sens parce que nous vivons dans le chaos. Nous prions, nous méditons, nous croyons parce que notre chaos intérieur — nos peurs, notre conscience de la mort, notre besoin viscéral de comprendre — nous y pousse. La machine n’a pas cette quête, parce qu’elle n’a pas ce chaos. Elle n’a pas besoin de Dieu, parce qu’elle n’a pas besoin de sens. Et peut-être que c’est ça, la différence la plus profonde entre l’homme et la machine : non pas l’intelligence, non pas les émotions, mais la <strong>capacité de chercher quelque chose qu’on ne trouvera peut-être jamais</strong> — et de continuer à chercher quand même.</p>

<hr />

<h2 id="la-dualité-humaine--ce-que-la-machine-ne-peut-pas-être">La dualité humaine : ce que la machine ne peut pas être</h2>

<p>L’être humain n’est pas un être d’ordre. Il n’est pas non plus un être de chaos. Il est le <strong>champ de bataille</strong> entre les deux. Et c’est cette tension — cette oscillation permanente entre structure et désordre — qui produit ce qu’on appelle l’expérience humaine.</p>

<p>La créativité naît de cette tension. Un musicien qui ne connaît que la théorie musicale (pur ordre) compose des pièces techniquement parfaites mais sans âme. Un musicien qui ne connaît rien à la théorie (pur chaos) produit du bruit. La musique qui nous touche naît exactement à la frontière entre les deux. Assez de structure pour être compréhensible. Assez de chaos pour être surprenante. C’est exactement ce que l’IA ne fait pas : elle produit de la structure <strong>sans</strong> le chaos vécu qui la rend émouvante.</p>

<p>Le même principe s’applique à l’innovation. Les avancées les plus révolutionnaires viennent rarement de la pure méthode ou du pur hasard. Elles viennent de cette zone intermédiaire : un esprit structuré qui accepte de se laisser surprendre par l’inattendu. Penicilline, post-it, micro-ondes — toutes des découvertes nées de la rencontre entre un système ordonné et un accident chaotique. Une IA peut optimiser un processus de recherche. Mais elle ne peut pas avoir l’accident heureux qui change tout, parce qu’elle n’a pas de corps qui trébuche, de main qui glisse, d’attention qui dérive vers une anomalie fascinante.</p>

<p>Même nos relations humaines obéissent à cette logique. Une relation trop ordonnée — trop prévisible, trop contrôlée — étouffe. Une relation trop chaotique — sans repères, sans engagement — épuise. Les relations qui durent sont celles qui trouvent cet équilibre dynamique entre stabilité et surprise. L’IA peut simuler une conversation. Elle ne peut pas vivre une relation, parce qu’une relation implique le risque du chaos émotionnel — et ce risque est ce qui lui donne sa valeur.</p>

<hr />

<h2 id="lavenir--ni-remplacement-ni-opposition-mais-complémentarité">L’avenir : ni remplacement ni opposition, mais complémentarité</h2>

<p>Si l’IA est le canal et l’humain le fleuve, alors l’avenir n’est ni dans le remplacement de l’un par l’autre, ni dans leur opposition, mais dans leur <strong>complémentarité</strong>.</p>

<p>L’IA excelle dans ce que nous faisons mal : traiter des volumes massifs d’information, maintenir une attention constante, éliminer les biais cognitifs, optimiser des systèmes complexes. Elle est un amplificateur anti-entropique sans précédent.</p>

<p>L’humain excelle dans ce que l’IA ne peut pas faire : donner un sens, ressentir, comprendre l’autre, naviguer l’ambiguïté, créer à partir du vécu, prendre des décisions dans l’incertitude totale. Il est le <strong>générateur de sens</strong> dans un monde que la machine peut ordonner mais pas comprendre.</p>

<p>Le chirurgien de demain utilisera l’IA pour planifier ses opérations avec une précision surhumaine — et fera la différence quand le plan échouera. L’enseignant utilisera l’IA pour personnaliser chaque parcours d’apprentissage — et inspirera ses élèves par sa passion, son humanité, ses propres doutes. Le développeur utilisera l’IA pour écrire du code plus vite — et apportera la compréhension profonde du problème humain que le code doit résoudre. L’artiste utilisera l’IA comme un pinceau extraordinaire — et fournira la vision, la douleur et la beauté qui donnent à l’œuvre sa raison d’exister.</p>

<p>Dans chaque métier, la même dynamique : <strong>la machine réduit l’entropie, l’humain lui donne un sens</strong>.</p>

<hr />

<h2 id="ce-que-lentropie-nous-apprend-sur-le-sens">Ce que l’entropie nous apprend sur le sens</h2>

<p>Si tout tend vers le désordre, si chaque acte d’ordre est temporaire et coûteux, à quoi bon ?</p>

<p>C’est peut-être la mauvaise question. La bonne question serait : <strong>est-ce que le sens n’émerge pas précisément de cette lutte ?</strong></p>

<p>Le philosophe Albert Camus imaginait Sisyphe heureux [10] — cet homme condamné à pousser un rocher en haut d’une montagne pour le voir redescendre éternellement. L’absurdité de la tâche ne la rend pas vide de sens. C’est dans la lutte elle-même que Sisyphe trouve sa dignité.</p>

<p>Nous sommes tous Sisyphe. Le chirurgien soigne des patients qui retomberont malades. L’enseignant forme des esprits qui oublieront. Le développeur écrit du code qui deviendra obsolète. Le manager organise des équipes qui se réorganiseront. L’artiste crée des œuvres que le temps altérera. L’agriculteur cultive des champs que les saisons ravageront.</p>

<p>Et pourtant, nous continuons. Non pas parce que nous ignorons l’entropie, mais parce que la lutte contre elle est ce qui nous définit.</p>

<p>L’IA ne peut pas être Sisyphe. Elle n’a pas de rocher. Elle n’a pas de montagne. Elle n’a pas la conscience de l’absurdité de la tâche ni la dignité de la poursuivre quand même. Elle peut pousser plus fort, plus vite, plus longtemps que nous. Mais elle ne sait pas <strong>pourquoi</strong> elle pousse. Et c’est le “pourquoi” qui fait de Sisyphe un héros.</p>

<p>L’entropie nous dit que rien ne dure. Mais elle nous dit aussi que tout ce qui existe de beau, de vrai, de bon, a été arraché au chaos par un effort conscient. Et ça, c’est peut-être la définition la plus honnête du sens — une définition que seul un être qui connaît le chaos peut comprendre.</p>

<hr />

<h2 id="conclusion--ce-que-la-machine-nous-apprend-sur-nous-mêmes">Conclusion : Ce que la machine nous apprend sur nous-mêmes</h2>

<p>Il est ironique que ce soit l’avènement de l’intelligence artificielle qui nous force à nous poser la question la plus humaine qui soit : <strong>qu’est-ce qui nous rend irremplaçables ?</strong></p>

<p>La réponse, vue à travers le prisme de l’entropie, est limpide. Ce n’est pas notre intelligence — la machine est déjà plus rapide. Ce n’est pas notre mémoire — la machine est déjà plus vaste. Ce n’est pas notre logique — la machine est déjà plus rigoureuse.</p>

<p>Ce qui nous rend irremplaçables, c’est notre <strong>chaos</strong>. Nos émotions, notre mortalité, notre corps, nos contradictions, nos peurs, nos espoirs irrationnels, notre quête de sens face à l’absurde. Tout ce désordre intérieur que nous passons notre vie à essayer de dompter — par l’intelligence, par les émotions, par la spiritualité, par le travail — c’est précisément ce qui donne à notre intelligence sa profondeur, à notre créativité sa puissance, à notre existence son sens.</p>

<p>L’entropie n’est pas notre ennemie. Elle est la toile de fond contre laquelle tout ce qui a de la valeur se dessine. Sans elle, il n’y aurait pas besoin de soigner, d’enseigner, de construire, de créer, d’aimer. Le sens n’existe que parce que le désordre le menace.</p>

<p>La machine est notre alliée dans cette lutte. Elle amplifie notre capacité à créer de l’ordre. Mais elle ne peut pas mener le combat à notre place, parce que le combat n’est pas que contre le désordre extérieur — il est aussi contre le désordre intérieur. Et c’est de ce combat-là, intime, douloureux, permanent — le même combat que mène le moine en prière, l’artiste devant sa toile, le parent qui console son enfant à trois heures du matin — que naît tout ce qui fait de nous des êtres humains.</p>

<p>Alors la prochaine fois que vous vous sentirez submergé par le chaos — au travail, dans votre tête, dans votre vie — rappelez-vous ceci : vous n’êtes pas en train d’échouer. Vous êtes en train de faire exactement ce que la vie fait depuis 3,8 milliards d’années. Vous résistez à l’entropie. Et le simple fait que vous soyez là, conscient, en train de lire ces mots, capables de ressentir quelque chose en les lisant — ça, aucune machine ne peut le faire. Et c’est déjà tout.</p>

<hr />

<p><em>Cet essai est né d’une conversation exploratoire entre un humain et une intelligence artificielle sur la nature de l’entropie. Les intuitions, les doutes et les connexions inattendues sont humains — le chaos créatif. La structuration, le développement et la rédaction ont été assistés par Claude (Anthropic) — l’anti-entropie informationnelle. Ni l’un ni l’autre n’aurait produit ce texte seul. Et c’est peut-être ça, l’avenir : non pas l’homme contre la machine, mais l’homme avec la machine, dans une danse entre ordre et chaos qui produit quelque chose qu’aucun des deux ne pourrait créer séparément. Les sources ci-dessous ont été vérifiées par l’auteur.</em></p>

<hr />

<h2 id="sources-et-références">Sources et références</h2>

<h3 id="thermodynamique-et-entropie">Thermodynamique et entropie</h3>

<p>[1] <strong>Schrödinger, E.</strong> (1944). <em>What is Life? The Physical Aspect of the Living Cell.</em> Cambridge University Press. — Le concept d’entropie négative (<em>negentropy</em>) comme moteur de la vie.</p>

<p>[2] <strong>Boltzmann, L.</strong> (1877). <em>Über die Beziehung zwischen dem zweiten Hauptsatze der mechanischen Wärmetheorie und der Wahrscheinlichkeitsrechnung.</em> — La formulation statistique de l’entropie (S = k·log W).</p>

<p>[3] <strong>Shannon, C.E.</strong> (1948). “A Mathematical Theory of Communication.” <em>Bell System Technical Journal</em>, 27(3), 379–423. — Le lien entre entropie informationnelle et physique.</p>

<h3 id="intelligence-et-entropie">Intelligence et entropie</h3>

<p>[4] <strong>Wissner-Gross, A.D. &amp; Freer, C.E.</strong> (2013). “Causal Entropic Forces.” <em>Physical Review Letters</em>, 110(16). — L’intelligence comme maximisation des options futures.</p>

<p>[5] <strong>Beggs, J.M. &amp; Plenz, D.</strong> (2003). “Neuronal Avalanches in Neocortical Circuits.” <em>Journal of Neuroscience</em>, 23(35), 11167–11177. — La criticité neurale : le cerveau au bord du chaos.</p>

<h3 id="émotions-et-prise-de-décision">Émotions et prise de décision</h3>

<p>[6] <strong>Damasio, A.</strong> (1994). <em>Descartes’ Error: Emotion, Reason, and the Human Brain.</em> Putnam Publishing. — L’hypothèse des marqueurs somatiques : sans émotions, pas de décision.</p>

<p>[7] <strong>Damasio, A.</strong> (1999). <em>The Feeling of What Happens: Body and Emotion in the Making of Consciousness.</em> Harcourt Brace. — Le rôle des émotions dans la conscience.</p>

<h3 id="cognition-incarnée">Cognition incarnée</h3>

<p>[8] <strong>Varela, F.J., Thompson, E. &amp; Rosch, E.</strong> (1991). <em>The Embodied Mind: Cognitive Science and Human Experience.</em> MIT Press. — L’intelligence n’est pas que dans le cerveau, elle est dans le corps.</p>

<p>[9] <strong>Clark, A.</strong> (1997). <em>Being There: Putting Brain, Body, and World Together Again.</em> MIT Press. — Le corps et l’environnement comme participants actifs de la cognition.</p>

<h3 id="philosophie-et-sens">Philosophie et sens</h3>

<p>[10] <strong>Camus, A.</strong> (1942). <em>Le Mythe de Sisyphe.</em> Gallimard. — L’absurde et la dignité de la lutte.</p>

<p>[11] <strong>Épictète.</strong> <em>Manuel (Enchiridion).</em> ~125 apr. J.-C. — Les fondements du stoïcisme.</p>

<h3 id="ia-et-coût-écologique">IA et coût écologique</h3>

<p>[12] <strong>Strubell, E., Ganesh, A. &amp; McCallum, A.</strong> (2019). “Energy and Policy Considerations for Deep Learning in NLP.” <em>Proceedings of the 57th Annual Meeting of the ACL.</em> — Le coût énergétique des grands modèles.</p>

<h3 id="religion-et-anthropologie">Religion et anthropologie</h3>

<p>[15] <strong>Durkheim, É.</strong> (1912). <em>Les Formes élémentaires de la vie religieuse.</em> Félix Alcan. — La religion comme fait social structurant.</p>

<p>[16] <strong>Eliade, M.</strong> (1957). <em>Le Sacré et le Profane.</em> Gallimard. — Temps sacré (ordonné) vs temps profane (chaotique).</p>
]]></content:encoded>
        <pubDate>Sun, 08 Feb 2026 00:00:00 +0100</pubDate>
        <link>https://angelo-lima.fr/fr/entropie-homme-machine/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/fr/entropie-homme-machine/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Personnel</category>
          
        
        
      </item>
    
      <item>
        <title>Ollama supporte maintenant Claude Code</title>
        <description>
          
            Ollama v0.14 ajoute le support de l&apos;API Anthropic Messages. Découvrez comment configurer Claude Code pour utiliser des LLMs locaux comme qwen3-coder ou gpt-oss, sans dépendre du cloud.
          
        </description>
        <content:encoded><![CDATA[<p>Grande nouvelle pour les utilisateurs de Claude Code : <strong>Ollama supporte désormais l’API Anthropic Messages</strong>, ce qui permet d’utiliser Claude Code avec des modèles open-source locaux. Fini la dépendance exclusive au cloud Anthropic !</p>

<h2 id="pourquoi-cette-intégration-change-la-donne">Pourquoi Cette Intégration Change la Donne</h2>

<p>Jusqu’à présent, Claude Code nécessitait obligatoirement une connexion aux serveurs d’Anthropic. Avec cette intégration Ollama, vous pouvez maintenant :</p>

<table>
  <thead>
    <tr>
      <th>Avantage</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Confidentialité</strong></td>
      <td>Votre code reste sur votre machine</td>
    </tr>
    <tr>
      <td><strong>Coûts</strong></td>
      <td>Pas de frais API, juste votre électricité</td>
    </tr>
    <tr>
      <td><strong>Indépendance</strong></td>
      <td>Pas de dépendance à un fournisseur unique</td>
    </tr>
    <tr>
      <td><strong>Offline</strong></td>
      <td>Travaillez sans connexion internet</td>
    </tr>
    <tr>
      <td><strong>Personnalisation</strong></td>
      <td>Choisissez le modèle adapté à vos besoins</td>
    </tr>
  </tbody>
</table>

<h2 id="prérequis">Prérequis</h2>

<h3 id="1-ollama-v0140">1. Ollama v0.14.0+</h3>

<p>L’intégration nécessite <strong>Ollama version 0.14.0 ou supérieure</strong>. Vérifiez votre version :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ollama <span class="nt">--version</span>
</code></pre></div></div>

<p>Si besoin, mettez à jour Ollama depuis <a href="https://ollama.com">ollama.com</a>.</p>

<h3 id="2-modèle-avec-grand-contexte">2. Modèle avec Grand Contexte</h3>

<p>Claude Code nécessite une <strong>grande fenêtre de contexte</strong> pour fonctionner correctement. La recommandation officielle est <strong>64k tokens minimum</strong>.</p>

<p>Configurez le contexte dans Ollama :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Créer un Modelfile avec contexte étendu</span>
<span class="nb">cat</span> <span class="o">&gt;</span> Modelfile <span class="o">&lt;&lt;</span> <span class="sh">'</span><span class="no">EOF</span><span class="sh">'
FROM qwen3-coder
PARAMETER num_ctx 65536
</span><span class="no">EOF

</span>ollama create qwen3-coder-64k <span class="nt">-f</span> Modelfile
</code></pre></div></div>

<h3 id="3-claude-code-installé">3. Claude Code Installé</h3>

<p>Si ce n’est pas encore fait :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># macOS/Linux</span>
curl <span class="nt">-fsSL</span> https://claude.ai/install.sh | bash

<span class="c"># Windows</span>
irm https://claude.ai/install.ps1 | iex
</code></pre></div></div>

<h2 id="configuration">Configuration</h2>

<h3 id="méthode-1--lancement-rapide-recommandé">Méthode 1 : Lancement Rapide (Recommandé)</h3>

<p>Ollama fournit une commande simplifiée :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ollama launch claude
</code></pre></div></div>

<p>Pour le mode configuration interactive :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ollama launch claude <span class="nt">--config</span>
</code></pre></div></div>

<p>Cette méthode configure automatiquement les variables d’environnement nécessaires.</p>

<h3 id="méthode-2--configuration-manuelle">Méthode 2 : Configuration Manuelle</h3>

<p>Définissez les trois variables d’environnement requises :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">ANTHROPIC_AUTH_TOKEN</span><span class="o">=</span>ollama
<span class="nb">export </span><span class="nv">ANTHROPIC_API_KEY</span><span class="o">=</span><span class="s2">""</span>
<span class="nb">export </span><span class="nv">ANTHROPIC_BASE_URL</span><span class="o">=</span>http://localhost:11434
</code></pre></div></div>

<p>Puis lancez Claude Code avec le modèle de votre choix :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>claude <span class="nt">--model</span> qwen3-coder-64k
</code></pre></div></div>

<h3 id="méthode-3--ligne-unique">Méthode 3 : Ligne Unique</h3>

<p>Pour un lancement ponctuel sans modifier votre environnement :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">ANTHROPIC_AUTH_TOKEN</span><span class="o">=</span>ollama <span class="se">\</span>
<span class="nv">ANTHROPIC_BASE_URL</span><span class="o">=</span>http://localhost:11434 <span class="se">\</span>
<span class="nv">ANTHROPIC_API_KEY</span><span class="o">=</span><span class="s2">""</span> <span class="se">\</span>
claude <span class="nt">--model</span> qwen3-coder
</code></pre></div></div>

<h3 id="configuration-persistante">Configuration Persistante</h3>

<p>Ajoutez ces lignes à votre <code class="language-plaintext highlighter-rouge">~/.bashrc</code> ou <code class="language-plaintext highlighter-rouge">~/.zshrc</code> :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Claude Code avec Ollama</span>
<span class="nb">export </span><span class="nv">ANTHROPIC_AUTH_TOKEN</span><span class="o">=</span>ollama
<span class="nb">export </span><span class="nv">ANTHROPIC_API_KEY</span><span class="o">=</span><span class="s2">""</span>
<span class="nb">export </span><span class="nv">ANTHROPIC_BASE_URL</span><span class="o">=</span>http://localhost:11434
<span class="nb">alias </span>claude-local<span class="o">=</span><span class="s1">'claude --model qwen3-coder-64k'</span>
</code></pre></div></div>

<p>Puis rechargez :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">source</span> ~/.bashrc  <span class="c"># ou source ~/.zshrc</span>
</code></pre></div></div>

<h2 id="modèles-recommandés">Modèles Recommandés</h2>

<h3 id="pour-le-développement">Pour le Développement</h3>

<table>
  <thead>
    <tr>
      <th>Modèle</th>
      <th>Taille</th>
      <th>Points Forts</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>qwen3-coder</strong></td>
      <td>~14B</td>
      <td>Spécialisé code, excellent rapport qualité/taille</td>
    </tr>
    <tr>
      <td><strong>glm-4.7</strong></td>
      <td>~9B</td>
      <td>Bon équilibre, multilingue</td>
    </tr>
    <tr>
      <td><strong>codestral</strong></td>
      <td>~22B</td>
      <td>Performant sur code complexe</td>
    </tr>
  </tbody>
</table>

<h3 id="pour-les-machines-puissantes">Pour les Machines Puissantes</h3>

<table>
  <thead>
    <tr>
      <th>Modèle</th>
      <th>Taille</th>
      <th>Points Forts</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>gpt-oss:20b</strong></td>
      <td>20B</td>
      <td>Généraliste performant</td>
    </tr>
    <tr>
      <td><strong>gpt-oss:120b</strong></td>
      <td>120B</td>
      <td>Proche des modèles propriétaires</td>
    </tr>
    <tr>
      <td><strong>deepseek-coder:33b</strong></td>
      <td>33B</td>
      <td>Excellent sur le code</td>
    </tr>
  </tbody>
</table>

<h3 id="télécharger-un-modèle">Télécharger un Modèle</h3>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Télécharger le modèle</span>
ollama pull qwen3-coder

<span class="c"># Vérifier les modèles disponibles</span>
ollama list
</code></pre></div></div>

<h2 id="exemple-de-session">Exemple de Session</h2>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># 1. Démarrer Ollama (si pas en service)</span>
ollama serve &amp;

<span class="c"># 2. Lancer Claude Code</span>
<span class="nv">ANTHROPIC_AUTH_TOKEN</span><span class="o">=</span>ollama <span class="se">\</span>
<span class="nv">ANTHROPIC_BASE_URL</span><span class="o">=</span>http://localhost:11434 <span class="se">\</span>
<span class="nv">ANTHROPIC_API_KEY</span><span class="o">=</span><span class="s2">""</span> <span class="se">\</span>
claude <span class="nt">--model</span> qwen3-coder

<span class="c"># 3. Utiliser normalement</span>
<span class="o">&gt;</span> Analyse le fichier @src/api/users.ts et suggère des améliorations
</code></pre></div></div>

<h2 id="limitations-à-connaître">Limitations à Connaître</h2>

<h3 id="performance">Performance</h3>

<p>Les modèles locaux sont généralement <strong>moins performants</strong> que Claude Sonnet ou Opus sur les tâches complexes. Attendez-vous à :</p>

<ul>
  <li>Réponses parfois moins précises</li>
  <li>Temps de réflexion plus long sur du matériel modeste</li>
  <li>Moins de capacité de raisonnement avancé</li>
</ul>

<h3 id="consommation-ressources">Consommation Ressources</h3>

<table>
  <thead>
    <tr>
      <th>Taille Modèle</th>
      <th>RAM Minimum</th>
      <th>GPU Recommandé</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>7-14B</td>
      <td>16 Go</td>
      <td>8 Go VRAM</td>
    </tr>
    <tr>
      <td>20-33B</td>
      <td>32 Go</td>
      <td>16 Go VRAM</td>
    </tr>
    <tr>
      <td>70B+</td>
      <td>64 Go+</td>
      <td>24 Go+ VRAM</td>
    </tr>
  </tbody>
</table>

<h3 id="fonctionnalités">Fonctionnalités</h3>

<p>Certaines fonctionnalités avancées peuvent ne pas fonctionner parfaitement :</p>
<ul>
  <li>Vision (analyse d’images)</li>
  <li>Tool use complexe</li>
  <li>Subagents</li>
</ul>

<h2 id="cas-dusage-idéaux">Cas d’Usage Idéaux</h2>

<h3 id="quand-utiliser-ollama">Quand Utiliser Ollama</h3>

<ul>
  <li><strong>Code propriétaire sensible</strong> : Le code ne quitte jamais votre machine</li>
  <li><strong>Développement offline</strong> : Travail en avion, zones sans internet</li>
  <li><strong>Prototypage rapide</strong> : Pas de souci de coûts API</li>
  <li><strong>Apprentissage</strong> : Expérimentez sans limite</li>
</ul>

<h3 id="quand-rester-sur-anthropic">Quand Rester sur Anthropic</h3>

<ul>
  <li><strong>Tâches complexes</strong> : Refactoring majeur, architecture</li>
  <li><strong>Code reviews approfondies</strong> : Analyse de sécurité</li>
  <li><strong>Production</strong> : Quand la qualité est critique</li>
</ul>

<h2 id="basculer-entre-local-et-cloud">Basculer Entre Local et Cloud</h2>

<p>Créez des alias pour switcher facilement :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Dans ~/.bashrc ou ~/.zshrc</span>

<span class="c"># Mode Ollama (local)</span>
<span class="nb">alias </span>claude-local<span class="o">=</span><span class="s1">'ANTHROPIC_AUTH_TOKEN=ollama \
  ANTHROPIC_BASE_URL=http://localhost:11434 \
  ANTHROPIC_API_KEY="" \
  claude --model qwen3-coder-64k'</span>

<span class="c"># Mode Anthropic (cloud) - nécessite ANTHROPIC_API_KEY configuré</span>
<span class="nb">alias </span>claude-cloud<span class="o">=</span><span class="s1">'claude'</span>
</code></pre></div></div>

<p>Usage :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>claude-local   <span class="c"># Pour le travail sensible ou offline</span>
claude-cloud   <span class="c"># Pour les tâches complexes</span>
</code></pre></div></div>

<h2 id="troubleshooting">Troubleshooting</h2>

<h3 id="erreur-connection-refused">Erreur “Connection Refused”</h3>

<p>Ollama n’est pas démarré :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ollama serve
</code></pre></div></div>

<h3 id="erreur-context-too-long">Erreur “Context Too Long”</h3>

<p>Le modèle n’a pas assez de contexte. Créez une version étendue :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cat</span> <span class="o">&gt;</span> Modelfile <span class="o">&lt;&lt;</span> <span class="sh">'</span><span class="no">EOF</span><span class="sh">'
FROM votre-modele
PARAMETER num_ctx 65536
</span><span class="no">EOF

</span>ollama create votre-modele-64k <span class="nt">-f</span> Modelfile
</code></pre></div></div>

<h3 id="réponses-lentes">Réponses Lentes</h3>

<ul>
  <li>Vérifiez que le GPU est utilisé : <code class="language-plaintext highlighter-rouge">nvidia-smi</code> ou <code class="language-plaintext highlighter-rouge">ollama ps</code></li>
  <li>Utilisez un modèle plus petit</li>
  <li>Fermez les applications gourmandes en VRAM</li>
</ul>

<h3 id="qualité-insuffisante">Qualité Insuffisante</h3>

<p>Essayez un modèle plus grand ou repassez sur Claude Cloud pour cette tâche spécifique.</p>

<h2 id="conclusion">Conclusion</h2>

<p>L’intégration Ollama ouvre de nouvelles possibilités pour Claude Code :</p>

<ul>
  <li><strong>Confidentialité</strong> pour le code sensible</li>
  <li><strong>Économies</strong> sur les coûts API</li>
  <li><strong>Flexibilité</strong> dans le choix des modèles</li>
  <li><strong>Travail offline</strong> possible</li>
</ul>

<p>Pour la plupart des tâches quotidiennes, un bon modèle local comme qwen3-coder fait très bien le travail. Gardez l’accès au cloud Anthropic pour les cas où vous avez besoin de la puissance maximale.</p>

<hr />

<p><em>Pour aller plus loin avec Claude Code, consultez mes autres <a href="/tag/ia/">articles sur l’IA et le développement</a>.</em></p>
]]></content:encoded>
        <pubDate>Fri, 23 Jan 2026 00:00:00 +0100</pubDate>
        <link>https://angelo-lima.fr/fr/claude-code-ollama-local-llm/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/fr/claude-code-ollama-local-llm/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Développement</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/claude-code.webp" type="image/png" length="0" />
        
      </item>
    
      <item>
        <title>Ollama Now Supports Claude Code</title>
        <description>
          
            Ollama v0.14 adds support for the Anthropic Messages API. Learn how to configure Claude Code to use local LLMs like qwen3-coder or gpt-oss, without relying on the cloud.
          
        </description>
        <content:encoded><![CDATA[<p>Big news for Claude Code users: <strong>Ollama now supports the Anthropic Messages API</strong>, which allows you to use Claude Code with local open-source models. No more exclusive dependency on Anthropic’s cloud!</p>

<h2 id="why-this-integration-is-a-game-changer">Why This Integration Is a Game Changer</h2>

<p>Until now, Claude Code required a connection to Anthropic’s servers. With this Ollama integration, you can now:</p>

<table>
  <thead>
    <tr>
      <th>Benefit</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Privacy</strong></td>
      <td>Your code stays on your machine</td>
    </tr>
    <tr>
      <td><strong>Costs</strong></td>
      <td>No API fees, just your electricity</td>
    </tr>
    <tr>
      <td><strong>Independence</strong></td>
      <td>No single vendor lock-in</td>
    </tr>
    <tr>
      <td><strong>Offline</strong></td>
      <td>Work without internet connection</td>
    </tr>
    <tr>
      <td><strong>Customization</strong></td>
      <td>Choose the model that fits your needs</td>
    </tr>
  </tbody>
</table>

<h2 id="requirements">Requirements</h2>

<h3 id="1-ollama-v0140">1. Ollama v0.14.0+</h3>

<p>The integration requires <strong>Ollama version 0.14.0 or higher</strong>. Check your version:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ollama <span class="nt">--version</span>
</code></pre></div></div>

<p>If needed, update Ollama from <a href="https://ollama.com">ollama.com</a>.</p>

<h3 id="2-model-with-large-context">2. Model with Large Context</h3>

<p>Claude Code requires a <strong>large context window</strong> to work properly. The official recommendation is <strong>64k tokens minimum</strong>.</p>

<p>Configure context in Ollama:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Create a Modelfile with extended context</span>
<span class="nb">cat</span> <span class="o">&gt;</span> Modelfile <span class="o">&lt;&lt;</span> <span class="sh">'</span><span class="no">EOF</span><span class="sh">'
FROM qwen3-coder
PARAMETER num_ctx 65536
</span><span class="no">EOF

</span>ollama create qwen3-coder-64k <span class="nt">-f</span> Modelfile
</code></pre></div></div>

<h3 id="3-claude-code-installed">3. Claude Code Installed</h3>

<p>If not already done:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># macOS/Linux</span>
curl <span class="nt">-fsSL</span> https://claude.ai/install.sh | bash

<span class="c"># Windows</span>
irm https://claude.ai/install.ps1 | iex
</code></pre></div></div>

<h2 id="configuration">Configuration</h2>

<h3 id="method-1-quick-launch-recommended">Method 1: Quick Launch (Recommended)</h3>

<p>Ollama provides a simplified command:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ollama launch claude
</code></pre></div></div>

<p>For interactive configuration mode:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ollama launch claude <span class="nt">--config</span>
</code></pre></div></div>

<p>This method automatically configures the necessary environment variables.</p>

<h3 id="method-2-manual-configuration">Method 2: Manual Configuration</h3>

<p>Set the three required environment variables:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">ANTHROPIC_AUTH_TOKEN</span><span class="o">=</span>ollama
<span class="nb">export </span><span class="nv">ANTHROPIC_API_KEY</span><span class="o">=</span><span class="s2">""</span>
<span class="nb">export </span><span class="nv">ANTHROPIC_BASE_URL</span><span class="o">=</span>http://localhost:11434
</code></pre></div></div>

<p>Then launch Claude Code with your chosen model:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>claude <span class="nt">--model</span> qwen3-coder-64k
</code></pre></div></div>

<h3 id="method-3-single-line">Method 3: Single Line</h3>

<p>For a one-time launch without modifying your environment:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">ANTHROPIC_AUTH_TOKEN</span><span class="o">=</span>ollama <span class="se">\</span>
<span class="nv">ANTHROPIC_BASE_URL</span><span class="o">=</span>http://localhost:11434 <span class="se">\</span>
<span class="nv">ANTHROPIC_API_KEY</span><span class="o">=</span><span class="s2">""</span> <span class="se">\</span>
claude <span class="nt">--model</span> qwen3-coder
</code></pre></div></div>

<h3 id="persistent-configuration">Persistent Configuration</h3>

<p>Add these lines to your <code class="language-plaintext highlighter-rouge">~/.bashrc</code> or <code class="language-plaintext highlighter-rouge">~/.zshrc</code>:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Claude Code with Ollama</span>
<span class="nb">export </span><span class="nv">ANTHROPIC_AUTH_TOKEN</span><span class="o">=</span>ollama
<span class="nb">export </span><span class="nv">ANTHROPIC_API_KEY</span><span class="o">=</span><span class="s2">""</span>
<span class="nb">export </span><span class="nv">ANTHROPIC_BASE_URL</span><span class="o">=</span>http://localhost:11434
<span class="nb">alias </span>claude-local<span class="o">=</span><span class="s1">'claude --model qwen3-coder-64k'</span>
</code></pre></div></div>

<p>Then reload:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">source</span> ~/.bashrc  <span class="c"># or source ~/.zshrc</span>
</code></pre></div></div>

<h2 id="recommended-models">Recommended Models</h2>

<h3 id="for-development">For Development</h3>

<table>
  <thead>
    <tr>
      <th>Model</th>
      <th>Size</th>
      <th>Strengths</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>qwen3-coder</strong></td>
      <td>~14B</td>
      <td>Code-specialized, excellent quality/size ratio</td>
    </tr>
    <tr>
      <td><strong>glm-4.7</strong></td>
      <td>~9B</td>
      <td>Good balance, multilingual</td>
    </tr>
    <tr>
      <td><strong>codestral</strong></td>
      <td>~22B</td>
      <td>Performs well on complex code</td>
    </tr>
  </tbody>
</table>

<h3 id="for-powerful-machines">For Powerful Machines</h3>

<table>
  <thead>
    <tr>
      <th>Model</th>
      <th>Size</th>
      <th>Strengths</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>gpt-oss:20b</strong></td>
      <td>20B</td>
      <td>Performant generalist</td>
    </tr>
    <tr>
      <td><strong>gpt-oss:120b</strong></td>
      <td>120B</td>
      <td>Close to proprietary models</td>
    </tr>
    <tr>
      <td><strong>deepseek-coder:33b</strong></td>
      <td>33B</td>
      <td>Excellent on code</td>
    </tr>
  </tbody>
</table>

<h3 id="download-a-model">Download a Model</h3>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Download the model</span>
ollama pull qwen3-coder

<span class="c"># Check available models</span>
ollama list
</code></pre></div></div>

<h2 id="example-session">Example Session</h2>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># 1. Start Ollama (if not running)</span>
ollama serve &amp;

<span class="c"># 2. Launch Claude Code</span>
<span class="nv">ANTHROPIC_AUTH_TOKEN</span><span class="o">=</span>ollama <span class="se">\</span>
<span class="nv">ANTHROPIC_BASE_URL</span><span class="o">=</span>http://localhost:11434 <span class="se">\</span>
<span class="nv">ANTHROPIC_API_KEY</span><span class="o">=</span><span class="s2">""</span> <span class="se">\</span>
claude <span class="nt">--model</span> qwen3-coder

<span class="c"># 3. Use normally</span>
<span class="o">&gt;</span> Analyze the file @src/api/users.ts and suggest improvements
</code></pre></div></div>

<h2 id="limitations-to-know">Limitations to Know</h2>

<h3 id="performance">Performance</h3>

<p>Local models are generally <strong>less performant</strong> than Claude Sonnet or Opus on complex tasks. Expect:</p>

<ul>
  <li>Sometimes less accurate responses</li>
  <li>Longer thinking time on modest hardware</li>
  <li>Less advanced reasoning capability</li>
</ul>

<h3 id="resource-consumption">Resource Consumption</h3>

<table>
  <thead>
    <tr>
      <th>Model Size</th>
      <th>Minimum RAM</th>
      <th>Recommended GPU</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>7-14B</td>
      <td>16 GB</td>
      <td>8 GB VRAM</td>
    </tr>
    <tr>
      <td>20-33B</td>
      <td>32 GB</td>
      <td>16 GB VRAM</td>
    </tr>
    <tr>
      <td>70B+</td>
      <td>64 GB+</td>
      <td>24 GB+ VRAM</td>
    </tr>
  </tbody>
</table>

<h3 id="features">Features</h3>

<p>Some advanced features may not work perfectly:</p>
<ul>
  <li>Vision (image analysis)</li>
  <li>Complex tool use</li>
  <li>Subagents</li>
</ul>

<h2 id="ideal-use-cases">Ideal Use Cases</h2>

<h3 id="when-to-use-ollama">When to Use Ollama</h3>

<ul>
  <li><strong>Sensitive proprietary code</strong>: Code never leaves your machine</li>
  <li><strong>Offline development</strong>: Work on planes, areas without internet</li>
  <li><strong>Rapid prototyping</strong>: No API cost concerns</li>
  <li><strong>Learning</strong>: Experiment without limits</li>
</ul>

<h3 id="when-to-stay-on-anthropic">When to Stay on Anthropic</h3>

<ul>
  <li><strong>Complex tasks</strong>: Major refactoring, architecture</li>
  <li><strong>In-depth code reviews</strong>: Security analysis</li>
  <li><strong>Production</strong>: When quality is critical</li>
</ul>

<h2 id="switching-between-local-and-cloud">Switching Between Local and Cloud</h2>

<p>Create aliases to easily switch:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># In ~/.bashrc or ~/.zshrc</span>

<span class="c"># Ollama mode (local)</span>
<span class="nb">alias </span>claude-local<span class="o">=</span><span class="s1">'ANTHROPIC_AUTH_TOKEN=ollama \
  ANTHROPIC_BASE_URL=http://localhost:11434 \
  ANTHROPIC_API_KEY="" \
  claude --model qwen3-coder-64k'</span>

<span class="c"># Anthropic mode (cloud) - requires ANTHROPIC_API_KEY configured</span>
<span class="nb">alias </span>claude-cloud<span class="o">=</span><span class="s1">'claude'</span>
</code></pre></div></div>

<p>Usage:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>claude-local   <span class="c"># For sensitive or offline work</span>
claude-cloud   <span class="c"># For complex tasks</span>
</code></pre></div></div>

<h2 id="troubleshooting">Troubleshooting</h2>

<h3 id="connection-refused-error">“Connection Refused” Error</h3>

<p>Ollama is not started:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ollama serve
</code></pre></div></div>

<h3 id="context-too-long-error">“Context Too Long” Error</h3>

<p>The model doesn’t have enough context. Create an extended version:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cat</span> <span class="o">&gt;</span> Modelfile <span class="o">&lt;&lt;</span> <span class="sh">'</span><span class="no">EOF</span><span class="sh">'
FROM your-model
PARAMETER num_ctx 65536
</span><span class="no">EOF

</span>ollama create your-model-64k <span class="nt">-f</span> Modelfile
</code></pre></div></div>

<h3 id="slow-responses">Slow Responses</h3>

<ul>
  <li>Check that GPU is being used: <code class="language-plaintext highlighter-rouge">nvidia-smi</code> or <code class="language-plaintext highlighter-rouge">ollama ps</code></li>
  <li>Use a smaller model</li>
  <li>Close VRAM-hungry applications</li>
</ul>

<h3 id="insufficient-quality">Insufficient Quality</h3>

<p>Try a larger model or switch back to Claude Cloud for that specific task.</p>

<h2 id="conclusion">Conclusion</h2>

<p>The Ollama integration opens new possibilities for Claude Code:</p>

<ul>
  <li><strong>Privacy</strong> for sensitive code</li>
  <li><strong>Savings</strong> on API costs</li>
  <li><strong>Flexibility</strong> in model choice</li>
  <li><strong>Offline work</strong> possible</li>
</ul>

<p>For most daily tasks, a good local model like qwen3-coder does the job very well. Keep access to Anthropic’s cloud for cases where you need maximum power.</p>

<hr />

<p><em>To go further with Claude Code, check out my other <a href="/tag/ia/">articles on AI and development</a>.</em></p>
]]></content:encoded>
        <pubDate>Fri, 23 Jan 2026 00:00:00 +0100</pubDate>
        <link>https://angelo-lima.fr/en/claude-code-ollama-local-llm-en/</link>
        <guid isPermaLink="true">https://angelo-lima.fr/en/claude-code-ollama-local-llm-en/</guid>
        
        <dc:creator>Angelo Lima</dc:creator>
        
        
          
          <category>IA</category>
          
          <category>Développement</category>
          
        
        
        <enclosure url="https://angelo-lima.fr/assets/img/claude-code.webp" type="image/png" length="0" />
        
      </item>
    
  </channel>
</rss>
