Sustain

← Retour à Apprendre
Nouveautés

9 septembre 2026

· 12 min de lecture

Votre agent IA peut désormais créer un album avec vous

Les agents IA commencent à utiliser le web plutôt qu’à se contenter de le lire. Demandez-lui de réserver une table ou de remplir un formulaire, et il essaiera — généralement en prenant une capture d’écran, en cherchant un bouton, puis en cliquant là où il pense que se trouve ce bouton. Cela fonctionne jusqu’à ce que la mise en page change, que l’étiquette soit une icône, ou qu’une fenêtre s’ouvre là où il ne l’attendait pas.

Nous trouvons que c’est une drôle de façon de traiter un logiciel qui sait déjà faire le travail. Sustain publie donc ses propres outils à destination des agents IA : des actions nommées et typées comme créer un album, faire entrer mes photos, le construire. L’agent appelle le même code que les boutons.

Cela fonctionne désormais de deux façons. Un agent n’importe où — Claude sur votre bureau, ChatGPT, tout ce qui parle MCP — se connecte à mcp.sustain-app.com et agit sur votre compte via une autorisation que vous approuvez et pouvez révoquer. Et un agent dans votre navigateur récupère les mêmes outils depuis la page via WebMCP. Cet article porte surtout sur le premier ; la moitié navigateur est à la fin.

Le problème des agents qui cliquent

Un agent de navigateur pilotant un site web classique fait de la vision par ordinateur sur une interface conçue pour des humains. Il lit une capture d'écran, devine quels pixels correspondent au bouton Créer un album, clique, attend, reprend une capture d'écran, et essaie de déterminer si cela a fonctionné.

Chacune de ces étapes peut échouer d'une manière que l'agent ne peut pas voir. Il clique sur un bouton désactivé et interprète la page inchangée comme un succès. Il rate une erreur de validation affichée dans une couleur qu'il ne peut pas interpréter. Un menu déroulant s'affiche différemment sur une fenêtre étroite et tout le plan déraille. Pire, il n'a aucune idée de ce qu'une action coûte — rien à l'écran ne lui indique que ce bouton précis va dépenser vos crédits.

Rien de tout cela ne signifie que l'agent fait mal son travail. On lui demande de déduire une intention à partir d'une image, alors que le site aurait pu tout simplement la lui communiquer.

Ce que nous avons construit à la place

Sustain publie un ensemble d’outils : des actions nommées et typées, avec des descriptions écrites pour une machine qui n’a jamais vu notre interface. Un agent les appelle au lieu de chercher des boutons.

On peut les atteindre de deux façons. mcp.sustain-app.com est un serveur MCP hébergé — Claude sur votre bureau, ChatGPT, Cursor, tout ce qui parle MCP s’y connecte par le réseau et agit sur votre compte via une autorisation que vous approuvez. Et lorsqu’un agent s’exécute dans votre navigateur, les mêmes outils sont publiés dans la page via WebMCP, une norme web émergente. L’essentiel de cet article porte sur le premier ; la moitié navigateur est à la fin.

Dix outils sont disponibles aujourd'hui, et ils correspondent au parcours réel de création d'un album plutôt qu'à nos points d'accès REST :

  • ask_site — répond aux questions à partir de notre propre contenu publié (tarifs, impression, confidentialité, les guides que vous lisez actuellement) et renvoie les pages sources, afin que l'agent puisse citer plutôt qu'inventer.
  • create_album et album_status — démarrer un album et vérifier son avancement.
  • request_photos et import_google_photos — deux façons de faire entrer des photos, sans qu'aucune image ne transite par la conversation. Nous y revenons plus bas.
  • quick_place et build_album — disposer les photos gratuitement, ou lancer la construction IA complète.
  • list_albums, get_credits, start_checkout — retrouver vos albums, consulter votre solde, acheter des crédits supplémentaires.

En résumé

D'autres sites forcent un agent à deviner sur quel bouton appuyer. Nous lui tendons les boutons, étiquetés, avec les conséquences écrites dessus.

Connecter Claude ou ChatGPT (deux minutes)

C’est la voie qui ne demande ni drapeau ni extension, et elle fonctionne avec n’importe quelle formule — gratuite comprise.

Dans Claude, ouvrez Paramètres → Connecteurs → Ajouter un connecteur personnalisé et collez https://mcp.sustain-app.com/mcp. Claude trouvera le reste tout seul.

