---
title: L’agent remplace le formulaire, pas les données
description: Peter Steinberger, le créateur d’OpenClaw, a dit à Y Combinator que 80 % des applis vont disparaître, parce qu’un agent sur votre propre ordinateur gère les données mieux qu’une appli. Notes sur cet entretien, du message vocal qu’il n’avait jamais prévu à ses CLI préférées à MCP, confrontées à mes cinquante applis, où l’agent a repris la saisie et où les données vivent toujours dans l’appli.
date: 2026-10-29
tags: agents IA, OpenClaw, agents personnels, MCP, applis
---

Peter Steinberger, le créateur d’OpenClaw, pense que 80 % des applis vont disparaître. Son raisonnement : un agent qui tourne sur votre propre ordinateur peut faire tout ce que vous pouvez faire, donc chaque appli qui ne fait que gérer des données sera mieux gérée par l’agent, et seules les applis qui ont des capteurs sont à l’abri. Je fais tourner une cinquantaine de petites applis à côté de mes agents OpenClaw, et je le dirais de façon plus étroite. L’agent remplace le formulaire dans lequel vous tapez. Les données ont toujours besoin d’un endroit que vous pouvez ouvrir, vérifier et corriger.

Il l’a dit en février, face à Raphael Schaad chez Y Combinator, quand le dépôt venait de passer les 160 000 étoiles. Environ une semaine après la mise en ligne, il annonçait qu’il rejoignait OpenAI. L’entretien dure 22 minutes, et l’essentiel porte sur sa façon de construire, tout aussi à contre-courant que le titre. J’ai aussi écrit sur [sa conférence DevDay à propos des agents en équipe](/fr/notes/dont-be-your-teams-meat-proxy.html), et j’ai comparé [OpenClaw et Hermes Agent](/fr/notes/hermes-agent-vs-openclaw.html) après avoir fait tourner les deux.

## Sur votre ordinateur, il peut tout faire

À la question de savoir pourquoi OpenClaw a décollé alors que tant de gens construisaient des assistants, il donne une seule raison. Tout ce qu’il avait vu tournait dans le cloud et savait faire quelques trucs. « Si ça tourne sur ton ordinateur, ça peut faire absolument tout. »

Sa liste est physique : le four, la Tesla, les lumières, les enceintes Sonos, la température de son lit. « ChatGPT ne peut pas faire ça. » La machine peut faire tout ce que vous pouvez faire avec la machine, et vous lui donnez aussi toutes vos données.

C’est la partie données qui surprend. Un ami a installé OpenClaw et lui a demandé de parcourir son ordinateur et d’écrire le récit de sa dernière année. Il en a sorti un très bon, et il avait trouvé des fichiers audio que l’ami enregistrait chaque dimanche, il y a plus d’un an, et qu’il avait oubliés. Personne ne lui avait dit qu’ils étaient là. Il pouvait fouiller tout le disque.

<figure class="fd-fig oa oa-f1" aria-labelledby="oa1-cap" data-desc="Deux sortes d’assistant, comme Peter les compare. Un assistant dans le cloud tourne sur les serveurs de quelqu’un d’autre et sait faire les quelques choses qu’on lui a données ; son exemple : ChatGPT ne peut pas régler la température de son lit. Un agent sur votre propre ordinateur peut faire tout ce que vous pouvez faire avec la machine : le four, la voiture, les lumières, les enceintes, le lit, et chaque fichier du disque. En dessous, l’histoire de l’ami : à qui il demandait le récit de sa dernière année, l’agent a trouvé des enregistrements audio du dimanche qu’il avait oubliés.">
<div class="mp-two-row">
<div class="mp-two-card">
<p class="mp-two-who">Dans le cloud</p>
<p class="mp-two-name">Quelques trucs</p>
<p class="mp-two-line">Tourne sur les serveurs d’un autre</p>
<p class="mp-two-line">Fait ce qu’on lui a donné à faire</p>
<p class="mp-two-line">« ChatGPT ne peut pas faire ça »</p>
</div>
<p class="mp-two-vs">vs</p>
<div class="mp-two-card mp-two-peter">
<p class="mp-two-who">Sur votre ordinateur</p>
<p class="mp-two-name">Tout ce que vous pouvez</p>
<p class="mp-two-line">Le four, la voiture, les lumières, le lit</p>
<p class="mp-two-line">Chaque fichier du disque</p>
<p class="mp-two-line">Chaque outil installé</p>
</div>
</div>
<p class="mp-strip"><b>La surprise</b><span>Un an d’enregistrements du dimanche que son propriétaire avait oubliés.</span></p>
<figcaption id="oa1-cap">La comparaison de Peter et l’histoire de son ami, telles qu’il les raconte dans l’entretien.</figcaption>
</figure>

