← Blog de Guindo Design, Disseny Estratègic de Producte Digital
Disseny d'onboarding de producte mitjançant CLI
Llançar una CLI (interfície de línia d'ordres) ha deixat d'ésser una medalla exclusiva d'enginyeria. Avui, qualsevol perfil de producte pot generar una eina de terminal funcional amb un simple prompt d'IA. Però la capacitat de generar codi no implica construir producte.
La majoria de les CLI perden els seus usuaris en els primers 30 segons perquè ningú ha pensat en el seu onboarding. El veritable coll d'ampolla ja no és el codi, és el disseny.
Una interfície de línia de comandes (CLI) és un intèrpret de text que rep ordres de l'usuari. Aquestes ordres es processen i es retorna una resposta al terminal.
Tant una CLI com un xat d'IA són interfícies de text, però amb una diferència crítica que abans era una gran barrera d'entrada: utilitzar una terminal t'obliga a memoritzar ordres rígides per poder operar amb un sistema. És una interfície de «recordar», no de «reconeixement».
En un xat d'IA, el LLM funciona com a intèrpret, una altra interfície (el model) que tradueix el teu llenguatge humà («repara això») a la instrucció tècnica que el sistema entén. Per tant, la fricció amb el producte es trasllada i ja no cal aprendre el manual d'ordres: la barrera d'entrada deixa de ser tècnica i es converteix en un problema de confiança i d'onboarding.
Que la barrera tècnica hagi caigut no significa que les interfícies gràfiques hagin mort, simplement són menys eficients per a certs casos d'ús. Perquè un LLM analitzi, editi i creï fitxers al teu ordinador, és molt més eficient apuntar la IA als teus fitxers que pujar els teus fitxers a la IA. Per això, plataformes com Anthropic o OpenAI solen llançar una CLI com a peça clau del seu ecosistema:
- Rendiment i latència. Les interfícies web són lentes per definició (càrrega d'assets, animacions, esperes de renderització). A la terminal no hi ha res a decorar; el flux de dades és directe i l'execució és immediata.
- Automatització de processos. Un xat web està dissenyat per resoldre tasques una per una mitjançant la conversa. Una CLI permet que la IA s'integri en fluxos de treball sistemàtics, processant centenars de fitxers de manera automàtica mentre tu et concentres en una altra cosa.
- Control del context. És molt més senzill (i genera menys fricció de seguretat) autoritzar una eina d'intel·ligència artificial perquè miri una carpeta local que obligar a l'usuari a seleccionar, empaquetar i pujar manualment informació sensible a un web.
Si la connexió entre la IA i els vostres fitxers està mal dissenyada, l'experiència amb el producte es trenca per molt intel·ligent que sigui el model de llenguatge que hi hagi al darrere. El problema és que els perfils d'UX i de producte solem ignorar aquest territori sota el pretext que «és un tema tècnic», una deixadesa de funcions que deixa enginyeria sola davant el perill de construir eines potents però hostils. Una CLI és, abans que res, una interfície d'usuari en mode text que requereix la mateixa jerarquia, to i gestió de la fricció que qualsevol aplicació visual. Enginyeria posa la potència, però nosaltres hem de dissenyar el control per evitar que l'usuari abandoni el producte als trenta segons d'obrir la terminal.
Per a què necessites els meus coneixements?
En disseny de producte, qualsevol dada que exigim abans de demostrar valor és un mur que aixequem en l'onboarding. En el cas d'una CLI, l'estratègia d'entrada es resumeix en una única pregunta: La teva eina aporta algun valor real abans de connectar-se al servidor? Aquesta distinció és crítica perquè determina si l'autenticació ha de ser una barrera d'accés o un pas opcional per als usuaris que ja han provat el producte a les seves màquines.
Bàndol 1: La identitat com a peatge
Si la teva eina depèn d'un servidor extern per processar la informació de l'usuari, no hi ha valor possible sense identificar-te. Demanar l'inici de sessió en la primera línia és una necessitat arquitectònica, ja que la intel·ligència resideix al núvol i no localment, i la teva identitat és l'únic cable que connecta la teva terminal amb el cervell que ha de resoldre el problema.
Tanmateix, aquest és el moment de màxim risc per al producte, ja que obligar l'usuari a abandonar la terminal per anar al navegador suposa una ruptura crítica del seu flux mental.
Treure algú de la pantalla negra és perillós perquè el llances a un entorn ple de distraccions (una altra pestanya del navegador) i trenques la promesa d'immediatesa de la CLI. Per això, l'èxit de l'onboarding aquí es mesura exclusivament per la velocitat de retorn. La indústria ha resolt aquest petit abisme mitjançant el Flux de dispositiu (RFC 8628), un estàndard de disseny on la terminal obre el navegador per tu i es queda escoltant en segon pla. Referents com Stripe o Claude Codi han convertit el que abans era un procés manual i propens a errors (copiar i enganxar tokens alfanumèrics) en un tràmit de tot just cinc segons: un clic al web, una autorització ràpida i la terminal cobra vida automàticament sense que l'usuari hagi hagut de manipular ni una sola clau.
A l'extrem oposat hi ha la AWS CLI, que manté un model de configuració manual (aws configure) on l'usuari ha de generar i enganxar les seves claus d'accés. Tot i que aquest sistema respon a una arquitectura de seguretat pensada per a entorns on el navegador no sempre està disponible i la gestió granular de permisos és obligatòria, per a un usuari casual representa un mur d'entrada. AWS prioritza la robustesa del protocol sobre l'agilitat de l'onboarding.
Banc 2: primer valor, després identitat
Per a eines que es poden executar de forma autònoma, l'inici de sessió no és una barrera d'accés, sinó una millora opcional. L'èxit rau en la gratificació instantània: l'usuari descarrega l'eina i comprova que fa una feina útil en el seu propi ordinador abans d'entregar la seva identitat.
Referencies com Supabase o Prisma Tracten l'experiència local com una demo tècnica d'alta fidelitat. Pots arrencar una base de dades completa o generar esquemes de codi sense haver passat per un formulari de registre. L'autenticació només apareix de forma orgànica quan l'usuari decideix fer el següent pas: sincronitzar un projecte amb el núvol o contractar infraestructura gestionada. En aquest bàndol, el disseny de producte consisteix a eliminar qualsevol fricció inicial perquè la utilitat sigui indiscutible des del primer segon; el login és simplement el pas final per vitaminar una eina que ja t'ha demostrat que funciona.
Triar bàndol: una qüestió d'honestedat
Si la teva eina és inútil sense el núvol, el Bàndol 1 (inici de sessió obligatori) és l'únic camí honest. Intentar disfressar-ho amb una «prova local» buida és fer perdre el temps a l'usuari. En canvi, si pots oferir utilitat immediata a l'ordinador de l'usuari, encara que sigui mínima, el valor local és l'ham per construir la confiança necessària abans de demanar el registre.
La clau és saber fer la transició entre tots dos. Prisma n'és un bon exemple: la seva estratègia consisteix a no canviar la interfície, sinó la profunditat.
- Si l'usuari només vol configurar el seu projecte en local, l'eina li dóna els fitxers i li permet treballar amb autonomia.
- Només quan l'usuari intenta connectar una base de dades real, la CLI li demana identificar-se.
L'eina és invisible mentre treballes en local i només aixeca la mà per demanar credencials quan la tasca realment ho requereix.
Com es connecta l'usuari: la logística de «Auth»
Un cop que l'usuari necessita identificar-se, l'UX de la GUI es trasllada a la gestió del permís. Com que no hi ha formularis, el disseny consisteix a triar com connectar la terminal amb el navegador minimitzant la càrrega cognitiva. Les eines professionals han convergit en quatre mètodes que prioritzen, segons el cas, la comoditat o la robustesa:
- Flux d'autorització de dispositiu (resiliència de context). És la solució quan la terminal i el navegador no estan en la mateixa màquina (SSH, Docker o servidors remots). La CLI mostra un codi i el servidor espera l'autorització externa. És l'estàndard en Vercel o Railway perquè és l'únic que sobreviu en entorns on no existeix una connexió directa entre aplicacions.
- Retrollamada localhost (fricció zero). La CLI captura l'inici de sessió automàticament, com a Claude Code. És l'experiència més fluida en un ordinador personal, però requereix que la terminal i el navegador parlin directament, cosa que els entorns corporatius sovint bloquegen.
- Agrupació de frases (validació humana). En lloc de codis abstractes, la terminal i el web mostren la mateixa frase aleatòria (per exemple,
gaudir-suficient-superar-guanyar. Stripe utilitza aquest recurs per convertir una validació de seguretat en una comprovació visual de mig segon. - Claus API (seguretat i automatització). El mètode de generar una clau i enganxar-la manualment. Tot i ser manual, és l'únic viable per a processos automàtics (CI/CD) i entorns que requereixen una gestió estricta de permisos o 2FA. És el *fallback* de seguretat obligatori: si tot falla, la clau manual sempre funciona.
Abans de l'auth: la primera execució també compta
L'èxit d'una CLI es decideix abans de demanar la primera dada. Mentre que un mal disseny obliga l'usuari a fer deures (configurar regions o claus) abans de veure res, les eines que dominen l'ecosistema inverteixen la càrrega: primer lliuren una mostra de valor i després demanen el registre.
Quan comandes com crear-app-next o supabase arrencada generen fitxers i aixequen un servidor en segons, no s'estan simplement configurant carpetes; estan executant una demostració de força. En veure alguna cosa movent-se a la seva terminal, l'usuari rep una gratificació immediata que compra la seva paciència. En aquest moment, l'inici de sessió deixa de ser una barrera per convertir-se en un tràmit lògic per protegir o ampliar el treball que ja té al davant. El disseny aquí no consisteix a demanar permís per començar, sinó a demostrar que val la pena quedar-se.
On mor la conversió
Fins i tot el millor flux s'estavella si els detalls són dolents. A la terminal, la majoria dels errors solen ser fallades de UX disfressades d'enginyeria.
El copiar i enganxar claus, per exemple, és una negligència: obliga l'usuari a manipular dades sensibles que acaben exposades al porta-retalls o publicades per error. Qualsevol flux que depengui que l'usuari gestioni manualment una clau llarga és una fàbrica de frustració i tickets de suport.
A això s'hi suma l'error estratègic d'exigir el compte abans de la instal·lació. Forçar algú a navegar per un web per generar credencials abans que la CLI demostri el seu valor té un cost de conversió enorme. El mateix passa amb el disseny dels errors: en una pantalla de text, un missatge genèric de «Error d'autorització» és un carreró sense sortida. Si el disseny no explica si el problema és el rellotge del sistema o un proxy corporatiu, l'usuari simplement tancarà la terminal.
Finalment, cal fugir de l'espill de les mètriques de vanitat. Celebrar les descàrregues en registres com npm (el repositori públic des d'on es distribueixen aquestes eines) és enganyar-se. Entre escanegis de seguretat i processos automàtics, el volum de descàrregues és pur soroll. En una interfície de text, l'única mètrica real d'èxit no és quanta gent es descarrega el paquet, sinó quants arriben a completar el primer comandament de valor. Si optimitzes el nombre de descàrregues en lloc de la taxa d'èxit de l'onboarding, estàs dissenyant a cegues.
«Gratuït durant la beta» no és gratuït
En plena incertesa sobre els costos de la IA, la temptació d'amagar-se darrere del «gratis per ara» per no espantar és un error. La forma de gestionar la bombolla no és l'ambigüitat, sinó la transparència del consum. Si el còmput és car, trasllada'l al disseny i no el subvencions: mostra límits d'ús clars o permet que l'usuari porti la seva pròpia infraestructura connectant la seva pròpia API.Porta la teva pròpia clau).
El disseny d'una CLI el 2026 no consisteix només en moure dades, sinó en demostrar que el valor que aportes compensa el cost de l'energia que consum. La confiança del desenvolupador no es guanya regalant diners d'inversors, sinó oferint un model de despesa previsible des del primer comandament. Si l'usuari té el control sobre el taxímetre, la por al pagament per ús desapareix: el cost deixa de ser una barrera d'adopció per convertir-se en una variable més de la seva arquitectura.
El disseny de l'invisible
Si vienes del disseny UX/UI de producte, la majoria dels teus instints són correctes, però necessiten traducció. A la terminal no hi ha grilles ni estats "hover"; la jerarquia és temporal, no espacial. La primera línia de sortida és el teu titular i l'última és la teva crida a l'acció. El descobriment no viu en un menú lateral, sinó en un --ajuda impecable i amb uns valors per defecte tan sensats que l’usuari no necessiti el manual per avançar.
Tanmateix, les regles físiques d'aquest entorn exigeixen una gestió diferent del risc. Aquí no existeix el botó d'esborrar, per la qual cosa el disseny consisteix a gestionar la irreversibilitat mitjançant confirmacions explícites o modes de prova (--simulació). A més, la teva interfície ha de ser bilingüe: el resultat ha de ser llegible per un humà, però processable per una màquina. El flag --json no és un luxe decoratiu; és l'estàndard que permet que la teva eina deixi de ser una illa i es converteixi en part d'un engranatge més gran, permetent que altres scripts connectin amb el teu producte sense que res es trenqui.
Dissenyar per a la terminal és, en última instància, un exercici de minimalisme on l'estètica mai va per davant de la compatibilitat. Respectar estàndards com Sense color o utilitzar correctament les seqüències ANSI no és un detall tècnic, és disseny inclusiu: assegura que la teva eina funcioni igual de bé en un monitor modern que en un registre d'errors o en un lector de pantalla. Si ignores aquest espai per considerar-lo un tema d'enginyers, estàs deixant que el teu producte mori en l'eina més important de l'ecosistema actual.
Les dues referències per tenir a prop són clig.dev, que és el més semblant a un manual que existeix en el camp, i l'article «CLI per a tothom» de Adedayo Agarau, que és la introducció en llenguatge planer per a no desenvolupadors.


