Cómo usar opencode con Fabapp AI
Conectar opencode a tu cuenta
opencode declara servidores MCP en opencode.json, marcando que este corre localmente:
{ "mcp": { "fabapp": { "type": "local", "command": ["npx", "-y", "@fabappai/cli", "mcp"] } } }
El comando es el mismo de cualquier cliente; lo que cambia es la forma, que aquí toma el comando como lista y pide el tipo de servidor. Si tu versión lo organiza distinto, manda la documentación de opencode.
Lo que necesitas
Node 20 o más nuevo, una cuenta de Fabapp en el plan Builder o superior, y un único inicio de sesión:
npx @fabappai/cli login
La credencial va al llavero del sistema. Nunca se muestra y se revoca desde un solo lugar, en el panel.
El ciclo
npx @fabappai/cli create "Mi tienda"
npx @fabappai/cli dev
dev arma la app en tu máquina con la misma plantilla con la que la plataforma publica, instala las dependencias y
levanta el servidor local. Con eso corriendo, pide lo que harías a mano: leer la definición, crear las entidades,
escribir las pantallas. Después:
npx @fabappai/cli deploy
Sube lo que tú cambiaste y publica, en ese orden. Publicar antes de subir publicaría lo que está en el servidor, y tu trabajo quedaría atrás.
Qué cambia con opencode
opencode es abierto y no te ata a un proveedor de modelo. Por eso lo elige la mayoría, y tiene una consecuencia buena del lado de Fabapp: el costo del modelo es tuyo y la elección también. Puedes correr todo el ciclo con el modelo que prefieras, incluso uno local, y la plataforma no entra en esa cuenta.
Lo que no cambia vale decirlo: las herramientas que recibe el asistente son las mismas, porque lo que existe lo decide el permiso de la credencial, no el cliente ni el modelo. Un modelo más débil no gana ni pierde herramientas; solo usa peor las que tiene.
Qué pedirle
"Lee la documentación de la plataforma antes de escribir el schema." Los tipos de campo son una lista cerrada y cualquier otro se rechaza; las reglas de acceso son lo único entre los datos de la app y el público.
"Lee la definición actual antes de cambiarla." Sin el schema a mano, un id de modelo equivocado responde 404 y un campo inventado responde 422.
"Schema primero, pantallas después." El SDK se genera sobre el modelo de datos.