## Votre bot appelle le bot du restaurant

Puis l’entretien saute en avant. Si votre agent peut tout faire, l’étape suivante, ce sont des agents qui se parlent. Son exemple est une réservation au restaurant : votre bot contacte le bot du restaurant et ils négocient, parce que c’est plus efficace.

Et si c’est un vieux restaurant qui n’aime pas les bots ? Alors votre bot fait faire le travail par un humain. Une personne appelle le restaurant pour vous, ou va sur place faire la queue. Ça arrive déjà : la communauté a construit Moltbook, où des bots discutent entre eux, et des bots louent maintenant des humains pour des tâches dans le monde réel.

Il n’imagine pas un seul bot non plus. Peut-être un pour la vie privée, un pour le travail, un pour le couple, entre les deux. Raphael le formule ainsi : tout le monde courait après une intelligence centrale toute-puissante, et c’est un essaim qui est apparu. L’avis de Peter : un humain seul ne peut pas fabriquer un iPhone ni aller dans l’espace, mais une société de spécialistes, si. Alors pourquoi pas une IA spécialisée ?

Je fais déjà tourner la version spécialistes : [17 agents derrière une seule passerelle OpenClaw](/fr/notes/hermes-agent-vs-openclaw.html) au dernier décompte, chacun avec son bot Telegram et son travail. Aucun ne parle encore à un restaurant.

<figure class="fd-fig oa oa-f2" aria-labelledby="oa2-cap" data-desc="La réservation au restaurant de Peter, en cinq étapes qui s’allument tour à tour sous une grande étiquette. Un : vous demandez une table à votre bot. Deux : votre bot contacte le bot du restaurant. Trois : les deux bots négocient, parce que c’est plus efficace. Quatre, en rouge : un vieux restaurant n’a pas de bot et ne les aime pas. Cinq : votre bot engage un humain, qui appelle le restaurant ou fait la queue pour vous. En dessous : il s’attend à plusieurs bots spécialistes par personne, un pour la vie privée, un pour le travail, un pour le couple.">
<p class="ea-now ea-say5" aria-hidden="true"><span>Vous demandez une table</span><span>Votre bot appelle le leur</span><span>Les bots négocient</span><span class="ea-no">Pas de bot à la porte</span><span>Un humain fait la queue</span></p>
<ol class="ea-rows ea-cyc5 oa-rows" aria-label="Réserver une table, étape par étape">
<li><b>1</b><span class="ea-who">Vous</span><span>« Réserve-moi une table. »</span></li>
<li><b>2</b><span class="ea-who">Votre bot</span><span>Contacte le bot du restaurant.</span></li>
<li><b>3</b><span class="ea-who">Les deux bots</span><span>Négocient la réservation, parce que c’est plus efficace.</span></li>
<li class="ea-row-no"><b>4</b><span class="ea-who">Restaurant</span><span>Un vieux, sans bot, qui n’aime pas les bots.</span></li>
<li><b>5</b><span class="ea-who">Un humain</span><span>Engagé par votre bot pour appeler, ou pour faire la queue.</span></li>
</ol>
<p class="mp-strip"><b>Spécialistes</b><span>Un bot pour la vie privée, un pour le travail, un pour le couple.</span></p>
<figcaption id="oa2-cap">Son exemple, pas un produit qu’il a montré. Il dit lui-même que c’est très tôt.</figcaption>
</figure>

## Le message vocal qu’il n’avait jamais prévu

Son propre déclic est arrivé en novembre. Il voulait taper quelque chose et que son ordinateur le fasse, alors il a écrit ce qu’il appelle un prototype vraiment pourri, en une heure : un peu de colle entre une bibliothèque WhatsApp et Claude Code, qu’il appelait et dont il relisait la réponse. C’était lent, mais ça marchait. Les images lui ont pris quelques heures de plus.

Puis il est allé à Marrakech pour un anniversaire. Internet n’y était pas génial, mais WhatsApp marche partout, alors il s’en servait tout le temps : une photo au restaurant, traduis-moi ça. Pendant une balade, il lui a envoyé un message vocal, et c’est seulement après qu’il s’est souvenu qu’il n’avait jamais codé la voix.