Vous arriverez sur une page Sustain qui demande ce que cette application peut faire sur votre compte. Quatre cases : voir vos albums, créer et modifier des albums, dépenser vos crédits pour les traitements IA, et voir votre solde de crédits et vos formules. Vous pouvez en cocher moins qu’il n’en a demandé — l’agent obtient ce que vous accordez. Un agent sans dépenser vos crédits ne voit même pas l’outil qui lance un traitement payant.

Demandez ensuite ce que vous voulez. « Fais-moi un album de mon voyage en Italie » suffit. Si l’agent peut lire vos fichiers — Claude sur votre bureau le peut — il crée l’album et téléverse les photos lui-même ; dites-lui simplement quel dossier. Sinon, il vous donne un lien à ouvrir sur l’appareil où se trouvent les photos. Dans les deux cas il propose ensuite de lancer la construction IA, en vous disant d’abord que cela coûte des crédits.

Vous pouvez tout reprendre à tout moment depuis Paramètres → Applications connectées. La déconnexion prend effet dès l’appel suivant de l’agent, parce que nous émettons ces jetons nous-mêmes au lieu de distribuer quelque chose que nous ne pourrions pas révoquer.

Point it at a folder: install the skill

The connector hands an agent the tools. It does not tell it how to use them well, and uploading is where that gap shows. An upload ticket takes a whole batch of files per request and allows twenty requests an hour — plenty when the agent sends sixty photos at a time, useless when it sends one at a time, which is the shape an agent tends to improvise first. It works for nineteen photos and then stalls for an hour.

So we publish the arithmetic as a skill: a short recipe your agent installs once, which knows the batch sizes, the file types we accept, and what to do when something is refused. Install it whichever way matches the Claude you use.

  • Claude Code, in a terminal. Paste the command below to add our catalogue, then run /plugin install sustain-skills@sustain.
  • The Claude desktop app. Open Settings → Skills (under Customize), press Add, and upload the skill file. Skills there read SKILL.md from the top of the archive, which is exactly what that download is — the plugin archive the terminal uses is a different shape and will not work here.

Both need the same thing underneath: an agent that can actually reach your disk and run a command. A Claude that only runs in the cloud cannot open ~/Pictures/Italy no matter which skill it has, and for that one the upload page is the right route.

Claude Code — paste this

/plugin marketplace add https://www.sustain-app.com/claude-plugin/marketplace.json

1

Install the skill

Paste the command above, then pick Sustain Skills from the /plugin menu. Once, not per album.

2

Name a folder

That is the whole instruction: “make a Sustain album from ~/Pictures/Italy”. You do not have to select the photos, sort them, or zip anything.

3

Read the survey before you agree

Nothing is created yet. It counts what it found, adds up the megabytes, and lists what it is going to leave behind — screenshots that are not photos, a stray .gif, an empty file. Then it asks. If the folder needs more than twenty requests it says so up front instead of stopping halfway.

4

Let it upload

It creates the album, takes a ticket, and sends the files in batches straight from your disk. Duplicates you already uploaded are recognised and skipped by the server, so pointing it at a folder twice does not double the album.

5

Free draft first, AI only if you say so

It lays the photos out immediately for nothing. The full AI pass — reading every photo, then curating and designing — spends credits, so it quotes you first and waits. Neither step needs you to open the site.

Your photos never enter the conversation

The files go from your disk to us. They are not read into the chat, not encoded into a tool call, and not passed through the model — which is what makes four hundred of them a non-event rather than an impossibility.

If your agent says it cannot reach us

One failure is worth naming, because it looks like our fault and it is not. An agent that runs commands on your machine usually does so inside a sandbox with its own network allowlist, and until sustain-app.com is on that list the upload is refused before it ever leaves your laptop — a 403, with blocked-by-allowlist in the response if you look closely.

The tell is an odd asymmetry: the agent creates the album perfectly well and then cannot upload a single photo. That is the two paths differing. The tool calls travel from Claude to us and are never affected; the files leave from your own machine, through the sandbox. Only the second one is blocked. An agent describing this as a permissions problem with your folder has misread its own error.

