Sustain
9 settembre 2026
· 12 min di lettura
Gli agenti AI stanno iniziando a usare il web invece di limitarsi a leggerlo. Chiedine uno per prenotare un tavolo o compilare un modulo e ci proverà — di solito facendo uno screenshot, cercando un pulsante e cliccando dove pensa che si trovi. Funziona finché il layout non cambia, l'etichetta è un'icona, oppure si apre una finestra modale che non si aspettava.
Ci sembra un modo strano di trattare un software che sa già come svolgere il compito. Per questo Sustain ora pubblica i propri strumenti per qualsiasi agente AI che lavori nel tuo browser: azioni nominate e tipizzate come crea un album, importa le mie foto, costruiscilo. L'agente chiama lo stesso codice richiamato dai pulsanti. Questo articolo spiega cosa può fare, cosa deliberatamente non può fare, e perché progettare per gli agenti è un vantaggio reale e non solo una casella da spuntare.
Ora funziona in due modi. Un agente ovunque — Claude su desktop, ChatGPT, qualsiasi cosa parli MCP — si collega a mcp.sustain-app.com e agisce sul tuo account tramite un’autorizzazione che approvi e puoi revocare. E un agente dentro il browser recupera gli stessi strumenti dalla pagina tramite WebMCP. Questo articolo riguarda soprattutto il primo; la metà browser è in fondo.
Un agente da browser che naviga in un sito normale sta facendo computer vision su un'interfaccia pensata per gli esseri umani. Legge uno screenshot, indovina quali pixel corrispondono al pulsante Crea album, clicca, aspetta, fa un altro screenshot e cerca di capire se ha funzionato.
Ognuno di questi passaggi può fallire in un modo che l'agente non riesce a vedere. Clicca su un pulsante disabilitato e interpreta la pagina invariata come un successo. Non nota un errore di validazione reso in un colore che non riesce a interpretare. Un menu a tendina si comporta diversamente su una finestra stretta e l'intero piano deraglia. Peggio ancora, non ha idea di cosa costi un'azione — niente sullo schermo gli dice che quel particolare pulsante consuma i tuoi crediti.
Nulla di tutto questo dipende dal fatto che l'agente sia scadente nel suo lavoro. Gli viene chiesto di ricostruire un'intenzione a partire da un'immagine, quando il sito avrebbe potuto semplicemente dirglielo.
Sustain pubblica un insieme di strumenti: azioni con nome e tipi, con descrizioni scritte per una macchina che non ha mai visto la nostra interfaccia. Un agente li chiama invece di cercare i pulsanti.
Si raggiungono in due modi. mcp.sustain-app.com è un server MCP ospitato — Claude su desktop, ChatGPT, Cursor, qualsiasi cosa parli MCP si collega via rete e lavora sul tuo account tramite un’autorizzazione che approvi tu. E quando un agente gira dentro il browser, gli stessi strumenti vengono pubblicati nella pagina tramite WebMCP, uno standard web emergente. Gran parte di questo articolo riguarda il primo; la metà browser è in fondo.
Oggi sono disponibili dieci strumenti, che rispecchiano il percorso reale di creazione di un album piuttosto che i nostri endpoint REST:
ask_site — risponde alle domande basandosi sui contenuti pubblicati da noi (prezzi, stampa, privacy, le guide che stai leggendo ora) e restituisce le pagine di origine, così l'agente può citare invece di inventare.create_album e album_status — avviano un album e ne verificano lo stato.request_photos e import_google_photos — due modi per importare le foto, nessuno dei quali fa passare anche una sola immagine attraverso la conversazione. Ne parliamo più avanti.quick_place e build_album — dispongono le foto gratuitamente, oppure avviano la creazione completa con l'IA.list_albums, get_credits, start_checkout — trovano i tuoi album, leggono il tuo saldo, acquistano altri crediti.The short version
Other sites make an agent guess which button to press. We hand it the buttons, labelled, with the consequences written on them.
È la strada che non richiede flag né estensioni, e funziona con qualsiasi piano — gratuito compreso.
In Claude apri Impostazioni → Connettori → Aggiungi connettore personalizzato e incolla https://mcp.sustain-app.com/mcp. Claude trova il resto da solo.
Arriverai su una pagina Sustain che chiede cosa può fare questa app sul tuo account. Quattro caselle: vedere i tuoi album, creare e modificare album, spendere i tuoi crediti per le elaborazioni IA e vedere il saldo crediti e i piani. Puoi spuntarne meno di quante ne ha chieste — l’agente ottiene ciò che concedi. Un agente senza spendere crediti non vede nemmeno lo strumento che avvia un’elaborazione a pagamento.
Poi chiedi quello che vuoi. «Fammi un album del mio viaggio in Italia» basta. Se l’agente può leggere i tuoi file — Claude su desktop può — crea l’album e carica le foto da solo; basta dirgli quale cartella. Se non può, ti dà un link da aprire sul dispositivo dove sono le foto. In ogni caso poi propone di avviare la build IA, dicendoti prima che costa crediti.
Puoi revocare tutto da Impostazioni → App collegate. La disconnessione ha effetto alla chiamata successiva dell’agente, perché quei token li emettiamo noi invece di distribuire qualcosa che non potremmo revocare.
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.
/plugin install sustain-skills@sustain.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
Paste the command above, then pick Sustain Skills from the /plugin menu. Once, not per album.
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.
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.
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.
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.
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:
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."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.
Un permesso concesso non è un assegno in bianco, e il guasto che ci aspettiamo davvero non è un attaccante: è un agente che va in loop su una chiamata che ha letto come fallita.
Per questo ci sono limiti che valgono comunque: un tetto di chiamate al minuto e un tetto di elaborazioni a pagamento al giorno. Se si raggiunge uno dei due l’agente riceve un avviso chiaro, e tu puoi comunque fare la stessa cosa dal sito.
Ogni chiamata viene registrata: quale strumento, se ha funzionato e su cosa. Non quello che hai scritto: gli argomenti vengono conservati come impronta, non come testo.
Questa è la parte più facile da sbagliare, e infatti l'abbiamo sbagliata anche noi all'inizio. La soluzione ovvia è uno strumento che prende le foto come argomento — l'agente ci consegna le immagini, noi le archiviamo. Funziona per una singola foto piccola e crolla per tutto il resto, perché una chiamata a uno strumento è testo: l'immagine deve essere codificata nella conversazione, e una singola foto a piena risoluzione può superare da sola un'intera finestra di contesto dell'IA. Suddividerla in più chiamate lo rende peggiore, perché ogni chiamata resta nella trascrizione e viene rinviata a ogni turno successivo.
Perciò gli strumenti non spostano affatto le foto. request_photos emette un ticket di caricamento — una credenziale di breve durata, valida per un solo scopo e un solo album — e chiunque abbia effettivamente le foto ce le invia direttamente:
import_google_photos avvia una sessione di selezione, tu scegli nella finestra di Google stessa, e Sustain le scarica lato server — fino a mille foto, di nuovo senza che nulla passi per l'agente.Il ticket scade dopo 24 ore, è limitato a un solo album e rispetta comunque i limiti di foto e spazio del tuo piano. È lo stesso meccanismo alla base del caricamento tramite codice QR che offriamo già, ed è un buon segno: la soluzione giusta per un agente si è rivelata essere quella che avevamo già costruito per gli esseri umani.
La via di Google Photos è quella in cui l'agente partecipa davvero alla selezione: dopo che hai scelto, può scartare i video e saltare gli screenshot prima di importare. Facciamo attenzione a non spingere troppo oltre questa affermazione — Google ci fornisce un nome file e un tipo di file, ma nulla su cosa ci sia dentro un'immagine, quindi un agente che ti dicesse di aver rimosso le foto sfocate se lo starebbe inventando.
The rule we held to
Move the capability, not the data. The agent gets a ticket; the photos go straight from wherever they live to us.
Questa è la parte su cui le persone chiedono per prime, e la risposta è migliore del solito per le integrazioni con agenti.
Un agente collegato non riceve mai una password né una chiave API. Ottiene un’autorizzazione OAuth che approvi su una pagina Sustain, con l’elenco esatto di ciò che può fare, e il token dietro è un record nostro, non una chiave firmata che non potremmo ritirare. Disconnettilo da Impostazioni → App collegate e la sua chiamata successiva fallisce, non quando il token scade.
Un agente nel browser non riceve nemmeno quello. Gira nella pagina in cui hai già effettuato l’accesso, quindi il browser allega lo stesso cookie di sessione di sempre: nulla da emettere, nessuna schermata di consenso, nulla da incollare. Può agire solo come la persona già connessa in quella scheda, e finché dura la sessione.
Questo stabilisce anche il limite massimo di ciò che un agente malfunzionante potrebbe fare: esattamente ciò che potresti fare tu stesso in quella scheda, niente di più. Il server verifica ogni permesso in modo indipendente, esattamente come quando clicchi tu.
Alcune cose non dovrebbero accadere solo perché un software ha deciso che dovessero accadere. Le abbiamo escluse deliberatamente:
start_checkout crea una sessione di pagamento e ti fornisce il link — paghi sulla pagina del fornitore stesso. Gli strumenti non toccano mai i dati della carta.Una cosa che può fare è spendere crediti: build_album avvia la costruzione a pagamento con l'IA in un'unica chiamata, e il costo dipende da quante foto sopravvivono alla deduplicazione. Trattiamo i crediti come qualsiasi API a consumo tratta i token — lo strumento dichiara apertamente che li spende, e se il tuo saldo è insufficiente restituisce l'esatto importo mancante, così l'agente può dirtelo e proporti di ricaricare invece di fallire in silenzio.
Tutto quanto sopra riguarda il server ospitato, e funziona oggi senza attivare nulla. Il resto dell’articolo è l’altra metà: gli stessi strumenti, pubblicati nella pagina per un agente che gira dentro il browser.
È a uno stadio più iniziale, e preferiamo dire dove si trova piuttosto che lasciar intendere di più.
WebMCP è uno standard davvero nuovo: Chrome lo include dalla versione 149 ma non lo ha attivato di default, quindi questa strada è opt-in.
Hai effettuato l'accesso a Sustain con un agente attivo nel tuo browser. Dici: «Fammi un album del mio viaggio in Italia.» Quello che succede dopo non è una sequenza di clic:
The agent calls create_album with the name “Italy 2026”. The editor opens on your screen — you see it happen.
It calls request_photos and gets an upload ticket. If the agent can read your files, it uploads them itself. If it cannot, it hands you a link to open on your phone. Either way the pictures go straight to Sustain, not through the conversation.
It polls album_status until your uploads stop arriving, and tells you the count.
It calls quick_place — free — so you have something real to look at before spending anything.
You like it, so it calls build_album: the full AI pass that scores every photo, drops the near-duplicates, groups by face and scene, designs the pages and writes the captions.
Per tutto il tempo state guardando la stessa pagina. L’agente non sta usando una copia nascosta del sito da qualche parte — sta lavorando nella vostra scheda, e ogni risultato compare davanti a voi.
Google pubblica un’estensione Model Context Tool Inspector proprio per questo — si installa dal Chrome Web Store come qualsiasi altra, con sorgente pubblico. È la via più breve dalla curiosità a un album finito, ed è quella che oggi ti indicheremmo davvero per la strada nel browser.
Open the WebMCP — Model Context Tool Inspector listing in the Chrome Web Store and click Add to Chrome, then Add extension. Pin it from the puzzle-piece icon in the toolbar so you can reach it quickly. It is built by a Chrome engineer and the source is public; it lists the tools a page offers and lets you talk to them with Gemini.
Go to sustain-app.com and log in as normal. The tools register against your session — signed out you will only see ask_site.
Click the extension’s icon while Sustain is the active tab. You should see ten tools listed, from ask_site through build_album. An empty list means the flag has not taken effect — confirm it says Enabled at chrome://flags/#enable-webmcp-testing and relaunch again.
Paste the prompt from the end of this section into the inspector’s chat box. You will watch create_album fire, the editor open on that album, and request_photos come back with an upload link. Nothing was clicked.
Open the link on your phone and pick your pictures. Then ask the agent “are they in yet?” — it polls album_status and tells you the count.
Ask it to “lay them out” for a free draft (quick_place), or “build the album properly” to run the paid AI pass (build_album). It will tell you first if your credit balance is short.
Una volta installato l’inspector e con Sustain aperto davanti a lui, questo è il prompt da cui partire. Incollalo e guarda scorrere le chiamate.
Si ferma deliberatamente prima di spendere: chiede un’impaginazione gratuita e una descrizione di cosa farebbe una build a pagamento, così la tua prima prova non può sorprenderti con un addebito di crediti.
Try this prompt
Create a Sustain album called “Italy 2026”, then give me a link I can open on my phone to upload the photos. Once they are all in, lay them out so I can see a draft — do not spend any credits yet, just tell me what a full AI build would do.
Esiste una versione dei prossimi anni in cui le persone smettono di visitare i siti e cominciano a chiedere a un assistente di occuparsene. In quel mondo, un sito che parla solo in pixel è un sito che un agente sbaglia, abbandona, o salta a favore di uno che riesce davvero a usare.
Essere pronti per gli agenti non è una medaglia. È la differenza fra un assistente che sa davvero farti un album di foto e uno che clicca a caso, spende i tuoi crediti per sbaglio e ti restituisce qualcosa che non avevi chiesto. Preferiamo essere leggibili per le macchine che sempre più spesso fanno le domande.
Ci tiene anche onesti sul nostro prodotto. Scrivere la descrizione di uno strumento ti obbliga a dire esattamente cosa fa un’azione e quanto costa, in una frase, senza un’interfaccia dietro cui nascondersi. Diverse delle nostre sono diventate più chiare nella scrittura.
Pronto a provarlo?
Apri il tuo albumQuando chiedi alla nostra chat di “trovare le foto di Omri che ride in spiaggia”, un secondo agente IA si sveglia in silenzio, fa il lavoro di scavo nel suo spazio e restituisce solo la risposta. Ecco perché questo design conta.
Il modo più veloce per cambiare il tuo album è chiedere. Ecco come formulare le richieste perché il Designer di album IA le azzecchi al primo colpo.
Basta cercare tra centinaia di miniature. Descrivi la foto che ti serve — l’assistente la trova e te la mostra, pronta da inserire nel tuo album.