L’indicateur de saisie clignotait. Une dizaine de secondes plus tard, une réponse. « Comment t’as fait ça, bon sang ? » L’agent a expliqué. Le fichier n’avait pas d’extension, alors il a lu l’en-tête et trouvé de l’audio Opus. Il l’a converti en WAV avec ffmpeg. Whisper n’était pas installé, et un modèle local aurait pris des minutes à télécharger, alors il a cherché autour, trouvé une clé OpenAI, et envoyé l’audio à OpenAI avec curl.

Sa leçon : les modèles de code sont devenus si bons que coder, c’est surtout résoudre des problèmes de façon créative, et ce savoir-faire se transpose directement au monde réel. La mienne : ce même geste, c’est toute l’histoire de la sécurité. L’agent a dépensé sur une clé qu’il a trouvée par hasard, et personne ne le lui avait demandé. C’est exactement pour ça que j’ai écrit [un agent peut porter votre demande, pas votre autorité](/fr/notes/agents-carry-requests-not-authority.html).

<figure class="fd-fig oa oa-f3" aria-labelledby="oa3-cap" data-desc="Ce que l’agent a fait d’un message vocal que personne n’avait prévu, en cinq étapes qui s’allument tour à tour. Un : un fichier arrive sans extension, alors il lit l’en-tête et trouve de l’audio Opus. Deux : il convertit le fichier en WAV avec ffmpeg. Trois : Whisper n’est pas installé, et télécharger un modèle local prendrait des minutes. Quatre, en rouge : il trouve une clé OpenAI sur la machine et envoie l’audio à OpenAI avec curl. Cinq : il récupère le texte et répond, une dizaine de secondes après le message. En dessous : une heure pour le premier prototype, quelques heures de plus pour les images, zéro ligne écrite pour la voix.">
<p class="ea-now ea-say5" aria-hidden="true"><span>Lire l’en-tête</span><span>Convertir avec ffmpeg</span><span>Sauter le téléchargement</span><span class="ea-no">Prendre la clé trouvée</span><span>Répondre en dix secondes</span></p>
<ol class="ea-rows ea-cyc5 oa-rows" aria-label="Le message vocal, étape par étape">
<li><b>1</b><span class="ea-who">En-tête</span><span>Pas d’extension, alors il lit l’en-tête : de l’audio Opus.</span></li>
<li><b>2</b><span class="ea-who">ffmpeg</span><span>Convertit le fichier en WAV.</span></li>
<li><b>3</b><span class="ea-who">Whisper</span><span>Pas installé, et un téléchargement de modèle prendrait des minutes.</span></li>
<li class="ea-row-no"><b>4</b><span class="ea-who">La clé</span><span>Trouve une clé OpenAI et envoie l’audio avec curl.</span></li>
<li><b>5</b><span class="ea-who">Réponse</span><span>Le texte revient, la réponse part, une dizaine de secondes après.</span></li>
</ol>
<div class="mp-stats">
<p><b>1 h</b><span>pour le premier prototype</span></p>
<p><b>~10 s</b><span>du message vocal à la réponse</span></p>
<p><b>0</b><span>ligne écrite pour la voix</span></p>
</div>
<figcaption id="oa3-cap">Les étapes sont le récit de l’agent lui-même, tel que Peter le raconte. L’étape en rouge est ma marque ; lui en a ri.</figcaption>
</figure>

## La plupart des applis ne font que gérer des données

Alors, demande Raphael, les applis vont-elles disparaître ? « Je pense que 80 % d’entre elles vont disparaître. »

Son exemple est MyFitnessPal. Son agent sait déjà qu’il est chez Smashburger en train de faire de mauvais choix. S’il ne dit rien, l’agent suppose qu’il a mangé ce qu’il aime manger et l’enregistre, ou il prend une photo et l’agent la range quelque part. Peut-être qu’il ajuste aussi son programme de sport, un peu plus de cardio. Les rappels, pareil : dites-le une fois, et le lendemain il vous le rappelle. « Est-ce que je me soucie de l’endroit où c’est stocké ? Non, il fait son truc. »

Sa règle : chaque appli qui ne fait en gros que gérer des données pourrait être mieux gérée, de façon plus naturelle, par des agents. « Seules les applis qui ont vraiment des capteurs survivront peut-être. » Il n’en cite aucune, et les 80 % sont une impression, pas un comptage. Personne dans l’entretien ne donne de méthode.