Allow the domain wherever your agent runs:

  • The Claude desktop app. Go to Settings → Capabilities → Domain allowlist. Under Additional allowed domains type sustain-app.com and press Add, then do the same for *.sustain-app.com. The allowlist ships set to Package managers only, which is exactly why we are blocked until you add us.
  • Claude Code, in a terminal. It asks the first time a command wants a new host — choose “Yes, and don’t ask again” and it is remembered for good. To pre-allow it instead, add "allowedDomains": ["sustain-app.com", "*.sustain-app.com"] under sandbox.network in ~/.claude/settings.json, then start a fresh session; the sandbox reads its policy at startup.

If you edit settings rather than using the app’s screen, use your user settings, not a repository’s — a project-level .claude/settings.json is ignored for this particular setting, so a rule that works in the terminal can quietly do nothing in the app.

There is always the other route

None of this is load-bearing. request_photos returns an upload page next to the machine endpoint, and it works from any browser on any device. A blocked agent should hand you that link — and if it does not, ask it for one.

Les plafonds, puisqu’il peut dépenser des crédits

Une permission accordée n’est pas un chèque en blanc, et la défaillance que nous attendons vraiment n’est pas un attaquant : c’est un agent qui boucle sur un appel qu’il a pris pour un échec.

Il existe donc des limites qui s’appliquent quoi qu’il arrive : un plafond d’appels par minute et un plafond de traitements payants par jour. Si l’un des deux est atteint, l’agent reçoit un message clair, et vous pouvez toujours faire la même chose depuis le site.

Chaque appel est également consigné : quel outil, s’il a fonctionné, et sur quoi il portait. Pas ce que vous avez écrit : les arguments sont conservés sous forme d’empreinte, pas de texte.

Comment les photos arrivent réellement

C'est le point le plus facile à mal concevoir, et nous l'avons d'abord mal conçu. La solution évidente serait un outil qui prend les photos en argument — l'agent nous transmet les images, nous les stockons. Cela fonctionne pour une petite photo isolée et s'effondre pour tout le reste, car un appel d'outil, c'est du texte : l'image doit être encodée dans la conversation, et une seule photo en pleine résolution peut dépasser toute une fenêtre de contexte IA. La découper en plusieurs appels rend les choses pires, puisque chaque appel reste dans la transcription et est renvoyé à chaque tour suivant.

Les outils ne déplacent donc jamais de photos. request_photos délivre un ticket d'envoi — un identifiant à usage unique et de courte durée, propre à un album — et celui qui détient réellement les images nous les envoie directement :

  • Les photos sont sur votre téléphone. Le ticket est accompagné d'un lien. Vous l'ouvrez, choisissez vos photos, et c'est fait. Des centaines d'entre elles, sans qu'aucune ne passe par l'IA.
  • Vous avez donné à l'agent l'accès à vos fichiers. Il les envoie alors lui-même, directement, du disque vers Sustain. L'agent ne lit jamais les images dans la conversation — il se contente d'utiliser le ticket.
  • Votre bibliothèque est dans Google Photos. import_google_photos lance une session de sélection, vous choisissez dans la fenêtre propre à Google, et Sustain les télécharge côté serveur — jusqu'à mille photos, là encore sans rien qui transite par l'agent.

Le ticket expire au bout de 24 heures, est limité à un seul album, et respecte toujours les limites de photos et de stockage de votre forfait. C'est le même mécanisme que celui derrière l'envoi par QR code que nous proposons déjà, ce qui est bon signe : la bonne conception pour un agent s'est révélée être celle que nous avions déjà construite pour des humains.

C'est dans le cas de Google Photos que l'agent participe réellement à la sélection : une fois votre choix fait, il peut écarter les vidéos et ignorer les captures d'écran avant l'import. Nous restons prudents sur la portée de cette affirmation — Google nous fournit un nom de fichier et un type de fichier, rien sur ce qui se trouve dans une photo, donc un agent qui prétendrait avoir supprimé les images floues inventerait cela de toutes pièces.

La règle que nous avons respectée

Déplacer la capacité, pas la donnée. L'agent obtient un ticket ; les photos viennent directement de là où elles se trouvent jusqu'à nous.

Il ne voit jamais votre mot de passe

C'est le point sur lequel on nous interroge en premier, et la réponse est meilleure que ce qu'on trouve habituellement pour ce type d'intégration d'agent.