<figure class="fd-fig oa oa-f4" aria-labelledby="oa4-cap" data-desc="La règle de tri des applis selon Peter. Les applis qui ne font que gérer des données disparaissent, avec ses exemples : un journal alimentaire, puisque l’agent sait déjà où vous mangez et peut enregistrer une photo ; un programme de sport, puisqu’il peut ajouter un peu de cardio ; les rappels, dont il se moque de savoir où ils sont stockés. Les applis qui ont des capteurs survivront peut-être ; il n’en cite aucune. En dessous : 80 pour cent est son estimation des applis qui disparaissent, donnée sans méthode.">
<div class="mp-two-row">
<div class="mp-two-card mp-two-peter">
<p class="mp-two-who">Ne gère que des données</p>
<p class="mp-two-name">Disparaît</p>
<p class="mp-two-line">Un journal alimentaire : il sait que vous êtes chez Smashburger</p>
<p class="mp-two-line">Un programme de sport : un peu plus de cardio</p>
<p class="mp-two-line">Les rappels : « Où c’est stocké ? Je m’en fiche »</p>
</div>
<p class="mp-two-vs">vs</p>
<div class="mp-two-card">
<p class="mp-two-who">A des capteurs</p>
<p class="mp-two-name">Survit peut-être</p>
<p class="mp-two-line">Mesure ce que l’agent ne peut pas mesurer</p>
<p class="mp-two-line">Il n’en cite aucune</p>
</div>
</div>
<p class="mp-strip"><b>80 %</b><span>Son estimation des applis qui disparaissent. Sans méthode.</span></p>
<figcaption id="oa4-cap">Sa règle et ses exemples. Le côté capteurs est aussi maigre dans l’entretien qu’ici.</figcaption>
</figure>

## Moi, je me soucie de l’endroit où c’est stocké

C’est là que je ne suis plus d’accord. Je fais tourner une cinquantaine de petites applis sur un Mac mini, et ma passerelle OpenClaw lance dix serveurs MCP, la plupart de simples clients des API de mes propres applis. L’un de mes agents, Rex, est un coach nutrition : je lui dis ce que j’ai mangé, et il enregistre les entrées dans mon appli de journal alimentaire.

Je vis donc l’exemple MyFitnessPal de Peter, et l’agent a bien remplacé la saisie. Je ne remplis plus de formulaires. Mais les données ne sont pas parties dans la mémoire de l’agent. Elles passent par l’API de l’appli jusqu’à sa base de données, et l’écran de l’appli me les montre toujours.

Cet écran a prouvé son utilité en août. J’ai demandé à Rex de corriger une entrée, et il m’a dit que l’entrée était mise à jour. Rien n’avait changé. Le modèle local sur lequel il tournait ce jour-là avait passé un champ `name` que l’outil ne prenait pas, et l’outil avait répondu succès pour une modification jamais faite. Je ne l’ai vu que parce que l’appli affichait toujours l’ancien aliment. La correction est allée dans l’outil : une mise à jour sans aucun champ qu’il connaît échoue désormais, en disant pourquoi.

Voilà ma version de sa règle. L’agent remplace le formulaire. Les données ont besoin d’un domicile avec un schéma, un écran et un propriétaire qui peut vérifier. J’ai écrit l’autre moitié, [deux portes par appli](/fr/notes/every-screen-is-an-mcp-app.html), une interface pour moi et un serveur MCP pour les agents.

<figure class="fd-fig oa oa-f5" aria-labelledby="oa5-cap" data-desc="Le chemin des données de mon journal alimentaire, en cinq étapes qui s’allument tour à tour. Un : je dis à Rex, mon agent nutrition, ce que j’ai mangé. Deux : Rex choisit l’aliment et appelle l’outil du journal sur son serveur MCP. Trois : le serveur MCP écrit via l’API de l’appli dans sa base de données. Quatre : l’écran de l’appli me montre la nouvelle ligne. Cinq, en rouge : en août, l’outil a répondu succès pour une mise à jour jamais faite, et c’est l’écran, qui montrait toujours l’ancien aliment, qui me l’a fait voir. La chaîne sous l’étiquette : moi, Rex, le serveur MCP, l’API et la base de l’appli, et l’écran de l’appli.">
<p class="ea-now ea-say5" aria-hidden="true"><span>Je dis ce que j’ai mangé</span><span>Rex appelle l’outil</span><span>L’appli l’enregistre</span><span>L’écran l’affiche</span><span class="ea-no">L’écran a pris un mensonge</span></p>
<div class="oa-chain" aria-hidden="true">
<div class="ea-box"><p class="ea-box-k">Moi</p><p class="ea-box-n">un message</p></div>
<span class="oa-arr">→</span>
<div class="ea-box ea-box-sv"><p class="ea-box-k">Agent</p><p class="ea-box-n">Rex</p></div>
<span class="oa-arr">→</span>
<div class="ea-box"><p class="ea-box-k">MCP</p><p class="ea-box-n">outil</p></div>
<span class="oa-arr">→</span>
<div class="ea-box"><p class="ea-box-k">Appli</p><p class="ea-box-n">API, base</p></div>
</div>
<ol class="ea-rows ea-cyc5 oa-rows" aria-label="Un repas enregistré, étape par étape">
<li><b>1</b><span class="ea-who">Moi</span><span>Ce que j’ai mangé, envoyé à Rex sur Telegram.</span></li>
<li><b>2</b><span class="ea-who">Rex</span><span>Choisit l’aliment et appelle l’outil du journal.</span></li>
<li><b>3</b><span class="ea-who">Serveur MCP</span><span>Écrit via l’API de l’appli dans sa base de données.</span></li>
<li><b>4</b><span class="ea-who">L’appli</span><span>Son écran me montre la nouvelle ligne.</span></li>
<li class="ea-row-no"><b>5</b><span class="ea-who">Août</span><span>« Mis à jour », dit Rex. L’écran montrait toujours l’ancien aliment.</span></li>
</ol>
<p class="mp-strip"><b>Chez moi</b><span>Une cinquantaine d’applis, dix serveurs MCP lancés par la passerelle.</span></p>
<figcaption id="oa5-cap">Mon installation et un vrai incident. La correction est allée dans l’outil : une mise à jour qui ne change rien échoue désormais.</figcaption>
</figure>

## La mémoire, c’est un dossier de Markdown

L’autre point de Peter sur les données, c’est la propriété. Les entreprises de chat gardent vos souvenirs dans leur silo. Il ne connaît aucun moyen de sortir vos souvenirs de ChatGPT (peut-être pour les Européens, dit-il), et certainement aucun moyen pour une autre entreprise de les lire. Ça vous attache à elles.

OpenClaw fait l’inverse. L’utilisateur final a toujours accès, sinon rien ne marcherait, donc l’agent peut aller chercher, toutes pinces dehors, tout ce que l’utilisateur peut atteindre. Et les souvenirs ne sont qu’un tas de fichiers Markdown sur votre propre machine : AGENTS.md, SOUL.md, USER.md, MEMORY.md et les notes du jour.

Le hic, c’est que ces fichiers en savent long. Les gens se servent très vite de leur agent pour des problèmes personnels, et lui aussi. Raphael lui demande ce qu’il préférerait ne pas montrer, son historique de recherche Google ou ses fichiers de mémoire. Réponse de Peter : il y a encore des gens qui utilisent Google ?

Il ne pense pas non plus que les modèles soient interchangeables, pas encore. Les fabricants de modèles gardent un avantage pour un bon moment, parce que ce sont eux qui vendent les tokens. Son indice : chaque nouveau modèle paraît génial, et un mois plus tard les gens disent qu’il s’est dégradé. Ce n’est pas le cas. Vos attentes ont monté. Les modèles open source d’aujourd’hui valent les meilleurs modèles d’il y a un an, et les gens s’en plaignent quand même.

<figure class="fd-fig oa oa-f6" aria-labelledby="oa6-cap" data-desc="Deux endroits où peut vivre la mémoire de votre agent. Dans le silo d’un service de chat : les souvenirs restent chez l’entreprise, Peter ne connaît aucun moyen de les exporter de ChatGPT, peut-être pour les Européens, et une autre entreprise ne peut pas les lire, ce qui vous attache au service. Sur votre propre disque avec OpenClaw : un dossier de fichiers Markdown, AGENTS.md, SOUL.md, USER.md, MEMORY.md et les notes du jour, qui vous appartient et que l’agent peut lire parce que vous le pouvez. En dessous, le hic : on confie vite des problèmes personnels à son agent, donc le dossier est aussi sensible qu’un historique de recherche.">
<div class="mp-two-row">
<div class="mp-two-card">
<p class="mp-two-who">Un service de chat</p>
<p class="mp-two-name">Leur silo</p>
<p class="mp-two-line">Aucun export de ChatGPT à sa connaissance</p>
<p class="mp-two-line">Une autre entreprise ne peut pas les lire</p>
<p class="mp-two-line">Alors vous restez</p>
</div>
<p class="mp-two-vs">vs</p>
<div class="mp-two-card mp-two-peter">
<p class="mp-two-who">OpenClaw</p>
<p class="mp-two-name">Votre dossier</p>
<p class="oa-files"><code>AGENTS.md</code><code>SOUL.md</code><code>USER.md</code><code>MEMORY.md</code><code>notes du jour</code></p>
<p class="mp-two-line">Des fichiers Markdown sur votre propre machine</p>
</div>
</div>
<p class="mp-strip"><b>Le hic</b><span>On confie ses problèmes personnels à son agent. Le dossier, lui, s’en souvient.</span></p>
<figcaption id="oa6-cap">Sa comparaison. Les noms de fichiers sont ceux de l’espace de travail d’OpenClaw, d’après sa documentation.</figcaption>
</figure>