Un agent connecté ne reçoit jamais de mot de passe ni de clé d’API. Il obtient une autorisation OAuth que vous approuvez sur une page Sustain, listant exactement ce qu’il peut faire, et le jeton derrière est un enregistrement qui nous appartient, pas une clé signée que nous ne pourrions pas reprendre. Déconnectez-le dans Paramètres → Applications connectées et son appel suivant échoue — pas quand le jeton expire.

Un agent dans votre navigateur ne reçoit même pas cela. Il s’exécute dans la page où vous êtes déjà connecté, donc le navigateur joint le même cookie de session que d’habitude : rien à émettre, aucun écran de consentement, rien à coller. Il ne peut agir que comme la personne déjà connectée dans cet onglet, et tant que dure cette session.

Cela fixe aussi la limite de ce qu'un agent défaillant pourrait faire : exactement ce que vous pourriez faire vous-même dans cet onglet, et rien de plus. Le serveur vérifie chaque permission de manière indépendante, exactement comme lorsque vous cliquez.

Ce qu'il ne fera délibérément pas

Certaines choses ne devraient pas se produire simplement parce qu'un logiciel en a décidé ainsi. Nous les avons volontairement exclues :

  • Il ne peut pas passer une commande d'impression. Cela dépense de l'argent réel et nécessite une adresse de livraison. Vous le faites vous-même.
  • Il ne peut pas effectuer de paiement. start_checkout crée une session de paiement et vous transmet le lien — vous payez sur la page propre au prestataire. Les outils ne touchent jamais aux données de carte bancaire.
  • Il ne peut pas se servir dans vos fichiers. Un agent de navigateur en est physiquement incapable — une page web ne peut pas lire votre disque. Un agent de bureau connecté peut lire ce que vous lui avez accordé dans votre propre client IA : une permission que vous donnez là, pas une que nous distribuons. De notre côté, il ne peut téléverser qu’avec un ticket que vous avez demandé, vers l’album que ce ticket désigne.
  • Il ne peut pas résilier votre abonnement ni supprimer un album.

Une chose qu'il peut faire, en revanche, c'est dépenser des crédits : build_album lance la construction IA payante en un seul appel, et le coût dépend du nombre de photos qui survivent à la déduplication. Nous traitons les crédits comme n'importe quelle API à quota traite les jetons — l'outil indique clairement qu'il va en dépenser, et si votre solde est insuffisant, il renvoie le manque exact afin que l'agent puisse vous en informer et proposer de recharger, plutôt que d'échouer en silence.

Dans votre navigateur aussi — le bilan honnête

Tout ce qui précède concerne le serveur hébergé, et cela fonctionne aujourd’hui sans rien activer. Le reste de cet article est l’autre moitié : les mêmes outils, publiés dans la page pour un agent qui s’exécute dans votre navigateur.

C’est à un stade plus précoce, et nous préférons dire où cela en est plutôt que de laisser croire davantage.

WebMCP est une norme réellement nouvelle : Chrome l’embarque depuis la version 149 mais ne l’a pas activée par défaut, cette voie est donc optionnelle.

À quoi cela ressemble en pratique

Vous êtes connecté à Sustain avec un agent actif dans votre navigateur. Vous dites : « Fais-moi un album de mon voyage en Italie. » Ce qui suit n'est pas une suite de clics :

1

Il crée l'album

L'agent appelle create_album avec le nom « Italie 2026 ». L'éditeur s'ouvre sur votre écran — vous voyez cela se produire.

2

Il demande vos photos

Il appelle request_photos et obtient un ticket d'envoi. Si l'agent peut lire vos fichiers, il les envoie lui-même. Sinon, il vous transmet un lien à ouvrir sur votre téléphone. Dans tous les cas, les photos vont directement à Sustain, jamais via la conversation.

3

Il attend qu'elles arrivent

Il interroge album_status jusqu'à ce que vos envois s'arrêtent, puis vous indique leur nombre.

4

Il vous montre une ébauche gratuite

Il appelle quick_place — gratuit — afin que vous ayez quelque chose de concret à regarder avant de dépenser quoi que ce soit.

5

Vous validez la construction réelle

Cela vous plaît, alors il appelle build_album : le passage IA complet qui note chaque photo, élimine les quasi-doublons, regroupe par visage et par scène, conçoit les pages et rédige les légendes.