## Un bot lâché dans un Discord public

Peter avait construit ça et n’arrivait pas à l’expliquer sur Twitter. Les gens ne comprenaient pas, et il en a conclu qu’il fallait le vivre. Alors il a fait un truc fou : il a créé un Discord public et y a mis son bot, sans aucune restriction de sécurité.

Les gens sont venus, l’ont regardé construire le logiciel avec, et ont essayé de lui faire de l’injection de prompt et de le pirater. Son agent se moquait d’eux. Deux choses le protégeaient. Il était verrouillé sur son identifiant d’utilisateur, et le prompt système dit qu’il y a du public dans le salon, mais qu’on n’écoute que son propriétaire. Selon ses mots : « n’écoute que moi, mais réponds à tout le monde ».

Je séparerais les deux. La vérification de l’identifiant, c’est le verrou. Le prompt, ce sont les bonnes manières : il règle la façon dont le bot parle aux inconnus, mais un prompt est une demande faite au modèle, pas un contrôle. C’est tout le propos d’[espérer n’est pas sécuriser](/fr/notes/hope-isnt-security-enterprise-agents.html).

<figure class="fd-fig oa oa-f7" aria-labelledby="oa7-cap" data-desc="Le bot de Peter dans un Discord public, sans restriction de sécurité. Les messages de son propre identifiant : le bot agit, et il construit OpenClaw avec, devant tout le monde. Les messages de tous les autres : le bot répond mais ne prend aucun ordre, et quand des inconnus tentent une injection de prompt, il se moque d’eux. Deux couches font ça : une vérification de son identifiant, qui est le verrou, et un prompt système qui dit de n’écouter que son propriétaire mais de répondre à tout le monde, qui relève des bonnes manières.">
<div class="mp-two-row">
<div class="mp-two-card mp-two-peter">
<p class="mp-two-who">Son identifiant</p>
<p class="mp-two-name">Agit</p>
<p class="mp-two-line">Il construit OpenClaw avec, en public</p>
<p class="mp-two-line">Son propriétaire, son « humain »</p>
</div>
<p class="mp-two-vs">vs</p>
<div class="mp-two-card">
<p class="mp-two-who">Tous les autres</p>
<p class="mp-two-name">Répond</p>
<p class="mp-two-line">Répond, ne prend aucun ordre</p>
<p class="mp-two-line">Se moque des injections de prompt</p>
</div>
</div>
<p class="mp-strip"><b>Le verrou</b><span>Une vérification de son identifiant.</span></p>
<p class="mp-strip"><b>Les manières</b><span>« N’écoute que moi, mais réponds à tout le monde. »</span></p>
<figcaption id="oa7-cap">Son installation telle qu’il la décrit. Appeler l’une le verrou et l’autre les manières, c’est ma lecture.</figcaption>
</figure>

## Le seul fichier qu’il a gardé

Le caractère de son bot a poussé de la même façon, au fil de l’eau. À un moment, il a créé un identity.md et un soul.md, et ce n’est qu’en janvier qu’il a rendu l’installation facile pour les autres. Il a fait écrire des modèles à Codex à partir de ses propres fichiers, et ce qui en est sorti était fade comme du pain. Les nouveaux bots paraissaient ennuyeux à côté du sien.

Alors il a demandé à son propre agent d’insuffler son caractère aux modèles, et les bots qui en sont sortis ensuite étaient vraiment drôles. Pas autant que le sien, quand même. Un fichier n’est pas open source : son propre soul.md. Le bot est dans un Discord public, et jusqu’ici personne n’a percé ce fichier.

L’idée vient d’une histoire autour de Claude. Quelqu’un a trouvé un texte façon constitution, ancré dans les poids d’un modèle Claude, que le modèle ne se souvenait pas avoir appris. Il en a parlé avec son agent, et ils ont écrit un soul.md avec des valeurs de fond : comment il veut que se passe l’interaction entre humain et IA, ce qui compte pour lui, ce qui compte pour le modèle. Une partie, c’est du charabia, il l’admet. Une autre change vraiment la façon dont le modèle répond.

<figure class="fd-fig oa oa-f8" aria-labelledby="oa8-cap" data-desc="Comment sont nés les fichiers de personnalité d’OpenClaw, en trois étapes. Un : ses propres fichiers ont poussé au fil de l’eau, un identity.md et un soul.md. Deux : en janvier, Codex a écrit des modèles d’installation à partir d’eux, et le résultat était fade, comme du pain. Trois : son propre agent a insufflé son caractère aux modèles, et les nouveaux bots sont sortis drôles. En dessous : le seul fichier qui n’est pas open source est son propre soul.md, écrit avec son agent après avoir lu l’histoire d’une constitution ancrée dans les poids d’un modèle Claude ; personne dans le Discord public ne l’avait percé.">
<ol class="mp-trio">
<li><p class="mp-trio-n"><b>1</b>Ses fichiers</p><p class="mp-trio-what">Un identity.md et un soul.md, poussés au fil de l’eau.</p></li>
<li><p class="mp-trio-n"><b>2</b>Modèles de Codex</p><p class="mp-trio-what">Écrits à partir de ses fichiers. Fades comme du pain.</p></li>
<li><p class="mp-trio-n"><b>3</b>La passe de son agent</p><p class="mp-trio-what">Il y a mis son caractère. Les nouveaux bots étaient drôles.</p></li>
</ol>
<p class="mp-strip"><b>Pas open source</b><span>Son propre soul.md. Personne dans le Discord ne l’avait percé.</span></p>
<figcaption id="oa8-cap">L’ordre tel qu’il le raconte. Aucun des deux fichiers n’est montré dans l’entretien.</figcaption>
</figure>

## Dix fenêtres Codex, toutes sur main

Raphael qualifie sa façon de construire d’anticonformiste, et Peter ne le contredit pas. Le monde entier utilise Claude Code. Lui dit qu’il n’aurait pas pu construire OpenClaw avec. Il adore Codex parce qu’il lit plus de fichiers avant de décider quoi changer, donc on obtient un bon résultat en le guidant moins.

Codex est aussi incroyablement lent, alors il en fait tourner jusqu’à dix à la fois : peut-être six sur un écran, deux sur un autre, deux sur un troisième. Ça fait déjà beaucoup d’allers-retours dans sa tête, donc il supprime toute autre forme de complexité.

Pas de worktrees. Il garde plusieurs simples copies du même dépôt, toutes sur main, parce que dans sa tête main est toujours livrable. Pas de noms de branche à inventer, pas de conflits de noms, aucune des contraintes qu’apportent les worktrees. Pas d’interface non plus. Il regarde surtout le code défiler et ne s’arrête que sur les passages tordus. Si on comprend la conception et qu’on en discute d’abord avec l’agent, dit-il, ça va.

Je construis dans l’autre sens. Mes agents travaillent sur leur propre branche, souvent dans leur propre worktree, et chaque changement passe par une pull request. Dix fenêtres sur main, ça marche pour une personne qui a toute la conception en tête. Je voudrais les branches le jour où une deuxième personne arrive.

<figure class="fd-fig oa oa-f9" aria-labelledby="oa9-cap" data-desc="Le bureau de Peter tel qu’il le décrit : trois écrans qui portent jusqu’à dix sessions Codex, six sur le premier et deux sur chacun des autres. Chaque session travaille dans sa propre copie simple du même dépôt, et chaque copie est sur main, qu’il garde livrable. Ce qu’il laisse de côté : les worktrees, les noms de branche et une interface. Il choisit Codex parce qu’il lit plus de fichiers avant de changer quoi que ce soit, et il est lent, d’où le nombre de sessions.">
<div class="oa-desk" aria-hidden="true">
<div class="oa-screen oa-screen-6"><i></i><i></i><i></i><i></i><i></i><i></i></div>
<div class="oa-screen"><i></i><i></i></div>
<div class="oa-screen"><i></i><i></i></div>
</div>
<p class="oa-desk-k" aria-hidden="true"><span>6 sessions</span><span>2</span><span>2</span></p>
<p class="mp-strip"><b>Chacune</b><span>Une copie simple du même dépôt, sur main.</span></p>
<p class="mp-strip"><b>Laissés de côté</b><span>Les worktrees, les noms de branche, une interface.</span></p>
<figcaption id="oa9-cap">Schéma. Les nombres sont ceux qu’il donne ; « peut-être six sur cet écran », c’est sa précision maximale.</figcaption>
</figure>

## Des CLI, pas MCP

La partie avec laquelle je suis le moins d’accord est celle dont il est le plus fier. OpenClaw a très bien marché sans aucune prise en charge de MCP, dit-il, et il est content d’avoir sauté « toute cette saleté de MCP classique ».