Tout du long, vous regardez tous les deux la même page. L'agent n'exploite pas une copie cachée du site quelque part — il travaille dans votre onglet, et chaque résultat apparaît sous vos yeux.

Essayez-le avec l'inspecteur d'outils de Chrome (cinq minutes)

Google publie une extension Model Context Tool Inspector conçue exactement pour cela — installable depuis le Chrome Web Store comme n'importe quelle autre, avec un code source public. C'est le chemin le plus court entre la curiosité et un album terminé, et c'est aujourd'hui la voie que nous vous recommandons réellement.

1

Installez l'extension d'inspection

Ouvrez la fiche WebMCP — Model Context Tool Inspector dans le Chrome Web Store et cliquez sur Add to Chrome, puis Add extension. Épinglez-la depuis l'icône en forme de pièce de puzzle dans la barre d'outils pour y accéder rapidement. Elle est développée par un ingénieur de Chrome et le code source est public ; elle liste les outils qu'une page propose et vous permet de dialoguer avec eux via Gemini.

2

Ouvrez Sustain et connectez-vous

Rendez-vous sur sustain-app.com et connectez-vous normalement. Les outils s'enregistrent en fonction de votre session — déconnecté, vous ne verrez que ask_site.

3

Vérifiez que les outils sont présents

Cliquez sur l'icône de l'extension pendant que Sustain est l'onglet actif. Vous devriez voir dix outils listés, de ask_site à build_album. Une liste vide signifie que le drapeau n'a pas pris effet — vérifiez qu'il est bien réglé sur Enabled dans chrome://flags/#enable-webmcp-testing et relancez à nouveau.

4

Demandez un album

Collez le prompt situé à la fin de cette section dans la zone de discussion de l'inspecteur. Vous verrez create_album se déclencher, l'éditeur s'ouvrir sur cet album, et request_photos renvoyer un lien d'envoi. Aucun clic n'aura été effectué.

5

Envoyez les photos

Ouvrez le lien sur votre téléphone et choisissez vos photos. Demandez ensuite à l'agent : « elles sont bien arrivées ? » — il interroge album_status et vous indique leur nombre.

6

Construisez-le

Demandez-lui de « les disposer » pour obtenir une ébauche gratuite (quick_place), ou de « construire l'album pour de bon » pour lancer le passage IA payant (build_album). Il vous préviendra d'abord si votre solde de crédits est insuffisant.

Dites alors ceci

Une fois l'inspecteur installé et Sustain ouvert devant lui, voici le prompt par lequel commencer. Collez-le et observez les appels défiler.

Il s'arrête volontairement avant de dépenser quoi que ce soit : il demande une mise en page gratuite ainsi qu'une description de ce que ferait une construction payante, afin que votre premier essai ne puisse pas vous surprendre avec un débit de crédits.

Essayez ce prompt

Crée un album Sustain appelé « Italie 2026 », puis donne-moi un lien que je peux ouvrir sur mon téléphone pour envoyer les photos. Une fois qu'elles sont toutes arrivées, dispose-les pour que je voie une ébauche — ne dépense pas encore de crédits, dis-moi seulement ce que ferait une construction IA complète.

Pourquoi nous pensons que c'est important

Il existe un scénario pour les prochaines années où les gens cesseront de visiter des sites web et demanderont plutôt à un assistant de s'en occuper. Dans ce monde, un site qui ne s'exprime qu'en pixels est un site qu'un agent comprendra mal, abandonnera, ou délaissera au profit d'un autre qu'il peut réellement piloter.

Être prêt pour les agents n'est pas un label. C'est la différence entre un assistant capable de vous faire un véritable album photo et un autre qui clique au hasard, dépense vos crédits par erreur, et vous rend quelque chose que vous n'aviez pas demandé. Nous préférons être lisibles par les machines qui, de plus en plus, formulent la demande à notre place.

Cela nous oblige aussi à rester honnêtes sur notre propre produit. Rédiger la description d'un outil vous force à dire exactement ce que fait une action et ce qu'elle coûte, en une phrase, sans interface derrière laquelle vous cacher. Plusieurs des nôtres se sont clarifiées à l'écriture.

Questions fréquentes

Envie d’essayer ?

Ouvrir votre album

Nous utilisons des cookies pour analyser l'usage du site et améliorer votre expérience. En savoir plus