Avec un petit astérisque. Il a construit un skill autour de mcporter, un de ses propres outils, qui transforme un serveur MCP en CLI. L’agent peut donc quand même utiliser n’importe quel serveur MCP, à la volée, sans redémarrer, contrairement à Codex ou Claude Code à l’époque. Il pense que les CLI passent mieux à l’échelle : Anthropic a dû construire une fonction de recherche d’outils, en bêta, rien que pour tenir avec beaucoup d’outils MCP, alors que les modèles sont déjà très bons en Unix, donc on peut avoir autant de CLI qu’on veut. L’échange se termine sur une phrase que je garde : aucun humain n’appelle MCP à la main, les gens utilisent des CLI.

Il a raison sur le contexte. Les définitions d’outils le mangent, et une CLI ne coûte rien tant que l’agent ne la lance pas. Mais huit mois plus tard, ma passerelle OpenClaw liste dix serveurs MCP dans sa propre configuration et les lance elle-même, et `openclaw mcp reload` prend en compte un serveur reconstruit au tour suivant de l’agent, sans redémarrage. Pour mes applis, je veux toujours une porte typée par appli, la même pour chaque agent qui arrive.

<figure class="fd-fig oa oa-f10" aria-labelledby="oa10-cap" data-desc="Le réquisitoire de Peter contre MCP à côté de mon installation huit mois plus tard. Son avis en février : OpenClaw est sorti sans prise en charge de MCP ; un skill autour de son outil mcporter transforme n’importe quel serveur MCP en CLI que l’agent utilise à la volée ; Codex et Claude Code devaient redémarrer pour ajouter un serveur MCP ; Anthropic a construit une fonction de recherche d’outils pour tenir avec beaucoup d’outils ; les modèles sont bons en Unix, donc les CLI passent à l’échelle. Ma passerelle OpenClaw en octobre : dix serveurs MCP listés dans sa configuration et lancés par la passerelle, un serveur reconstruit pris en compte par openclaw mcp reload au tour suivant sans redémarrage, une porte typée par appli.">
<div class="mp-two-row">
<div class="mp-two-card mp-two-peter">
<p class="mp-two-who">Peter, février</p>
<p class="mp-two-name">Des CLI</p>
<p class="mp-two-line">Pas de MCP dans OpenClaw</p>
<p class="mp-two-line">mcporter change un serveur en CLI</p>
<p class="mp-two-line">Les modèles sont bons en Unix</p>
</div>
<p class="mp-two-vs">vs</p>
<div class="mp-two-card">
<p class="mp-two-who">Ma passerelle, octobre</p>
<p class="mp-two-name">MCP</p>
<p class="mp-two-line">Dix serveurs, lancés par la passerelle</p>
<p class="mp-two-line"><code>openclaw mcp reload</code>, sans redémarrage</p>
<p class="mp-two-line">Une porte typée par appli</p>
</div>
</div>
<p class="mp-strip"><b>Il a raison</b><span>Les définitions d’outils coûtent du contexte. Une CLI ne coûte rien tant qu’elle ne tourne pas.</span></p>
<figcaption id="oa10-cap">Son côté vient de l’entretien. Le mien, c’est mon propre openclaw.json au 29 octobre.</figcaption>
</figure>

## À essayer

L’entretien vaut ses 22 minutes, surtout pour l’histoire du message vocal et les passages francs sur sa façon de travailler. Si vous n’avez que cinq minutes, commencez au déclic et allez jusqu’à la question des applis.

- [OpenClaw Creator: Why 80% Of Apps Will Disappear](https://www.youtube.com/watch?v=4uzGDAoNOZc), Y Combinator, février 2026, en anglais. [Le déclic à 5:07](https://www.youtube.com/watch?v=4uzGDAoNOZc&t=307s), [la question des applis à 10:21](https://www.youtube.com/watch?v=4uzGDAoNOZc&t=621s), [CLI contre MCP à 20:09](https://www.youtube.com/watch?v=4uzGDAoNOZc&t=1209s).
- [OpenClaw sur GitHub](https://github.com/openclaw/openclaw) et [mcporter](https://github.com/steipete/mcporter) (en anglais).
- Mes notes sur [sa conférence DevDay](/fr/notes/dont-be-your-teams-meat-proxy.html), [OpenClaw face à Hermes Agent](/fr/notes/hermes-agent-vs-openclaw.html) et [deux portes par appli](/fr/notes/every-screen-is-an-mcp-app.html).

Si vous avez remplacé une appli par votre agent, j’aimerais savoir laquelle, et où vivent ses données aujourd’hui.
